Hello,
We are trying to get our own kernel flashed to our Jetson Orin NX using a Seeedstudio A603 carrier (similar to devkit, works out-of-the-box with 36.3.0).
Below our flashing routine:
export L4T_BASE_DIR=`pwd`/Linux_for_Tegra
export CROSS_COMPILE=`pwd`/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-
export LOCALVERSION=-tegra
export KERNEL_SRC_PATH=$L4T_BASE_DIR/source/kernel/kernel-jammy-src
# Source sync to latest tag
cd source
./source_sync.sh -t rel-36_eng_2024-07-23
rm -rf kernel/kernel-jammy-src
# Clone linux stable
git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git kernel-jammy-src
git checkout linux-6.8.y
# Configure kernel
./scripts/config --file "arch/arm64/configs/defconfig" --enable CONFIG_ARM64_PMEM
./scripts/config --file "arch/arm64/configs/defconfig" --enable CONFIG_PCIEASPM_PERFORMANCE
./scripts/config --file "arch/arm64/configs/defconfig" --enable CONFIG_PCIE_TEGRA194
./scripts/config --file "arch/arm64/configs/defconfig" --enable CONFIG_PCIE_TEGRA194_HOST
./scripts/config --file "arch/arm64/configs/defconfig" --enable CONFIG_BLK_DEV_NVME
./scripts/config --file "arch/arm64/configs/defconfig" --enable CONFIG_NVME_CORE
./scripts/config --file "arch/arm64/configs/defconfig" --enable CONFIG_FB_SIMPLE
./scripts/config --file "arch/arm64/configs/defconfig" --enable CONFIG_CRYPTO_ECDSA // required for nvdisplay build
# Build kernel and OOT modules
make -C kernel
export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
make modules
# Prepare rootfs
sudo tar -xvf tegra_linux_sample-root-filesystem_r36.3.0_aarch64.tbz2 -C $L4T_ROOTFS_DIR
sudo ./apply_binaries.sh
# Install kernel and modules & update initrd
cp kernel/kernel-jammy-src/arch/arm64/boot/Image $L4T_BASE_DIR/kernel/Image
sudo -E make install -C kernel
sudo -E make modules_install
sudo ./tools/l4t_update_initrd.sh
# Flash
sudo tools/l4t_create_default_user.sh -u nvidia -p nvidia -a -n nvidia-desktop --accept-license
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs --network usb0 p3509-a02-p3767-0000 internal
Flash is successful, however the display does not work at boot.
Running the following through the UART console makes the display work:
sudo modprobe -r tegra-drm
When reloading the nvidia-modeset module dmesg shows:
[ 535.951096] NVRM: API mismatch: the client has the version 540.3.0, but
NVRM: this kernel module has the version 540.4.0. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.
Indeed in the sources, repository nv-kernel-display-driver
at the tag synced is 540.4 since tag rel-36_eng_2024-04-04
. However, all .deb packages (copied by apply_binaries.sh to rootfs) in the 36.3.0 BSP seem to have been build for 540.3 (for example libglxserver and Xorg related drivers).
Attached logs from dmesg and Xorg.
I have tested with multiple other kernel versions namely 6.11, 6.10 and 6.8.12. Same issue for all of these.
I have also tried falling back to rel-36_eng_2024-04-04
and have other issues and also this limits the kernel version that can be used.
Seems like I am missing something to get the GPU drivers and display working correctly. Any hints ?
Thank you
dmesg.txt (64.3 KB)
Xorg.0.log (6.8 KB)