From ProventusNova DeveloperWiki
Line 42: Line 42:




4. Apply binaries.
7. Apply binaries.
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
cd Linux_for_Tegra
cd Linux_for_Tegra
Line 48: Line 48:
</syntaxhighlight>
</syntaxhighlight>


6. Return to Linux_for_Tegra directory:
8. Return to Linux_for_Tegra directory:
cd ..
cd ..


7. Inside Linux_for_Tegra directory, create default user with:
9. Inside Linux_for_Tegra directory, create default user with:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo ./tools/l4t_create_default_user.sh -u <username> -p <password> -n <hostname>
sudo ./tools/l4t_create_default_user.sh -u <username> -p <password> -n <hostname>

Revision as of 00:09, 18 November 2025

Jetson Linux BSP and Kernel Source setup

Keywords: NVIDIA Jetson, JetPack

Description

This wiki pages shows how to get sources for any JetPack version for NVIDIA platform. Download board support package (BSP), sample root file system and kernel sources for kernel customization.

Getting the sources

In this wiki we will use as an example JetPack version 6.2.1 (L4T 36.4.4). You can find the desired JetPack version from

JetPack 6.2.1

1. Go to JetPack 6.2.1 release Page: NVIDIA Jetson Linux 36.4.4 and download “L4T Driver Package (BSP)” and “Sample Root filesystem”.

2. You should see this two files:

  • Jetson_Linux_R36.4.4_aarch64.tbz2
  • Tegra_Linux_Sample-Root-Filesystem_R36.4.4_aarch64.tbz2

3. Create a directory for installing JetPack. Referred to as <INSTALL_DIR>. For example:

 
INSTALL_DIR = build
mkdir $INSTALL_DIR
cd $INSTALL_DIR

4. Copy both files to <INSTALL_DIR>

 
cp $HOME/Downloads/Jetson_Linux_R36.4.4_aarch64.tbz2 .
cp $HOME/Downloads/Tegra_Linux_Sample-Root-Filesystem_R36.4.4_aarch64.tbz2 .

5. Extract "L4T Driver Package" tarball:

 
sudo tar -vjxf Jetson_Linux_R36.4.4_aarch64.tbz2

You should see a new directory called Linux_for_tegra in <INSTALL_DIR> directory.

6. Extract "Sample Root Filesystem" into Linux_for_tegra/rootfs

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


7. Apply binaries.

 
cd Linux_for_Tegra
sudo ./apply_binaries.sh

8. Return to Linux_for_Tegra directory: cd ..

9. Inside Linux_for_Tegra directory, create default user with:

 
sudo ./tools/l4t_create_default_user.sh -u <username> -p <password> -n <hostname>

for example:

 
sudo ./tools/l4t_create_default_user.sh -u nvidia -p nvidia -n nvidia

Flashing the board

This section will specify how to flash the board to enable 2 FRAMOS IMX464 cameras. 1. Connect NVMe m.2 card on one of the m.2 slots. Put the board in recovery mode. You can check if the board is in recovery mode with lsusb. Should see something like:

Bus 001 Device 016: ID 0955:7323 NVIDIA Corp. APX

2. Flash with CTI's automated script inside Linux_for_Tegra directory:

sudo ./cti-flash

3. After executing the command, select the board. Choose 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~
         CTI FLASH         
~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.  Photon (NGX002/NGX003)
2.  Boson (NGX007)
3.  Boson for Orin (NGX020)
4.  Boson22 for Orin (NGX021)
5.  Hadron (NGX012)
6.  Rudi NX (NGX006/NGX010)
7.  Polaris (NGX015)
8.  Hadron-GMSL (NGX018)
9.  Lepton (NGX022)
10. Hadron Dual MIPI (NGX024/NGX027)
11. Essential EdgeAI (NGX026)
12. Uses (NGX926)
x.  Exit
Enter choice: 2

4. Select configuration. Choose 4.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
============ Boson (NGX007) =============
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.  Base
2.  Base + FSM IMX296 (3cam)
3.  Base + FSM IMX464 (3cam)
4.  Base + FSM IMX464 (2cam)
5.  Base + FSM IMX565 (3cam)
6.  Base + FSM IMX565 (2cam)
7.  Base + FSM IMX568 (2cam)
8.  Base + FSM IMX568 (3cam)
9.  Base + FSM IMX585 (3cam)
10. Base + FSM IMX585 (2cam)
11. Base + FSM IMX662 (3cam)
12. Base + FSM IMX662 (2cam)
13. Base + FSM IMX676 (3cam)
14. Base + FSM IMX676 (2cam)
15. Base + FSM IMX678 (3cam)
16. Base + FSM IMX678 (2cam)
17. Cancel (back to main menu)
Enter choice:  4

5. Select module. Choose 1.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
=============  Module Type ==============
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. orin-nx
2. orin-nano
3. Cancel (back to main)
Enter choice:  1

6. Select module mode. In this case, choose 1.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
=============  Module Mode ==============
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. default
2. super-mode
3. Cancel (back to main)
Enter choice: 1

7. Wait for flashing to be complete. 8. Connect a mouse and keyboard with USB to the board, connect HDMI monitor. Reboot the board. You should see in your monitor Ubuntu login. 9. Log in into the nvidia user created in the steps before.

Capturing with FRAMOS IMX464 cameras

1. Open a terminal. Verify cameras were bound correctly with:

sudo dmesg | grep imx464

Should see something like:

[   11.756067] imx464 9-001a: probing v4l2 sensor
[   11.756129] imx464 9-001a: initializing mipi...
[   11.756418] imx464 9-001a: tegracam sensor driver:imx464_v2.0.6
[   11.790754] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx464 9-001a bound
[   11.830176] imx464 9-001a: Detected imx464 sensor
[   11.833758] imx464 10-001a: probing v4l2 sensor
[   11.833832] imx464 10-001a: initializing mipi...
[   11.834253] imx464 10-001a: tegracam sensor driver:imx464_v2.0.6
[   11.867769] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx464 10-001a bound
[   11.884400] imx464 10-001a: Detected imx464 sensor

2. Check for devices in /dev/.

ls /dev/video*

Should see something like:

/dev/video0  /dev/video1

2. Run the following pipeline to get a stream preview:

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! nvvidconv ! autovideosink

Switch between 0 and 1 in sensor-id to choose the camera to capture.