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:
- Are you using an official Jetson devkit or a SoM on a custom carrier board?
- Which JetPack / L4T (Jetson Linux) version are you working with?
- 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:
- 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.
- 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.
- Extract the kernel sources following the guide. I would recommend you using the:
To Sync the Kernel Sources with Gitsection. 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!