๐ ๐๐
๐ฐ๐ถ๐๐ถ๐ป๐ด ๐ก๐ฒ๐๐ ๐ณ๐ผ๐ฟ ๐๐ฒ๐๐๐ผ๐ป ๐๐ป๐๐ต๐๐๐ถ๐ฎ๐๐๐! ๐
Iโm thrilled to announce that I have successfully compiled ๐ธ๐ฒ๐ฟ๐ป๐ฒ๐น ๐ฒ.๐ด.๐ต to ensure compatibility with ๐๐ฒ๐๐ฃ๐ฎ๐ฐ๐ธ ๐ฒ ๐๐ and its new drivers. This custom enhancement paves the way for a manual ๐๐ฝ๐ฑ๐ฎ๐๐ฒ ๐๐ผ ๐จ๐ฏ๐๐ป๐๐ ๐ฎ๐ฐ.๐ฌ๐ฐ, leveraging cutting-edge technology for improved performance and capabilities.
A huge thank you to the entire NVIDIA Robotics team for their support and collaboration in making this possible!
For more information, please visit ๐๐ฒ๐๐๐ผ๐ป ๐๐ ๐๐ฎ๐ฏ: Jetson AI Lab Research Group - NVIDIA Jetson AI Lab
Great for AI developers and IT professionals aiming to stay at the forefront of technological advancements!
Awesome! Could you share a guide or document? Thank you!
1 Like
@suhash For you, Is it working wifi?
Iโve applied:
CONFIG_ARM64_PMEM=y
CONFIG_PCIE_TEGRA194=y
CONFIG_PCIE_TEGRA194_HOST=y
CONFIG_BLK_DEV_NVME=y
CONFIG_NVME_CORE=y
CONFIG_FB_SIMPLE=y
I donโt know if I need another for wifi.
The WiFi driver is disabled for any kernel version != 5.15 inside file
nvidia-oot/drivers/net/wireless/realtek/Makefile
1 Like
By the way, Iโm having issues booting R36.3 using 6.8.9 as a base, cbb error is triggered continuously around the time userspace should be reached.
I can boot by disabling the CBB driver, but then I get no display.
[ 14.337644] CPU:0, Error: sce-fabric@0xde00000, irq=33
[ 14.337824] **************************************
[ 14.337979] CPU:0, Error:sce-fabric, Errmon:2
[ 14.338124] CBB registers returning all 1's which is invalid
[ 14.338314] CPU:0, Error: cbb-fabric@0x13a00000, irq=34
[ 14.338475] **************************************
[ 14.338628] CPU:0, Error:cbb-fabric, Errmon:2
[ 14.338756] Error Code : FIREWALL_ERR
[ 14.338886] Overflow : Multiple FIREWALL_ERR
[ 14.339035]
[ 14.339082] Error Code : FIREWALL_ERR
[ 14.339207] MASTER_ID : CCPLEX
[ 14.339299] Address : 0xde12208
[ 14.339400] Cache : 0x1 -- Bufferable
[ 14.339516] Protection : 0x2 -- Unprivileged, Non-Secure, Data Access
[ 14.339705] Access_Type : Read
[ 14.339797] Access_ID : 0x13
[ 14.339800] Fabric : cbb-fabric
[ 14.340558] Slave_Id : 0x0
[ 14.341023] Burst_length : 0x0
[ 14.341529] Burst_type : 0x1
[ 14.342030] Beat_size : 0x2
[ 14.342499] VQC : 0x0
[ 14.342926] GRPSEC : 0x7e
[ 14.343387] FALCONSEC : 0x0
[ 14.345566] Slave : AON
[ 14.348366] **************************************
[ 14.353205] WARNING: CPU: 0 PID: 0 at drivers/soc/tegra/cbb/tegra234-cbb.c:604 tegra234_cbb_isr+0x138/0x170
[ 14.363346] ---[ end trace 0000000000000000 ]---
[ 14.367532] CPU:0, Error: sce-fabric@0xde00000, irq=33
[ 14.372603] **************************************
[ 14.377589] CPU:0, Error:sce-fabric, Errmon:2
[ 14.382057] CBB registers returning all 1's which is invalid
[ 14.387716] CPU:0, Error: sce-fabric@0xde00000, irq=33
[ 14.392641] **************************************
[ 14.392642] CPU:0, Error:sce-fabric, Errmon:2
[ 14.392647] CBB registers returning all 1's which is invalid
[ 14.392651] CPU:0, Error: cbb-fabric@0x13a00000, irq=34
[ 14.392652] **************************************
[ 14.392653] CPU:0, Error:cbb-fabric, Errmon:2
[ 14.392658] Error Code : FIREWALL_ERR
[ 14.426152] Overflow : Multiple FIREWALL_ERR
[ 14.430708]
[ 14.432276] Error Code : FIREWALL_ERR
[ 14.436389] MASTER_ID : CCPLEX
[ 14.439714] Address : 0xde12208
[ 14.443215] Cache : 0x1 -- Bufferable
[ 14.447326] Protection : 0x2 -- Unprivileged, Non-Secure, Data Access
[ 14.454066] Access_Type : Read
[ 14.457478] Access_ID : 0x13
[ 14.457479] Fabric : cbb-fabric
[ 14.464301] Slave_Id : 0x0
[ 14.467364] Burst_length : 0x0
[ 14.470777] Burst_type : 0x1
[ 14.474103] Beat_size : 0x2
[ 14.477251] VQC : 0x0
[ 14.480141] GRPSEC : 0x7e
[ 14.483115] FALCONSEC : 0x0
[ 14.486265] Slave : AON
[ 14.489065] **************************************
I added some debugging and it seems like it happens after loading the nvidia_modeset module.
nvidia_modeset is also the last module being loaded, so it might be caused by something elseโฆ
If you follow the steps of their manual it is correct.
Remember synchronize the folders.
./source_sync.sh -k -t jetson_36.3
You mean ./source_sync.sh -t jetson_36.3. Thatโs what I did.
Do you copy the newly compiled kernel, modules and dtb manually onto the Tegra or how do you handle all that? I copy them manually, but I havenโt tried updating the initrd yet. Whatโs your process?
I want to do a video.
But I have to find the time, as I donโt have much time with my job.
Basically you have to follow the tutorial.
I was trying to do a script.
But this is only my notes:
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
cd ~/
mkdir Projects && cd Projects
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/release/jetson_linux_r36.3.0_aarch64.tbz2
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/release/tegra_linux_sample-root-filesystem_r36.3.0_aarch64.tbz2
tar -xvjf jetson_linux_r36.3.0_aarch64.tbz2
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.9.tar.xz
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/release/tegra_linux_sample-root-filesystem_r36.3.0_aarch64.tbz2
tar -xvjf tegra_linux_sample-root-filesystem_r36.3.0_aarch64.tbz2
# -C ./Linux_for_Tegra/
xz -d linux-6.8.9.tar.xz
tar -xf linux-6.8.9.tar
mv linux-6.8.9 kernel-jammy-src
cd Linux_for_Tegra/source/
./source_sync.sh -k -t jetson_36.3
cd kernel && rm -rf kernel-jammy-src
cd ~/Projects
mv kernel-jammy-src Linux_for_Tegra/source/kernel/
cd Linux_for_Tegra/source/
# modify defconfig
cd /home/johnny/Projects/Linux_for_Tegra/source/kernel/kernel-jammy-src/configs/aarch
# Edit defconfig
CONFIG_ARM64_PMEM=y
CONFIG_PCIE_TEGRA194=y
CONFIG_PCIE_TEGRA194_HOST=y
CONFIG_BLK_DEV_NVME=y
CONFIG_NVME_CORE=y
CONFIG_FB_SIMPLE=y
or
make defconfig
scripts/config --file .config --enable ARM64_PMEM
scripts/config --file .config --enable PCIE_TEGRA194
scripts/config --file .config --enable PCIE_TEGRA194_HOST
scripts/config --file .config --enable BLK_DEV_NVME
scripts/config --file .config --enable NVME_CORE
scripts/config --file .config --enable FB_SIMPLE
# Build kernel
make -j $(nproc) -C kernel
export INSTALL_MOD_PATH=/home/johnny/Projects/Linux_for_Tegra/rootfs
sudo -E make install -C kernel
cp kernel/kernel-jammy-src/arch/arm64/boot/Image \
/home/johnny/Projects/Linux_for_Tegra/kernel/Image
# make modules
export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
export INSTALL_MOD_PATH=/home/johnny/Projects/Linux_for_Tegra/rootfs
make modules
sudo -E make modules_install
# OUT TREE MODULES
cd /home/johnny/Projects/Linux_for_Tegra/source
KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
make modules
sudo -E make modules_install
# edit boot
sudo gedit /boot/extlinux/exlinux.conf
# make dtbs
export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
make dtbs
sudo cp nvidia-oot/device-tree/platform/generic-dts/dtbs/* /boot/dtb
Basically, you have to do the process for compiling etc with the โINSTALL_MOD_PATHโ. Then for install in Jetson, you have to open another terminal and put headers etc without โINSTALL_MOD_PATHโ.
export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
sudo -E make install -C kernel
for edit config of kernel, I did it manually. Be careful because some variables are with N. So put Y. Not duplicate variables
Thanks.
I managed to get to userspace without errors now after also updating initrd.
Xorg (and xrandr) detects my display but I get no output on the screen.
Plugging & unplugging doesnโt help.
SimpleFB does show the boot-up process though.
analog@ubuntu:~$ xrandr -q
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-0.8 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 527mm x 296mm
1920x1080 60.00*+ 59.94 50.00
1600x1200 60.00
1600x900 60.00
1280x1024 75.02 60.02
1280x720 60.00 59.94 50.00
1152x864 75.00
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00
720x480 59.94
640x480 75.00 59.94 59.93
By the wayโฆ
IVC driver fails to load because of a change in the IOSYS API.
Hereโs a patch to solve it.
I donโt know what the driver does but I fixed it while trying to fix display.
Before:
[ 11.644504] queue regions overlap: 0x0 + 400 > 0x0
[ 11.644650] tegra-ivc-bus bc00000.rtcpu:ivc-bus:echo@0: IVC initialization error: -22
[ 11.644862] tegra-ivc-bus bc00000.rtcpu:ivc-bus: bus start failed: -22
[ 11.654051] tegra186-cam-rtcpu: probe of bc00000.rtcpu failed with error -22
After: (matches 5.15 output)
[ 16.213345] tegra-ivc-bus bc00000.rtcpu:ivc-bus: region 0: iova=0xbfec0000-0xbfee027f size=131712
[ 16.216561] tegra-ivc-bus bc00000.rtcpu:ivc-bus:echo@0: echo: ver=0 grp=1 RX[16x64]=0x1000-0x1480 TX[16x64]=0x1480-0x1900
[ 16.216654] tegra-ivc-bus bc00000.rtcpu:ivc-bus:dbg@1: dbg: ver=0 grp=1 RX[1x512]=0x1900-0x1b80 TX[1x512]=0x1b80-0x1e00
[ 16.216696] tegra-ivc-bus bc00000.rtcpu:ivc-bus:dbg@2: dbg: ver=0 grp=1 RX[1x8192]=0x1e00-0x3e80 TX[1x8192]=0x3e80-0x5f00
[ 16.216740] tegra-ivc-bus bc00000.rtcpu:ivc-bus:ivccontrol@3: ivccontrol: ver=0 grp=1 RX[64x320]=0x5f00-0xaf80 TX[64x320]=0xaf80-0x10000
[ 16.216868] tegra-ivc-bus bc00000.rtcpu:ivc-bus:ivccapture@4: ivccapture: ver=0 grp=1 RX[512x64]=0x10000-0x18080 TX[512x64]=0x18080-0x20100
[ 16.217766] tegra-ivc-bus bc00000.rtcpu:ivc-bus:diag@5: diag: ver=0 grp=1 RX[1x64]=0x20100-0x201c0 TX[1x64]=0x201c0-0x20280
[ 16.219183] tegra186-cam-rtcpu bc00000.rtcpu: using cam RTCPU IRQ (181)
[ 16.219193] tegra186-cam-rtcpu bc00000.rtcpu: tegra_camrtc_mon_create is successful
[ 16.221759] tegra186-cam-rtcpu bc00000.rtcpu: firmware version cpu=rce cmd=6 sha1=e2238c99959d2df9350d393f04e1f44e5bef98cb
[ 16.222053] tegra-ivc-bus bc00000.rtcpu:ivc-bus:echo@0: ivc channel driver missing
[ 16.222665] tegra-ivc-bus bc00000.rtcpu:ivc-bus:dbg@1: ivc channel driver missing
[ 16.223219] tegra-ivc-bus bc00000.rtcpu:ivc-bus:dbg@2: ivc channel driver missing
[ 16.223750] tegra-ivc-bus bc00000.rtcpu:ivc-bus:diag@5: ivc channel driver missing
0001-tegra-rtcpu-fix-tegra_ivc_init-call.zip (954 Bytes)
did you applied patches correctly? It was my problem on old version from JetPack.
Also did you copy Image file and modify extlinux.conf?
Did you install sudo make install modules?
Yes.
analog@ubuntu:~$ cat /etc/nv_tegra_release
# R36 (release), REVISION: 3.0, GCID: 36191598, BOARD: generic, EABI: aarch64, DATE: Mon May 6 17:34:21 UTC 2024
# KERNEL_VARIANT: oot
TARGET_USERSPACE_LIB_DIR=nvidia
TARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia
analog@ubuntu:~$ uname -a
Linux ubuntu 6.8.9-tegra #1 SMP PREEMPT Fri May 24 19:59:32 EEST 2024 aarch64 aarch64 aarch64 GNU/Linux
It wouldnโt boot to userspace without proper modules, obviously.
Old JetPack version wouldnโt even build with 6.8.
Another addition.
You donโt need these options:
CONFIG_PCIE_TEGRA194=y
CONFIG_PCIE_TEGRA194_HOST=y
CONFIG_BLK_DEV_NVME=y
CONFIG_NVME_CORE=y
The drivers themselves are already built as modules, theyโre just not included in initrd, but by running nv-update-initrd they will get included.
Hereโs another patch to build rtl8822ce driver (for WiFi) with 6.8.
0001-net-wireless-rtl8822ce-fix-build-on-6.zip (1.4 KB)
Where does this patch comes from? Has it been submitted already upstream?
I made it myself. Itโs a patch for the nvidia-oot repo, not for the upstream kernel. Kernel itself remains untouched.
The solution to the display issue however is easier to fix in the kernel itself.
See: No DP output on R36.3 with 6.8 kernel on Dell U2414H - #13 by cozzmy13
1 Like