How to deactivate Xorg for using Nvidia CUDA Driver

Hi,
As showed below, Xorg takes 99% CPU use :

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12628 nvidia 20 0 18.841g 1.389g 476564 R 211.6 9.0 0:54.27 darknet
6563 root 20 0 24.251g 77824 61672 R 99.3 0.5 1:46.92 Xorg

So could you tell me how to deactivate Xorg for using Nvidia CUDA Driver on the Jetson Xavier, please?

FYI : info from deviceQuery
CUDA Driver = CUDART, CUDA Driver Version = 10.0, CUDA Runtime Version = 10.0, NumDevs = 1

Thanks in advance

Normally it isn’t possible to use CUDA and not have Xorg (there are exceptions, but that isn’t “typical”). Xorg is not a graphical desktop, although it can run a window manager…which is a graphical desktop. Typically there is a specific ABI binding the GPU to Xorg, and applications using the GPU go through Xorg. There may be an exception, but in most cases running without Xorg is not possible.

Xorg runs one application. Most people know about the login manager, and when login actually occurs, X restarts and runs a window manager which is owned by whoever logged in at the login manager. Anyone running a CUDA application will typically have to be within group video, as well as anyone who is going to log in to a graphical desktop.

If you just wanted to scroll around and browse, I’d suggest installing “htop” (“sudo apt-get install htop”), and then use the “F5” key to go to tree view. Then you could see whether something running Xorg is consuming CPU, versus Xorg itself, versus something Xorg is running. However, since you are searching and there is a lot to browse, I suggest you run this on command line:

ps auxf | less -i

The “less -i” is a case-insensitive pager, so “/xorg” on the keyboard will find the xorg process. Then scroll up or down as desired with the arrow keys. You will want to do a mouse copy and paste of the part of the tree containing xorg to give a list of what is going on in that process tree. Paste it here within a “code” block for formatting (to preserve the leading whitespace…when posting it looks like “</>” in the upper right of the title bar). Here is an example when there is no GUI login:

# ps auxf | head -n 1
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
# ps axjf | less -i # then "/xorg" to find xorg, scroll to show tree subset...
root      5515  0.0  0.0 235480  7044 ?        Ssl  06:32   0:00 /usr/sbin/gdm3
root      5530  0.0  0.0 163200  7680 ?        Sl   06:32   0:00  \_ gdm-session-worker [pam/gdm-launch-environment]
gdm       5934  0.0  0.0 159600  7624 tty1     Ssl+ 06:32   0:00      \_ /usr/lib/gdm3/gdm-x-session gnome-session --autostart /usr/share/gdm/greeter/autostart
<u><i><b>root      5936  0.0  0.1 25302636 29720 tty1   Sl+  06:32   0:00          \_ /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/120/gdm/Xauthority -background none -noreset -keeptty -verbose 3</b></i></u>
gdm       5944  0.0  0.0 402012 14676 tty1     Sl+  06:32   0:00          \_ /usr/lib/gnome-session/gnome-session-binary --autostart /usr/share/gdm/greeter/autostart
gdm       5971  0.3  0.6 3092752 112888 tty1   Sl+  06:32   0:05              \_ /usr/bin/gnome-shell
gdm       6520  0.0  0.0 307156  7356 tty1     Sl   06:32   0:00              |   \_ ibus-daemon --xim --panel disable
gdm       6523  0.0  0.0 232556  5284 tty1     Sl   06:32   0:00              |       \_ /usr/lib/ibus/ibus-dconf
gdm       6766  0.0  0.0 158676  5896 tty1     Sl   06:32   0:00              |       \_ /usr/lib/ibus/ibus-engine-simple
gdm       6620  0.0  0.1 331756 20656 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-xsettings
gdm       6649  0.0  0.0 232148  5452 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-a11y-settings
gdm       6651  0.0  0.1 182676 18892 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-clipboard
gdm       6656  0.0  0.1 406396 20688 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-color
gdm       6657  0.0  0.0 214480 14728 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-datetime
gdm       6658  0.0  0.0 232624  4336 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-housekeeping
gdm       6666  0.0  0.1 331204 21832 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-keyboard
gdm       6669  0.0  0.1 818988 22016 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-media-keys
gdm       6671  0.0  0.0 157848  4096 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-mouse
gdm       6673  0.0  0.1 332552 21304 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-power
gdm       6676  0.0  0.0 169112  7772 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-print-notifications
gdm       6680  0.0  0.0 157864  4080 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-rfkill
gdm       6684  0.0  0.0 231584  4264 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-screensaver-proxy
gdm       6686  0.0  0.0 238684  7372 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-sharing
gdm       6693  0.0  0.0 310492  9392 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-smartcard
gdm       6696  0.0  0.0 239172  7244 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-sound
gdm       6699  0.0  0.1 257560 20020 tty1     Sl+  06:32   0:00              \_ /usr/lib/gnome-settings-daemon/gsd-wacom

