Exception: jetson.utils -- failed to create glDisplay device

I have been running the various jetson nano demo programs and when I got to the most recent one, see code at the bottom, I got this error. I am running the programs locally with a screen attached. I tried running it through jupyter, and through the command line. I have rebooted and cleared and restarted the kernal in Jupyter. Until now all of the other examples have worked just fine. I have not reflashed the device yes as I would rather just fix the problem if possible. If someone could help me I would really appreciate it. Thanks!

Exception Traceback (most recent call last)
in
50 font = jetson.utils.cudaFont()
51 camera = jetson.utils.gstCamera(opt.width, opt.height, opt.camera)
—> 52 display = jetson.utils.glDisplay()
53
54 # process frames until user exits

Exception: jetson.utils – failed to create glDisplay device

#!/usr/bin/python

Copyright © 2019, NVIDIA CORPORATION. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a

copy of this software and associated documentation files (the “Software”),

to deal in the Software without restriction, including without limitation

the rights to use, copy, modify, merge, publish, distribute, sublicense,

and/or sell copies of the Software, and to permit persons to whom the

Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL

THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER

DEALINGS IN THE SOFTWARE.

import jetson.inference
import jetson.utils

import argparse
import sys

parse the command line

parser = argparse.ArgumentParser(description=“Classify a live camera stream using an image recognition DNN.”,
formatter_class=argparse.RawTextHelpFormatter, epilog=jetson.inference.imageNet.Usage())

parser.add_argument("–network", type=str, default=“googlenet”, help=“pre-trained model to load (see below for options)”)
parser.add_argument("–camera", type=str, default=“0”, help=“index of the MIPI CSI camera to use (e.g. CSI camera 0)\nor for VL42 cameras, the /dev/video device to use.\nby default, MIPI CSI camera 0 will be used.”)
parser.add_argument("–width", type=int, default=1280, help=“desired width of camera stream (default is 1280 pixels)”)
parser.add_argument("–height", type=int, default=720, help=“desired height of camera stream (default is 720 pixels)”)

try:
opt = parser.parse_known_args()[0]
except:
print("")
parser.print_help()
sys.exit(0)

load the recognition network

net = jetson.inference.imageNet(opt.network, sys.argv)

create the camera and display

font = jetson.utils.cudaFont()
camera = jetson.utils.gstCamera(opt.width, opt.height, opt.camera)
display = jetson.utils.glDisplay()

process frames until user exits

while display.IsOpen():
# capture the image
img, width, height = camera.CaptureRGBA()

# classify the image
class_idx, confidence = net.Classify(img, width, height)

# find the object description
class_desc = net.GetClassDesc(class_idx)

# overlay the result on the image	
font.OverlayText(img, width, height, "{:05.2f}% {:s}".format(confidence * 100, class_desc), 5, 5, font.White, font.Gray40)

# render the image
display.RenderOnce(img, width, height)

# update the title bar
display.SetTitle("{:s} | Network {:.0f} FPS".format(net.GetNetworkName(), net.GetNetworkFPS()))

# print out performance info
net.PrintProfilerTimes()

Hi,

Have you export DISPLAY=:0 before you run this usecase?

BTW, maybe you should post the code as attachment instead of pasting on forum directly. The format has been gone.

Thanks fir your help!
Yes I ran the “export DISPLAY=:0” command in terminal before running the code.

I just copy pasted the code from here

Hi @dlvadjusting, does the program still run correctly from the terminal, and the issue is just from inside Jupyter notebook?

If the user that runs the Jupyter sever in the Linux video user group?

I just finished reflashing the sd card and I still get an error. I have not been able to get the code to work in jupyter or terminal. The prior examples involving showing live video in jupyter worked.

Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:543 Failed to create CaptureSession
[gstreamer] gstCamera onEOS

Hi,

Is this line the only error you got? The gstreamer error should have more log here.

Yes that was the only error. I finally got it to work by doing a fresh reboot and running the program through terminal before opening any other program. Could there have been some sort of conflict with the web browser?

That error was a camera error, and more likely is that the camera didn’t boot up correctly that time, but worked after reboot.