Change Linux kernel config

hello, I want to change some configs and need to recompile the jetson Linux kernel. I want to follow the official tutorial and find something different from my code. For example, Kernel Customization — NVIDIA Jetson Linux Developer Guide 1 documentation in this tutorial thers is a directory named rootfs but i cannot find that under my Linux_for_Tegra directory. The situation in my own directory is that I only have “source” directory under my Linux_for_Tegra dirctory. I download the BSP source code manually and follow the instruction in that guidance. Is there anything wrong with my operation or something changes in that tutorial?

Hi @ruizhengz,

I hope you are doing well.

To help you troubleshoot:

  1. Are you using an official Jetson devkit or a SoM on a custom carrier board?
  2. Which JetPack / L4T (Jetson Linux) version are you working with?
  3. What exact commands did you run when setting up the sources?

Best regards,
Nico
Embedded Software Engineer at ProventusNova

there is a whole forums dedicated to jetson btw.

yes, I use the jetson orin 64GB with 5.15.148-tegra. I downloaded 36.4.4 BSP source and then used commands below:

tar xf public_sources.tbz2 -C <install-path>/Linux_for_Tegra/..
cd <install-path>/Linux_for_Tegra/source
tar xf kernel_src.tbz2
tar xf kernel_oot_modules_src.tbz2

Hi @ruizhengz ,

To get the complete Linux_for_Tegra directory follow the next steps:

  1. Download the sources for JetPack 6.2.1 (L4T 36.4.4 )from NVIDIA’s official page: L4T 36.4.4. From the Drivers tab download:
  • Drivers package (BSP): Should get a tarball called: Jetson_Linux_R36.4.4_aarch64.tbz2.
  • Sample Root Filesystem: Should get a tarball called: Tegra_Linux_Sample-Root-Filesystem_R36.4.4_aarch64.tbz2.
  1. On your <BUILD_DIR> extract the contents:
cd <BUILD_DIR>
tar -vjxf Jetson_Linux_R36.4.4_aarch64.tbz2 
sudo tar -C Linux_for_Tegra/rootfs/ -vxjf Tegra_Linux_Sample-Root-Filesystem_R36.4.4_aarch64.tbz2

This will create the Linux_for_Tegra directory and populate the rootfs.

  1. Extract the kernel sources following the guide. I would recommend you using the: To Sync the Kernel Sources with Git section. Release tag for L4T 36.4.4 is: jetson_36.4.4
cd Linux_for_Tegra/source
./source_sync.sh -k -t jetson_36.4.4

Best regards,
Nico
Embedded Software Engineer at ProventusNova

So I need to mkdir the rootfs directory by myself and then extract contents from sample root filesystem into it. After that, I need to run the source_sync.sh inside the source directory?

Hi @ruizhengz,

With this command:

tar -vjxf Jetson_Linux_R36.4.4_aarch64.tbz2 

The Linux_for_Tegra directory is created and so an empty rootfs directory. After that you populate the rootfs directory with this command:

sudo tar -C Linux_for_Tegra/rootfs/ -vxjf Tegra_Linux_Sample-Root-Filesystem_R36.4.4_aarch64.tbz2

Finally, you get the kernel sources by running the source_sync.sh. No need for you to create the directory manually.

Best regards,
Nico
Embedded Software Engineer at ProventusNova

I understand. The reason that I could not find scripts is that I only downloaded the source code but did not download contents from driver packages. Thanks for your help!