With that information it might be possible to zero in on why Xorg is using CPU. On the other hand, since Xorg is the interface to the GPU driver, it may turn out that it is just a side effect. You might also mention what a line of output is from this while Xorg is 100%:

sudo ~nvidia/tegrastats

Hi linuxdev,
Thanks a lot for your help. Let me tell you what I would like to do on the Jetson Xavier.

On my laptop with Nvidia GTX1060 card, I replace Xorg by Nvidia driver as follows :

  1. Install nvidia-410 driver $ sudo apt-get install nvidia-410
  2. Modify the grub file $ sudo vi /etc/default/grub GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CNDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1" #GRUB_CMDLINE_LINUX="nomodeset"
  3. Select the nvidia-410 instead Xorg in Software & Updates
  4. Update the grub file $ sudo update-grub
  5. reboot the Jetson $ sudo reboot

After rebooting, I have anymore Xorg process and my laptop runs much better with Nvidia driver 410.
This is why I would like to know if it is possible to replace Xorg by Nvidia driver, on the Jetson Xavier.

Thanks in advance

The nvidia-410 is a driver, but Xorg is still there. nvidia-410 in no way replaces Xorg…instead it plugs into Xorg as a dynamic module (a supplement). The thing to understand about the binary video drivers is that they are bound to a specific ABI release number of Xorg. So long as the driver is matching the correct Xorg release it should work. The drivers are not normally able to accomplish anything outside of Xorg (at least for most purposes).

The 100% CPU with Xorg is not necessarily related to the driver (if you just mean that CPU is working at full capacity…it is a different story if you mean that GPU is not working). Xorg can run a window manager, and many applications can be dependent upon this. If you are saying GPU is not being utilized, then it sounds like mesa has replaced the NVIDIA driver. Mesa is both a set of tools and a driver…NVIDIA replaces only the driver portion. Neither mesa nor NVIDIA replace Xorg.

If you install package “mesa-utils” (“sudo apt-get install mesa-utils”) you should get the program “glxinfo”. Then run this command to see which version of driver you are using for direct rendering (must be run inside of an X session):

glxinfo | egrep -i '(version|nvidia)'

If it is mesa, then this will also show a failed file (because of libglx):

sha1sum -c /etc/nv_tegra_release

Assuming the driver shows NVIDIA, and not mesa, then your install worked. You won’t have the nv_tegra_release file on a PC, but the glxinfo command would be valid on both PC and Xavier.

Btw, the mainstream PC drivers have a name such as “nvidia-410”, but all PC drivers assume PCI. The GPU of an Xavier is directly wired to the memory controller and there is no such thing as a driver for the PC which works on the Xavier…this would be true even if Xavier was the same architecture of CPU (which it is not).

Without knowing more about what it is that causes the CPU to be pegged at 100% there isn’t much that can be said. On the other hand, if instead you meant that only CPU is being used, and no GPU is being used, realize that the default in Xavier is to have GPU used…mesa is not normally the driver unless something went wrong. The “sha1sum -c /etc/nv_tegra_release” is in fact checking files related to hardware drivers to see if any were overwritten by something unaware of NVIDIA hardware. GPU itself won’t be utilized unless the program you are looking at was written to use the GPU…GPU use is not automatic.

Hi,

I think we should know what is your usecase first. As linuxdev’s comment, nvidia-driver and xorg are two different items.

As for nvidia-drm, sorry that tegra does not have same driver. We only support so-called “drm-nvdc” driver which is based on tegra DC (display controller).

For those who want to use non-drm rendering for lower GPU usage, you could refer to mmapi sample ->DRM renderer.

Hi all,

You are right, nvidia-driver and xorg are two different items. Sorry for the confusion.

Please find the results of ckecking :

$ glxinfo | egrep -i ‘(version|nvidia)’

server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
GLX version: 1.4
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA Tegra Xavier (nvgpu)/integrated
OpenGL core profile version string: 4.6.0 NVIDIA 31.0.2
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL version string: 4.6.0 NVIDIA 31.0.2
OpenGL shading language version string: 4.60 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 31.0.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,

sha1sum -c /etc/nv_tegra_release

