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:
- Create a copy of non RT patch applied Linux_for_Tegra folder.
- Call rt apply-patches :
$./kernel-5.10/scripts/rt-patch.sh apply-patches
- 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/
- Build the display drivers.
Untar the file nvidia_kernel_display_driver_source.tbz2, andcd 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)