I’ve never used “nvidia-detector”…perhaps this was intended for a PCIe-based GPU instead of the integrated GPU (wired directly to the memory controller instead of over PCIe). I see the package which provides this program is “ubuntu-drivers-common”, so I’m thinking this may not work and anything depending on it wouldn’t understand the memory controller version of a GPU (I’m speculating, but I also see “none” on my PC which is running a PCIe card…perhaps this only works with the Nouveau driver).
Sorry that I am not familiar with vnc and SDL2. Could you share more about the actual issue?
I guess this method may help if you want to configure such usecase. Take tx1 for example, DSI panel is configured in device tree and xrandr can still detect it even w/o physical device.
For example, I flashed my tx1 with p2371-2180.conf, which enables one DSI panel in head0(primary).
The xrandr shows
nvidia@tegra-ubuntu:~$ xrandr
Screen 0: minimum 8 x 8, current 1200 x 1920, maximum 16384 x 16384
DSI-0 connected primary 1200x1920+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1200x1920 60.00*
An actual issue is that SDL2 fails to get initialized by leaving an error message “no available displays”,
only when my traffic analysis app is launched remotely(vnc) without no physical monitor connected to Jetson TX2.
It works fine when running locally with a connected monitor.
Also, I confirmed glxgears can be launched remotely(vnc) without a monitor, and stay running without any problem.
So, the problem lies in the combination of vnc + SDL2 + headless.
I have installed sdl2 library via apt, whose version is 2.0.4.
From the source code, I found the error message comes from here.
So it checks displays from xrandr.
Interesting. Then, SDL could successfully get initialized.
But is it possible to try on TX2 as well?
Here’s an output of xrandr, executed in a remote display.
nvidia@tegra-ubuntu:~$ xrandr
Screen 0: minimum 8 x 8, current 1920 x 1240, maximum 32767 x 32767
HDMI-0 disconnected primary (normal left inverted right x axis y axis)
TX2 should also work but much more tricky. TX2 has plugin-manager in dts and only enables those panels when connector is detected. However, those part can be removed.