/usr/lib/aarch64-linux-gnu/tegra/libnvosd.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvgov_camera.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_image.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvomx.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvgov_force.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmedia.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_utils.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libglx.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvexif.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvrm_gpu.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvtx_helper.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketserver.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvscf.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvfnetstorehdfx.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmm_parser.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvrm.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmm_contentpipe.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvdla_utils.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvgov_gpucompute.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvgov_tbc.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvos.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvtnr.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvgov_graphics.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvimp.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvfnet.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvphs.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvavp.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcapture.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_video.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvfnetstoredefog.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvgov_il.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvodm_imager.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketclient.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvtvmr.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvdla_compiler.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvidia-egl-wayland.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvdc.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvgov_boot.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvgov_generic.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libtegrav4l2.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmm.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvapputil.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcameratools.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcam_imageencoder.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnveglstream_camconsumer.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmm_utils.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvomxilclient.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvwinsys.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvargus.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvgov_spincircle.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvphsd.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnveglstreamproducer.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvdla_runtime.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvll.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvrm_graphics.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcolorutil.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvddk_2d_v2.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvtestresults.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcamv4l2.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcamerautils.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcamlog.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvparser.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvddk_vic.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvdla_core.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvdla_os.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvgov_ui.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite.so: OK
/usr/lib/aarch64-linux-gnu/libv4l/plugins/libv4l2_nvvidconv.so: OK
/usr/lib/aarch64-linux-gnu/libv4l/plugins/libv4l2_nvvideocodec.so: OK
/usr/lib/xorg/modules/drivers/nvidia_drv.so: OK
/usr/lib/xorg/modules/extensions/libglx.so: OK

Thanks

and here is my demo :

Scenario

  • Screen connected to Jetson by HDMI
  • Model MAX and Clocks activated
    sudo nvpmodel -m 0 sudo ~/jetson_clocks.sh
  • Run Yolo
    $ ./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg cfg/yolov3-tiny.weights data/traffic.mp4

Results
34 – 38 fps

ps auxf | less -i

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         2  0.0  0.0      0     0 ?        S    07:53   0:00 [kthreadd]
root      6065  0.0  0.0   5272  1932 ttyGS0   Ss+  07:53   0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,38400,9600 ttyGS0 vt220
root      6072  0.0  0.0  10404  5160 ?        Ss   07:53   0:00 /usr/sbin/sshd -D
root      6094  0.0  0.0 235612  9880 ?        Ssl  07:53   0:00 /usr/sbin/gdm3
root      6166  0.0  0.0 163592  8160 ?        Sl   07:53   0:00  \_ gdm-session-worker [pam/gdm-autologin]
nvidia    6708  0.0  0.0 159600  5368 tty1     Ssl+ 07:53   0:00      \_ /usr/lib/gdm3/gdm-x-session --run-script /usr/lib/gnome-session/run-systemd-session unity-session.target
root      6719 15.9  0.4 25392688 80752 tty1   Rl+  07:53  16:34          \_ /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/1001/gdm/Xauthority -background none -noreset -keeptty -verbose 3
nvidia    6759  0.0  0.0   2272  1368 tty1     S+   07:53   0:00          \_ /bin/sh /usr/lib/gnome-session/run-systemd-session unity-session.target
nvidia    6926  0.0  0.0   4176   328 ?        Ss   07:53   0:00              \_ /usr/bin/ssh-agent /usr/bin/im-launch env LD_PRELOAD=libgtk3-nocsd.so.0 /usr/lib/gnome-session/run-systemd-session unity-session.target
nvidia    7100  0.0  0.0  12800  5228 tty1     S+   07:53   0:00              \_ systemctl --user start --wait unity-session.target
root      6200  0.0  0.6 17344876 107940 ?     Ssl  07:53   0:00 /usr/sbin/nvargus-daemon
root      6431  0.0  0.0   3132   680 ?        Ss   07:53   0:00 /usr/sbin/nvphsd
root      6441  0.0  0.0  77904  1876 ?        Sl   07:53   0:00  \_ /usr/sbin/nvphsd
nvidia    6447  0.0  0.0  13216  7684 ?        Ss   07:53   0:01 /lib/systemd/systemd --user
nvidia    6502  0.0  0.0  16084  2760 ?        S    07:53   0:00  \_ (sd-pam)

$ top

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                             
 1477 nvidia    20   0 18.833g 1.416g 449224 R 196.0  9.2  27:59.26 darknet                                                                             
 6719 root      20   0 24.216g  80812  59728 R  99.7  0.5  21:55.19 Xorg                                                                                
  963 root     -51   0       0      0      0 R  14.2  0.0   3:41.42 irq/71-host_syn                                                                     
 4177 root     -51   0       0      0      0 S  13.9  0.0   4:50.40 irq/620-iwlwifi                                                                     
 7755 nvidia    20   0  379928  37952  25920 S  13.9  0.2   6:10.62 vino-server                                                                         
 7608 nvidia    20   0 1737044 236284  73556 S   7.9  1.5   3:07.44 compiz                                                                              
 7903 nvidia    20   0  599272  36128  26560 S   7.3  0.2   1:40.84 gnome-terminal-                                                                     
 6310 root      20   0       0      0      0 S   7.0  0.0   2:00.42 nvgpu_channel_p                                                                     
