# NVIDIA Jetson Linux 35.4.1 Customization failure

**URL:** <https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834>\
**Category:** Jetson AGX Orin\
**Created:** [August 21, 2023, 9:50am UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834 "2023-08-21T09:50:12Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [August 21, 2023, 9:50am UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/1 "2023-08-21T09:50:12Z")

</div>

I just have installed jetpack 5.12 and for beginning tried to recompile and flash kernel to my Jetson AGX Orin 64GB-DRAM develop kit.  
After flashing board never come up.

Here is my proceedure:

1. Download toolchain from [https://developer.nvidia.com/embedded/jetson-linux/bootlin-toolchain-gcc-93](https://developer.nvidia.com/embedded/jetson-linux/bootlin-toolchain-gcc-93)  
extract and set environment (according to [Welcome — Jetson Linux Developer Guide documentation](https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide) )
2. Run the following commands to export the environment variables:  
export KERNEL\_DIR=kernel-5.10  
export CROSS\_COMPILE=$HOME/l4t-gcc/bin/aarch64-buildroot-linux-gnu-  
export JETPACK=$HOME/nvidia/nvidia\_sdk/JetPack\_5.1.2\_Linux\_JETSON\_AGX\_ORIN\_TARGETS/Linux\_for\_Tegra  
export KERNEL\_OUT=$JETPACK/images  
export KERNEL\_MODULES\_OUT=$JETPACK/images/modules
3. Download BSP sources from the Jetson Download Center for NVIDIA Jetson Linux 35.4.1 and extract the sources into Jetpack directory:  
mkdir -p sources && cd sources  
tar -xvf public\_sources.tbz2 Linux\_for\_Tegra/source/public/kernel\_src.tbz2 --strip-components=3  
tar -xvf kernel\_src.tbz2
4. steps of building the BSP sources to generate the kernel Image, the external modules, and the device tree blob.  
4.1 Create the directories for the build outputs:  
mkdir -p $KERNEL\_MODULES\_OUT  
4.2 Clean the environment: ( install before: sudo apt-get install python3-sphinx )  
cd $JETPACK/sources/kernel/$KERNEL\_DIR  
make mrproper  
4.3 Setup the default configuration:  
make ARCH=arm64 O=$KERNEL\_OUT tegra\_defconfig  
4.4 Build the BSP: ( install before: sudo apt-get install libssl-dev )  
make ARCH=arm64 O=$KERNEL\_OUT CROSS\_COMPILE=$CROSS\_COMPILE -j4  
4.5. Install the modules to the output directory created in step 1:  
make modules\_install ARCH=arm64 O=$KERNEL\_OUT CROSS\_COMPILE=$CROSS\_COMPILE INSTALL\_MOD\_PATH=$KERNEL\_MODULES\_OUT  
4.6. Backup the binaries that come installed by default in Jetpack:  
BKUP\_DATE=`date "+%Y_%m_%d_%H_%M_%S"`  
mv $JETPACK/kernel/Image{,.$BKUP\_DATE}  
mv $JETPACK/kernel/kernel\_supplements.tbz2{,.$BKUP\_DATE}  
mv $JETPACK/kernel/dtb{,.$BKUP\_DATE}  
4.7. Copy the binaries built to the default locations expected by the flashing tool:  
cd $KERNEL\_OUT  
cp ./arch/arm64/boot/Image $JETPACK/kernel/  
cp -r ./arch/arm64/boot/dts/nvidia $JETPACK/kernel/dtb  
4.8. Update the kernel modules in the kernel supplements tarball:  
cd $KERNEL\_MODULES\_OUT  
tar --owner root --group root -cjf $JETPACK/kernel/kernel\_supplements.tbz2 lib/modules  
4.9. Install tegra binaries:  
cd $JETPACK  
sudo ./apply\_binaries.sh
5. Set target to recovery mode and Execute the flash script:  
./flash.sh jetson-agx-orin-devkit mmcblk0p1

After success in all steps, after reset I tried to run  
sudo screen /dev/ttyACM0 115200  
failed - /dev/ttyACM0 not found  
Target is not running with display, keyboard and mouse connected.

---

<div class="post-metadata">

**Author:** ![DaveYYY](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/daveyyy/32/233244_2.png) [@DaveYYY](https://forums.developer.nvidia.com/u/DaveYYY)\
**Post date:** [August 21, 2023, 2:20pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/3 "2023-08-21T14:20:14Z")

</div>

I don’t think the UART issue is related here as it is not handled by the kernel.  
Does the device work properly when flashed with the default BSP?  
Did you do anything other than re-compiling to the kernel?

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [August 21, 2023, 2:47pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/4 "2023-08-21T14:47:17Z")

</div>

If I flash with with defaults device is working.  
I use USB port (ttyACM0) to communicate with the devise in headless mode.

---

<div class="post-metadata">

**Author:** ![DaveYYY](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/daveyyy/32/233244_2.png) [@DaveYYY](https://forums.developer.nvidia.com/u/DaveYYY)\
**Post date:** [August 21, 2023, 2:54pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/5 "2023-08-21T14:54:16Z")

</div>

So you got nothing from UART after powering on the device?  
It just does not sound reasonable.  
Try going through this post to follow the method:

> [@Sample\_fs usage when building your own kernel](https://forums.developer.nvidia.com/t/sample-fs-usage-when-building-your-own-kernel/261590/):
>
> The documentation seems to be unclear on how to modify your file system. We downloaded everything from the docs to build a custom kernel. It appears that by default, it comes with a rootfs that is sparse so it only has SSH and serial support, no GUI (per the documentation) When we looked at how to update the rootfs so we would have GUI support (and OEM configuration), we ran the command that appears to build a sample\_fs tar file with all the packages. What is not clear is what we should be d…

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [August 21, 2023, 3:33pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/6 "2023-08-21T15:33:23Z")

</div>

Here is a problem - seems like device does not booting up.

---

<div class="post-metadata">

**Author:** ![DaveYYY](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/daveyyy/32/233244_2.png) [@DaveYYY](https://forums.developer.nvidia.com/u/DaveYYY)\
**Post date:** [August 21, 2023, 3:39pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/7 "2023-08-21T15:39:57Z")

</div>

Are you sure the flashing is successful?  
Any log to provide here?

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [August 21, 2023, 3:43pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/8 "2023-08-21T15:43:25Z")

</div>

I’ll try all over again with logs.

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [August 21, 2023, 8:05pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/9 "2023-08-21T20:05:42Z")

</div>

[orin\_build.zip](https://forums.developer.nvidia.com/uploads/short-url/wv8coja8Alpw4FW2zY8B1OP32kD.zip) (111.4 KB)  
Here I got logs

---

<div class="post-metadata">

**Author:** ![DaveYYY](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/daveyyy/32/233244_2.png) [@DaveYYY](https://forums.developer.nvidia.com/u/DaveYYY)\
**Post date:** [August 22, 2023, 1:42am UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/10 "2023-08-22T01:42:34Z")

</div>

Did you do anything other than simply re-compiling?  
You still got nothing from UART?  
Before Linux kernel, there are still a lot of bootloader stuff coming up, which should be printing log and should not be broken even if the kernel is a bunch of mess.

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [August 29, 2023, 6:49am UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/11 "2023-08-29T06:49:29Z")

</div>

OK, I found the problem.

---

<div class="post-metadata">

**Author:** ![kayccc](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/kayccc/32/14043_2.png) [@kayccc](https://forums.developer.nvidia.com/u/kayccc)\
**Post date:** [August 30, 2023, 12:55am UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/12 "2023-08-30T00:55:04Z")

</div>

Could you share the root cause? Thanks

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [August 30, 2023, 7:20pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/13 "2023-08-30T19:20:35Z")

</div>

This is working flow

1. Install toolchain.

2. Install SDKmanager ( in my case it is version 5.1.2 ).

3. Run SDKmanager to build jetson agx orin kernel and modules and flash the board.

4. Install kernel 35.4.1 sources:  
#install tools  
sudo apt install wget lbzip2 build-essential bc zip libgmp-dev libmpfr-dev libmpc-dev vim-common  
sudo apt-get update  
sudo apt-get install flex bison  
sudo apt-get install libssl-dev

5. Build kernel:  
export KERNEL\_DIR=kernel-5.10  
export CROSS\_COMPILE=$HOME/l4t-gcc/bin/aarch64-buildroot-linux-gnu-  
export JETPACK=$HOME/nvidia/nvidia\_sdk/JetPack\_5.1.2\_Linux\_JETSON\_AGX\_ORIN\_TARGETS/Linux\_for\_Tegra  
export KERNEL\_OUT=$JETPACK/images  
export KERNEL\_MODULES\_OUT=$JETPACK/images/modules  
export CROSS\_COMPILE\_AARCH64\_PATH=$HOME/l4t-gcc  
export CROSS\_COMPILE\_AARCH64=$HOME/l4t-gcc/bin/aarch64-buildroot-linux-gnu-  
export CROSS\_COMPILE=$HOME/l4t-gcc/bin/aarch64-buildroot-linux-gnu-

6. Build modules  
cd $JETPACK/source/kernel/$KERNEL\_DIR  
#Install the modules to the output directory:  
make modules\_install ARCH=arm64 O=$KERNEL\_OUT CROSS\_COMPILE=$CROSS\_COMPILE INSTALL\_MOD\_PATH=$KERNEL\_MODULES\_OUT  
BKUP\_DATE=`date "+%Y_%m_%d_%H_%M_%S"`  
mv $JETPACK/kernel/kernel\_supplements.tbz2{,.$BKUP\_DATE}

7. Flash board  
#Execute the Flash Script from $JETPACK  
cd $JETPACK  
sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [August 30, 2023, 7:38pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/14 "2023-08-30T19:38:42Z")

</div>

An other problem tat found is DTB customization.  
I generated custom tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi and tegra234-mb1-bct-gpio-p3701-0000-a04.dtsi files  
Than copy the pinmux.dtsi file to the \<l4t\_top\>/bootloader/t186ref/BCT/ directory, and copy the gpio.dtsi file to the \<l4t\_top\>/bootloader/ directory.  
Run flash script  
sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1  
But when I decompiled kernel\_tegra234-p3701-0005-p3737-0000.dtb on jetson board it was unchanged, same as default (SDKmanager build)

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [September 3, 2023, 3:54pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/15 "2023-09-03T15:54:43Z")

</div>

Hi. Can get some explanation about custom dtsi files?  
What should be done after I generated dtsi files from EXEL table and put them in proper places on host PC?

---

<div class="post-metadata">

**Author:** ![linuxdev](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/linuxdev/32/10243_2.png) [@linuxdev](https://forums.developer.nvidia.com/u/linuxdev)\
**Post date:** [September 3, 2023, 7:11pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/16 "2023-09-03T19:11:36Z")

</div>

Are you familiar with kernel builds and kernel configuration? Understanding how a `.dtsi` file is used is part of that. Every device tree fragment is used with a particular driver, and that driver is enabled or disabled at kernel configuration prior to building a kernel. The device tree is not actually part of the kernel, but because each non-plug-n-play driver uses the device tree to find the hardware, and to know if it applies to that hardware, the particular device tree fragment applies only when that driver is configured. So building a device tree as a whole from a series of fragments can be done when building the kernel itself based on what is configured for drivers at the time of build.

Any `.dts` file is a full source code tree (human readable format). When a kernel has `.dtsi` files, then if the symbol for a given driver is enabled, and if that driver uses that fragment, then the `.dtsi` gets formatted and inserted into the final `.dts` source file. Eventually that full `.dts` source file is compiled into a binary `.dtb` version, which is what actually gets used.

If instructions for configuring the kernel are incorrect, then you might get a boot failure. If you are only building modules, then it is a simple file copy and install is rarely a problem. The trick is to start by using an exact match to the running system’s configuration. A default dev kit (not necessarily a third party carrier board model) would be almost an exact match when building that kernel using the `make` target `tegra_defconfig`. Other than also setting the symbol `CONFIG_LOCALVERSION` to “`-tegra`”, this will match most stock running systems (there are other ways to do this as well, even when not stock, but `tegra_defconfig` is usually the start).

If you have a matching configuration in your kernel build, and then add a feature to it (preferably in the form of a module) using a proper config editor (they understand dependencies; some use `menuconfig` target, I use `nconfig` which has symbol search), then this same configuration will be consulted during build of the device tree target. This is how building the device tree includes your `.dtsi` fragment: If the symbol for the driver using that fragment is built, then the `.dtsi` is included during build of the build of the `dtbs` (device tree) target (you do have to make sure the configuration is properly propagated first; building the entire `Image` might be slow, but this not only propagates the configuration, it also is a nice acid test for failure cases).

You can always ask more on any detail. But there is the gist: Configure the kernel to include a driver which uses that fragment, propagate the configuration correctly, and then build the device tree. The `.dtsi` will be included. This is part of the `Kconfig` system, and so if there is any kind of patching (in addition to replacing a `.dtsi` file), then you might need to first patch a `Kconfig` file. That along with the `.dtsi` file is the full build.

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [September 3, 2023, 8:48pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/17 "2023-09-03T20:48:32Z")

</div>

thanks a lot, I try to understand.

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [September 5, 2023, 6:11pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/18 "2023-09-05T18:11:16Z")

</div>

Hi. I found one topic in the forum about enabling RGMII driver. Moderator recommends following:

 ![image](https://global.discourse-cdn.com/nvidia/original/4X/3/f/1/3f139bf25c9908bfd3ed047cc92f6ad05127e438.jpeg)  
I have a question - in what file shall be added this code?

---

<div class="post-metadata">

**Author:** ![linuxdev](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/linuxdev/32/10243_2.png) [@linuxdev](https://forums.developer.nvidia.com/u/linuxdev)\
**Post date:** [September 5, 2023, 8:01pm UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/19 "2023-09-05T20:01:41Z")

</div>

I can’t tell you the specifics, but which exact driver is this for? If you were to configure to build this driver in a config editor, then it would have a “symbol” for the driver. Some sort of “`CONFIG_...something...`”. If I know the driver, then I might be able to answer. I can’t answer for just RGMII since I dont know enough about that driver. If you don’t know the symbol, then if you know how to get to this in a config editor would help.

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [September 6, 2023, 5:00am UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/20 "2023-09-06T05:00:14Z")

</div>

It’s an ethernet driver that works on AGX Xavier board. As I understand it is implemented on Orin aswel, but disabled. To enable it I found that recomendation.

---

<div class="post-metadata">

**Author:** ![arkady65](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arkady65](https://forums.developer.nvidia.com/u/arkady65)\
**Post date:** [September 6, 2023, 5:20am UTC](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834/21 "2023-09-06T05:20:24Z")

</div>

Also I found it in developer guide:  
[Jetson AGX Orin Platform Adaptation and Bring-Up — Jetson Linux Developer Guide documentation (nvidia.com)](https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html#for-rgmii)

[Next page](https://forums.developer.nvidia.com/t/nvidia-jetson-linux-35-4-1-customization-failure/263834.md?page=2)
