I am following the Kernel Customization section of the Developer Guide. I have a made a modification to the USB port in the dtsi and wish to build and flash the update onto my Jetson Orin Nano. At the build step of the “Building the DTBs” section (make dtbs) I get the following output:
================================================================================
make nvidia-dtbs ...
================================================================================
TEGRA_TOP=/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source \
srctree=/lib/modules/6.8.0-48-generic/build \
objtree=/lib/modules/6.8.0-48-generic/build \
oottree=/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot \
HOSTCC=gcc \
make -f /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/scripts/Makefile.build \
obj=/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts \
dtbs
make[1]: Entering directory '/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source'
# DTC /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/tegra234-p3737-0000+p3701-0004.dtb
mkdir -p /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/ ; gcc -E -Wp,-MMD,/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.d.pre.tmp -nostdinc -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/tegra/nv-public -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/kernel -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/nvidia-oot -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/platforms -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public -I/lib/modules/6.8.0-48-generic/build/scripts/dtc/include-prefixes -DLINUX_VERSION=600 -DTEGRA_HOST1X_DT_VERSION=2 -undef -D__DTS__ -x assembler-with-cpp -o /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.dts.tmp /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts/../../../..//hardware/nvidia/t23x/nv-public/staging/tegra234-p3737-0000+p3701-0004.dts ; /lib/modules/6.8.0-48-generic/build/scripts/dtc/dtc -o /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/tegra234-p3737-0000+p3701-0004.dtb -b 0 -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts/../../../..//hardware/nvidia/t23x/nv-public/staging/ -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/tegra/nv-public -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/kernel -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/nvidia-oot -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/platforms -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public -i/lib/modules/6.8.0-48-generic/build/scripts/dtc/include-prefixes -Wno-interrupt_provider -Wno-unit_address_vs_reg -Wno-unit_address_format -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-simple_bus_reg -Wno-unique_unit_address -@ -@ -@ -@ -Wno-interrupt_provider -Wno-unit_address_vs_reg -Wno-unit_address_format -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-simple_bus_reg -Wno-unique_unit_address -d /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.d.dtc.tmp /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.dts.tmp ; cat /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.d.pre.tmp /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.d.dtc.tmp > /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.d
/bin/sh: 1: /lib/modules/6.8.0-48-generic/build/scripts/dtc/dtc: not found
make[1]: *** [/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts/Makefile:118: /home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/tegra234-p3737-0000+p3701-0004.dtb] Error 127
make[1]: Leaving directory '/home/skyfish/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source'
make: *** [Makefile:172: nvidia-dtbs] Error 2
What is the issue? I can’t find much on this online and the documentation is lacking explanation.
Hi,
This looks to be the error. dtc binary is absent. By default it is kernel 5.15. You may try the default version first to check if the error is specific to K6.8.
Try this first:
sudo apt-get install device-tree-compiler
Note: Each kernel source has its own dtc
, but you can install this to the o/s like above.
I tried to install device-tree-compiler, but it was already installed.
@DaneLLL How would I configure the make to use the default version?
Hi,
Please follow the steps one by one:
Kernel Customization — NVIDIA Jetson Linux Developer Guide 1 documentation
And after building is done successfully, please apply and flash the self-built image/binaries to Orin Nano developer kit. To ensure no issue by executing the default steps. And then do customization.
I redid the process with Jetpack 6.1 instead of Jetpack 6.0 and it worked. It seems likely that doing a clean build of everything in the Jetpack 6.1 Linux_for_Tegra directory solved the issue.
Update on this. I updated the device tree files again and attempted to rebuild and got the same issue in the Jetpack 6.1 Linux_for_Tegra directory. So something happens the first time that prevents me from repeating the process.
Additionally, I get different error outputs depending on whether I use sudo
or not. If I use sudo
, I get the error output in the first post. If I don’t use sudo
(just make dtbs
), I get the following output:
================================================================================
make nvidia-dtbs ...
================================================================================
TEGRA_TOP=/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source \
srctree=/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/kernel/kernel-jammy-src/ \
objtree=/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/kernel/kernel-jammy-src/ \
oottree=/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot \
HOSTCC=gcc \
make -f /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/scripts/Makefile.build \
obj=/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts \
dtbs
make[1]: Entering directory '/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source'
mkdir -p /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/ ; gcc -E -Wp,-MMD,/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.d.pre.tmp -nostdinc -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/tegra/nv-public -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/kernel -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/nvidia-oot -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/platforms -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public -I/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/kernel/kernel-jammy-src//scripts/dtc/include-prefixes -DLINUX_VERSION=600 -DTEGRA_HOST1X_DT_VERSION=2 -undef -D__DTS__ -x assembler-with-cpp -o /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.dts.tmp /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts/../../../..//hardware/nvidia/t23x/nv-public/staging/tegra234-p3737-0000+p3701-0004.dts ; /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/kernel/kernel-jammy-src//scripts/dtc/dtc -o /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/tegra234-p3737-0000+p3701-0004.dtb -b 0 -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts/../../../..//hardware/nvidia/t23x/nv-public/staging/ -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/tegra/nv-public -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/kernel -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/nvidia-oot -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/include/platforms -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public -i/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/kernel/kernel-jammy-src//scripts/dtc/include-prefixes -Wno-interrupt_provider -Wno-unit_address_vs_reg -Wno-unit_address_format -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-simple_bus_reg -Wno-unique_unit_address -@ -@ -@ -@ -Wno-interrupt_provider -Wno-unit_address_vs_reg -Wno-unit_address_format -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-simple_bus_reg -Wno-unique_unit_address -d /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.d.dtc.tmp /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.dts.tmp ; cat /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.d.pre.tmp /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.d.dtc.tmp > /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.d
cc1: fatal error: opening output file /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/.tegra234-p3737-0000+p3701-0004.dtb.dts.tmp: Permission denied
compilation terminated.
make[1]: *** [/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts/Makefile:118: /home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source/nvidia-oot/device-tree/platform/generic-dts//hardware/nvidia/t23x/nv-public/staging/tegra234-p3737-0000+p3701-0004.dtb] Error 1
make[1]: Leaving directory '/home/skyfish/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source'
make: *** [Makefile:172: nvidia-dtbs] Error 2
I suggest going to your “Linux_for_Tegra/source/
” directory and doing this to make sure it is owned by your regular user (be sure to run this command from there and not somewhere else; assuming user name “skyfish
”):
sudo chown -R skyfish.skyfish *
Please note that the directory “Linux_for_Tegra/rootfs/
” must have correct permissions for a new system installation, but everything else under “Linux_for_Tegra/
” is originally installed as your regular user so that it has non-root content there. The “rootfs/
” subdirectory is special because it is part of an image to be flashed, whereas everything else outside of this is a tool for your regular user. Kernel source in this case would be best if owned by your regular user.
If you’ve ever compiled the kernel source as root, and not used some outside temp location for intermediate output, then the permissions would have been broken. I will sometimes intentionally make all kernel source root owned, and read-only to all other users. This forces a temporary output location rather than polluting the kernel source with configuration changes. There are a lot of valid ways to rearrange your kernel source work, but you are strongly advised to not build anything in place directly in the kernel source. Other scripts might want to build content directly in the source, which is ok, but in that case you should stick to running as a regular user after setting the source to your regular user’s ownership. Note that install steps do not put the content in the source directory, so any install step can be performed as root without modifying the existing source.
1 Like
Thank you for the detailed response. The solution ended up being to run the make dtbs
command with sudo CROSS_COMPILE=<toolchain-path>/bin/aarch64-buildroot-linux-gnu- KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
in the same command (per this forum post: Can't receive file via Bluetooth on Jetson AGX Orin with JetPack 6 - #28 by sudo_rm_rf_bugs ).
Apparently those variables were not being set correctly when I was attempting to follow the Kernel Customization directions for a rebuild (even though they worked the first time around).
system
Closed
December 3, 2024, 10:13am
12
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.