19679 root      20   0       0      0      0 S   2.6  0.0   0:15.96 kworker/u16:3                                                                       
 1532 root      20   0       0      0      0 S   2.0  0.0   0:07.75 kworker/u16:1                                                                       
 8784 root      20   0       0      0      0 S   1.7  0.0   0:22.11 kworker/u16:0                                                                       
 7774 nvidia    20   0  307648   7620   5916 S   1.3  0.0   0:20.31 ibus-daemon                                                                         
25702 nvidia    20   0    9324   3744   2876 R   1.0  0.0   0:00.08 top

I think that Xorg was used by the Display et the input file traffic.mp4? In this case, is there something to do?

First, the glxinfo and sha1sum commands say the installation is correct and valid. Should GPU be required, the drivers are in place and the system can handle the request.

For the next steps keep in mind that you have 8 cores when set to max as currently is the case. One core implies 100%, two cores 200%, so on.

“darknet” is using two full cores, as it is about 200%.

“Xorg” is using one core, which is about 100%.

CUDA traffic may be the cause of Xorg showing up. Or it could be a user login. If you run darknet from a GUI login (perhaps it requires GUI…I’m not familiar with darknet), then some of the use of Xorg might be because of darknet communicating CUDA or actual graphics through Xorg.

If you look at the tree breakdown of gdm3, then you are (more or less) looking at the chain of parent and child processes for Xorg:

root      6094  0.0  0.0 235612  9880 ?        Ssl  07:53   0:00 /usr/sbin/gdm3

How a process consumes resources might depend on whether you are aggregating its child threads or spreading out CPU among the different threads. Basically what I see looks valid. I’ll restate what @WayneWWW asked…what is your use case? What is it about this which makes the results to seem not valid? So far as I know it looks like things are doing what they should.

Hi ndnparis,

I don’t understand why you want to deactivate xorg. Is it a performance issue that fps in YOLO is not good enough?

If that’s the case, the problem may be how darknet renders the frame to display. Is it using EGL?
Also, I wonder why you focus on cpu usage but not the gpu. It is common to have some cpu utility during rendering. Maybe not 99.7 %, it varies case by case.

Hi linuxdev, WayneWWW,

Thanks a lot for your replies.

On my laptop, the performance becomes 100% better when enabling Nvidia Driver nvidia-410 instead using Xorg. As showed in the attachment files, there is no Additional Drivers on the Jetson Xavier in Software & Updates. That’s why I asked the question. And my question is more technical than specific to Yolo.

It is true that my usecase (displaying images) is not ideal for the Jetson Xavier. Maybe you have some other pratical advices/hints.

Once again, thanks for help.



If you just want to ask “how to disable Xorg” on AGX, please try below command.

sudo systemctl stop gdm sudo loginctl terminate-seat seat0

After that, xorg should be disabled so those rendering apps which need X11 would not work anymore.

For tegra, you have to customize your own app/rendering API for non-X11 usecase. Please refer to mmapi sample -> drm renderer.

As for nvidia driver, my desktop also has nvidia driver installed, but xorg is still running. Thus, I have no idea why you are pointing out Xorg.

Maybe you talking about the nouveau driver and xorg…?

Hi WayneWWW,

Thanks for the commands. I just tried them (and kill -9 pid-Xorg). But for now, I need Xorg for displaying output.

I just found what I am looking for : the driver nvidia is there in /etc/X11/xorg.conf.

Section "Device"
    Identifier  "Tegra0"
    Driver      "nvidia"
    Option      "AllowEmptyInitialConfiguration" "true"
EndSection

Otherwise, I just reflashed the Jetson with the new JetPack-L4T-4.1.1-linux-x64_b57.run. And it seems more efficient because I got about 45 - 55 fps (sometimes at 60 fps) instead 34 – 38 fps before.

Thanks.

ndnparis,

Why are you so eager to find a “nvidia” driver…? This “nvidia driver” you found in xorg.conf is also not the same one as those on x86_64 device. Is there anything improved after you found this file?

Hi WayneWWW,

No,I just wanted to understand more about the Jetson Xavier. And you are right, this Driver on the Jetson is not the same one as those on x86_64 device.

Thanks.

Got it. Thanks for clarification.

Just a note: When you install “nvidia-410” you are installing a module which plugs in to Xorg. There may be default unaccelerated framebuffer drivers, but these too also just plug in to Xorg. You never replace Xorg, you simply determine which driver Xorg talks to when interfacing hardware (the Nouveau open source driver only interfaces the frame buffer and no GPU is accessible). You won’t need to do anything to switch on a Jetson because the default is already “nvidia” and the flashed driver is already the most recent for that release (none of the desktop PCI-based drivers apply). Removal of Xorg would cut the ability to talk to the GPU for most purposes.

Hi linuxdev,
Thanks for the note.