Changing Drivers on Jetson Tx2

Hi there,

I am using the Jetson tx2 and i am currently unable to run PyBullet simulations. i get the following error:

startThreads creating 1 threads.
starting thread 0
started thread 0 
argc=2
argv[0] = --unused
argv[1] = --start_demo_name=Physics Server
ExampleBrowserThreadFunc started
X11 functions dynamically loaded using dlopen/dlsym OK!
X11 functions dynamically loaded using dlopen/dlsym OK!
Failed to retrieve a framebuffer config

From the following forum I have been informed that i am not using the proper driver. I can not figure out how to solve this issue. Help would be greatly appreciated. Failed to create an OpenGL context when trying to launch a pybullet example · Issue #1681 · bulletphysics/bullet3 · GitHub

Not sure how to go about checking that I am using the correct driver, and more importantly how to change it to the correct one.

I am not a Python guy, and for the most part cannot answer. I did take a look at that URL, and one person mentions that it won’t work without a properly installed driver. The evidence presented for that is the lack of “nvidia-smi”.

Regarding nvidia-smi, this is not actually a driver. This is a utility for query of an NVIDIA discrete GPU (dGPU) in a PCI slot. On a Jetson the GPU is integrated directly to the memory controller, and thus has no PCI function (an iGPU). There is no possibility of query via nvidia-smi for a Jetson despite the driver working. If you want to check driver install you might run this command while logged in to a GUI:
glxinfo | egrep -i '(nvidia|version|nouveau)'

If you see nouveau, then this is not hardware accelerated, and is pure software rendering. If you see nvidia, then this is a working fully functional driver. If you lack “glxinfo”, then you can install “sudo apt-get mesa-utils”.

Some software assumes nvidia-smi is available for all NVIDIA drivers and uses this to search or query for abilities. On a PC this is correct, but because this will always fail with an iGPU, the use of nvidia-smi is actually incorrect in this case.

On the other hand, this is for direct hardware rendering, e.g., OpenGL. I’m not sure about framebuffer access, but this likely also requires membership in group video. I’m not sure if nvidia-smi would ever be used for framebuffer query.