Sdkmanager to flash Orin: Gtk-WARNING: ...cannot open display

Hi,

I’m trying to install the SDK Manager onto an x86_64 system running Ubuntu 20.04 so I can flash my Orin per This thread to enable PCIe power, but after downloading and installing the SDK Manager from this link, and updating some packages that were missing, I get the following error:

(sdkmanager-gui:6694): Gtk-WARNING **: 00:46:06.844: cannot open display:

There is nothing after the colon. I have downloaded sdkmanager_1.8.2-10409_amd64.deb

Can I confirm that this is the correct version, and aside from needing to update some packages related to libX11.so.1, I should expect a fresh install the SDK Manager to work on a fresh Ubuntu install of 20.04 without additional steps aside from apt install ./sdkmanager... etc...? I do have a second x86_64 machine available to install Ubuntu if necessary.

I’m happy to provide logs, etc… but I don’t know what would be helpful.

Thank you.

Hi,

A silly question here. Do you have a monitor connected on your x86 system? Sdkmanager by default is a GUI tool.

An addition to @WayneWWW’s question: If you have a monitor connected to the host PC, is it in graphical mode, and not just pure text command line? Are you logging in directly to the PC without ssh?

Hi All,

Apologies for the late reply, the graphical mode may be the issue. I’m currently using pure text command line. The machine is connected to an external monitor (but the behavior is the same over SSH as well), I’ll look into enabling graphical mode and see if that helps.

Thanks!

Some information on the topic: Whenever a user logs in to graphical mode the user will have the environment variable “DISPLAY” added to the environment. Usually it is “DISPLAY=:0”, which is basically just “the first X server”. If a user then logs in to a non-GUI text terminal, that DISPLAY is missing from the environment, and anything wanting to find that context will complain it can’t open a display.

If that user already has a display, and is on a pure text terminal, it is possible to do this before running the command requiring a DISPLAY:
export DISPLAY=:0
(it might be “:1” or something different in some cases)

If using ssh, then the same is true after logging in if it is the Jetson’s DISPLAY you want. There is also something called “X forwarding”, but that redirects to the local PC’s DISPLAY, and not to the Jetson. It is ok to display to the host PC at times, but beware that this no longer uses the Jetson’s GPU. Note that a lot of CUDA or GPU-related software also finds the correct GPU based on DISPLAY even if it isn’t for graphics…any redirect to the PC might have surprising results (e.g., do you have a 3080Ti on the PC? Wow, that will be faster than expected).

Example ssh forwarding, if your login name is ubuntu and address is 192.168.55.1:
ssh -X ubuntu@192.168.55.1

OR ssh -Y ubuntu@192.168.55.1

1 Like

Thank you, I can confirm that it also works if you go massively overkill and install Ubuntu Desktop. Yours seems like a much more elegant solution.