GUI not working after applying RT patch

Hello,
I have a custom board with Jetson AGX Xavier Industrial.
Jetson Linux 35.4.1 - JetPack 5.1.2
Kernel: 5.10.120
Host machine : Ubuntu 20.04

Without applying the RT patch, NVIDIA logo and then Ubuntu Desktop show up with my custom modules and device tree changes.

But after applying the RT patch I can only see the kernel logs from HDMI monitor after that screen goes to black. So HDMI works but GUI doesn’t work.

The same monitor and cable works without the RT patch.

My RT Patch application steps are as follows:

  1. Create a copy of non RT patch applied Linux_for_Tegra folder.
  2. Call rt apply-patches : $./kernel-5.10/scripts/rt-patch.sh apply-patches
  3. build kernel again
$ cd $HOME/nvidia/nvidia_sdk/JetPack_5.1.2_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/sources
$ JETSON_XAVIER_AGX_KERNEL_SOURCES=$(pwd)
$ TOOLCHAIN_PREFIX=$HOME/l4t-gcc/aarch64--glibc--stable-final/bin/aarch64-buildroot-linux-gnu-
$ TEGRA_KERNEL_OUT=$JETSON_XAVIER_AGX_KERNEL_SOURCES/build
$ KERNEL_MODULES_OUT=$JETSON_XAVIER_AGX_KERNEL_SOURCES/modules
$ make -C kernel/kernel-5.10/ ARCH=arm64 O=$TEGRA_KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${TOOLCHAIN_PREFIX} tegra_defconfig
$ make -C kernel/kernel-5.10/ ARCH=arm64 O=$TEGRA_KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${TOOLCHAIN_PREFIX} menuconfig
$ make -C kernel/kernel-5.10/ ARCH=arm64 O=$TEGRA_KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${TOOLCHAIN_PREFIX} -j$(nproc) Image
$ make -C kernel/kernel-5.10/ ARCH=arm64 O=$TEGRA_KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${TOOLCHAIN_PREFIX} -j$(nproc) dtbs
$ make -C kernel/kernel-5.10/ ARCH=arm64 O=$TEGRA_KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${TOOLCHAIN_PREFIX} -j$(nproc) modules
$ make -C kernel/kernel-5.10/ ARCH=arm64 O=$TEGRA_KERNEL_OUT LOCALVERSION=-tegra INSTALL_MOD_PATH=$KERNEL_MODULES_OUT modules_install

$ cd ..

# Copy kernel generated
$ cp -rfv $JETSON_XAVIER_AGX_KERNEL_SOURCES/build/arch/arm64/boot/Image kernel/
# Copy device tree generated
$ cp -rfv $JETSON_XAVIER_AGX_KERNEL_SOURCES/build/arch/arm64/boot/dts/nvidia/* kernel/dtb/
# Copy new modules
$ sudo cp -arfv $JETSON_XAVIER_AGX_KERNEL_SOURCES/modules/lib rootfs/usr/
  1. Build the display drivers.
    Untar the file nvidia_kernel_display_driver_source.tbz2, and cd NVIDIA-kernel-module-source-<Version>
$ export CROSS_COMPILE_AARCH64_PATH=
$HOME/l4t-gcc/aarch64--glibc--stable-final
$ export CROSS_COMPILE_AARCH64=$HOME/l4t-gcc/aarch64--glibc--stable-final/bin/aarch64-buildroot-linux-gnu-
$ export LOCALVERSION="-tegra"
$ export IGNORE_PREEMPT_RT_PRESENCE=1
$ export KERNELSRC=$HOME/nvidia/Linux_for_Tegra/sources/kernel/kernel-5.10
$ export KERNEL_OUTDIR=$HOME/Linux_for_Tegra/sources/build

$ make modules SYSSRC=${KERNELSRC} SYSOUT=${KERNEL_OUTDIR} CC=${CROSS_COMPILE_AARCH64}gcc LD=${CROSS_COMPILE_AARCH64}ld.bfd AR=${CROSS_COMPILE_AARCH64}ar CXX=${CROSS_COMPILE_AARCH64}g++ OBJCOPY=${CROSS_COMPILE_AARCH64}objcopy TARGET_ARCH=aarch64 ARCH=arm64

After that I copy nvidia-drm.ko, nvidia.ko, and nvidia-modeset.ko into the following directory <top>/Linux_for_Tegra/rootfs/usr/lib/modules/$(uname -r)/extra/opensrc-disp/
(I created /usr/lib/modules/$(uname -r)/extra/opensrc-disp/ manually)

I run also sudo depmod -a on first boot then reboot the system, but nothing changes.

I have attached some files which includes booting log, gdm3.service status, lsmod, uname and modprobe nvidia-modeset command.

I don’t have /var/log/Xorg.0.log also and as you can see from the modprobe log I can’t call modprobe with nvidia-modeset.

Thanks.
modprobe.txt (1.1 KB)
uname.txt (336 Bytes)
lsmod.txt (2.4 KB)
gdm3.service.txt (1.2 KB)
Boot_rt_noGUI.txt (64.8 KB)

Hi,
Please make sure you follow the guidance:

Kernel Customization — NVIDIA Jetson Linux Developer Guide 1 documentation

We have validated it on developer kit. It is supposed to work if you execute the steps one by one.

Hello Dane,

I followed the guidance step by step. I just detailed them here to be more descriptive. Did you validate it with Jetson Linux r35.6.0 or r35.4.1?

Hi,
Yes, each version is validated on AGX Xavier developer kit. Do you use developer kit?

Hi Dane,

I use custom board, also when I call startx with sudo GUI runs again.But I didn’t change anything related to Xserver.Do you have any idea what can be cause that?

Hi,
The default GUI is launched through

/etc/X11/xinit/xinitrc
/etc/X11/Xsession

Please check if it does not successfully launched on the board.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.