Difference between revisions of "Linux BSP User Guide for jetson series"
Line 1: | Line 1: | ||
+ | |||
+ | == Project == | ||
+ | [[AIR-020|AIR-020]]<br/> | ||
+ | [[AIR-030|AIR-030]]<br/> | ||
+ | [[EPC-R7200|EPC-R7200]]<br/> | ||
== Linux BSP Version == | == Linux BSP Version == | ||
Line 210: | Line 215: | ||
== Reference == | == Reference == | ||
− | [[AIR_020_Development|AIR-020 Development]]<br/> [[AIR_030_Development|AIR-030 Development]]<br/> <span style="font-size:medium;"><span style="color:#006400;">'''Miscellaneous'''</span> </span><br/> [[EPC-R7200-UIO|EPC-R7200-UIO]]<br/> | + | [[AIR_020_Development|AIR-020 Development]]<br/> [[AIR_030_Development|AIR-030 Development]]<br/> <span style="font-size:medium;"><span style="color:#006400;">'''Miscellaneous'''</span> </span><br/> [[EPC-R7200-UIO|EPC-R7200-UIO]]<br/> [[Jetson_Boot_Device|Boot Device]]<br/> [[Jetson_Simultaneous_flashing_to_multiple_target_devices.|Simultaneous flashing to multiple target devices.]]<br/> [[Jetson_Device_PID_VID|Device PID VID]]<br/> [[NVidia_check_soc_jetpack|SOC module / Jetpack version / Chip ID / target_board]]<br/> [https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/index.html nVidia : Developer Guide]<br/> [https://elinux.org/Jetson/L4T_BSP_development_tips elinux.org : Jetson L4T BSP_development tips]<br/> [https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/jetson_eeprom_layout.html Jetson Module EEPROM Layout] |
<span style="font-size:medium;"><span style="color:#006400;">'''OTA'''</span></span><br/> [https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/updating_jetson_and_host.html nVidia : Over-the-Air Update]<br/> [https://developer.ridgerun.com/wiki/index.php/How_to_Use_A/B_Filesystem_Redundancy_and_OTA_with_NVIDIA_Jetpack How to Use A/B Filesystem Redundancy and OTA with NVIDIA Jetpack]<br/> [https://wiki.seeedstudio.com/Update-Jetson-Linux-OTA-Using-Allxon/ Update Jetson Linux Over-the-Air Using Allxon] | <span style="font-size:medium;"><span style="color:#006400;">'''OTA'''</span></span><br/> [https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/updating_jetson_and_host.html nVidia : Over-the-Air Update]<br/> [https://developer.ridgerun.com/wiki/index.php/How_to_Use_A/B_Filesystem_Redundancy_and_OTA_with_NVIDIA_Jetpack How to Use A/B Filesystem Redundancy and OTA with NVIDIA Jetpack]<br/> [https://wiki.seeedstudio.com/Update-Jetson-Linux-OTA-Using-Allxon/ Update Jetson Linux Over-the-Air Using Allxon] | ||
<span style="font-size:medium;"><span style="color:#006400;">'''Backup / Restore'''</span></span><br/> [https://elinux.org/Jetson/Clone eLinux:Jetson/Clone] | <span style="font-size:medium;"><span style="color:#006400;">'''Backup / Restore'''</span></span><br/> [https://elinux.org/Jetson/Clone eLinux:Jetson/Clone] |
Revision as of 07:07, 23 May 2023
Contents
- 1 Project
- 2 Linux BSP Version
- 3 Released Image
- 4 Build Environment on Host
- 5 Run Docker example
- 6 Dependncy Library
- 7 Getting Linux Source Code
- 8 Build Image - AIR-020 / EPC-R7200
- 9 Build Kernel - AIR-020 / EPC-R7200
- 10 Enter Download Mode
- 11 Flash Image
- 12 Flash DTB
- 13 Flash Mac Address
- 14 Test
- 15 Reference
Project
Linux BSP Version
Ubuntu 18.04
Kernel 4.9.201
Released Image
Build Environment on Host
Currently, we adopt Docker as build environment.
You can get the latest version of advrisc/u18.04-imx8lbv1 Docker image for developing nVidia jetson projects.
Docker command:
$ docker pull advrisc/u18.04-imx8lbv1
Run Docker example
Step1 Run docker container (example)
sudo docker run -it --name jetson_linux_risc -v /home/bsp/myLinux:/home/adv/BSP:rw --privileged advrisc/u18.04-imx8lbv1:latest /bin/bash
Step2 In container, change the user. (example)
adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
Dependncy Library
Please install library in the HOST outside of docker if you get Exec format error.
$sudo apt-get install qemu-user-static
Getting Linux Source Code
$ export GIT_SSL_NO_VERIFY=1
EPC-R7000
$ repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/EPC-R7200/_git/manifests -m epcr7000.xml
EPC-R7200
Jetpack 4.5.1 / L4T 32.5.1
$ cd ~/BSP $ mkdir jetson_linux_risc $ cd jetson_linux_risc $ git config --global user.name "Your Name" $ git config --global user.email you@example.com $ repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/EPC-R7200/_git/manifests $ repo sync
Jetpack 4.6.1 / L4T 32.7.1
$ repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/EPC-R7200/_git/manifests -m 3271.xml
AIR-020
Jetpack 4.5.1 / L4T 32.5.1
$ cd ~/BSP $ mkdir jetson_linux_risc $ cd jetson_linux_risc $ git config --global user.name "Your Name" $ git config --global user.email you@example.com $ repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/AIR-020/_git/manifests $ repo sync
Jetpack 4.6.1 / L4T 32.7.1
$ repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/AIR-020/_git/manifests -m 3271.xml
AIR-030
Jetpack 5.0.2 / L4T 35.1.0
$ repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/risc_nvidia_jetson/_git/manifest -m air030_3510.xml
Jetpack 5.1.1 / L4T 35.3.1
$ repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/risc_nvidia_jetson_35.3.1/_git/manifest -m air030.xml
Public Board
Jetpack 5.0.1 / L4T 34.1.1
$ repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/risc_nvidia_jetson/_git/manifest -m 3411.xml
Build Image - AIR-020 / EPC-R7200
Build Release Image
sudo ./scripts/build_release.sh -s <SOC> -v <VERSION> Where "-v : Image version" 00001~99999 "-s : 186 - Jetson TX2 NX" " : 194 - Jetson Xavier NX" " : 210 - Jetson Nano"
Build 34.1.1 public board
sudo ./scripts/build_release.sh -v <VERSION>
Build EPC-R7200 factory test image
sudo ./scripts/build_release_factory_test.sh -s 194 -v 00001
SOP:Factory_Board_Level_Test_for_EPC-R7200.pdf
Image:epcr7200_194_factory_20221130.tar.gz
Build Kernel - AIR-020 / EPC-R7200
sudo ./scripts/build_kernel.sh -s <SOC> -v <VERSION>
Enter Download Mode
Press following button + power ON, or
EPC-R7200 | AIR020 |
] |
Enter following command in the device,
$ sudo reboot --force forced-recovery
Flash Image
Make sure your Host PC has installed following package:
$ sudo apt-get update $ sudo apt-get install binutils device-tree-compiler libxml2-utils -y
Before flashing the image, power off the DUT, press recovery button and power on.
MARK : For the EPC-R7200 and AIR-020 project, please add sudo in front of untar command to extracet the image.
EPC-R7200 | AIR-020 | |
---|---|---|
Xavier NX |
$ cd $TOP/Linux_for_Tegra/186/ |
$ cd $TOP/Linux_for_Tegra/194/ $ sudo ./flash.sh jetson-xavier-nx-devkit-emmc mmcblk0p1 |
TX2 NX | $ cd $TOP/Linux_for_Tegra/186/ $ sudo ./flash.sh jetson-xavier-nx-devkit-tx2-nx mmcblk0p1 |
$ cd $TOP/Linux_for_Tegra/186/ $ sudo ./flash.sh jetson-xavier-nx-devkit-tx2-nx mmcblk0p1 |
Nano |
$ cd $TOP/Linux_for_Tegra/210/ |
$ cd $TOP/Linux_for_Tegra/210/ $ sudo ./flash.sh jetson-nano-devkit-emmc mmcblk0p1 |
AIR-030
sudo ./flash.sh -d rootfs/boot/tegra234-air030.dtb jetson-agx-orin-devkit mmcblk0p1
nVidia : Flash Support
Flash to NVME / SD directly
The nVidia provide another flash option : Flashing with initrd
Applies to: Jetson Xavier NX and Jetson AGX Xavier series only
Flash DTB
EPC-R7200 | AIR-020 | |
---|---|---|
Xavier NX | $ cd $TOP/Linux_for_Tegra/186/ $ sudo ./flash.sh -r -k kernel-dtb xavier-nx-epcr7200 mmcblk0p1 |
$ cd $TOP/Linux_for_Tegra/186/ $ sudo ./flash.sh -r -k kernel-dtb jetson-xavier-nx-devkit-emmc mmcblk0p1 |
TX2 NX | $ cd $TOP/Linux_for_Tegra/186/ $ sudo ./flash.sh -r -k kernel-dtb tx2-nx-epcr7200 mmcblk0p1 |
$ cd $TOP/Linux_for_Tegra/186/ $ sudo ./flash.sh -r -k kernel-dtb jetson-xavier-nx-devkit-tx2-nx mmcblk0p1 |
Nano | $ cd $TOP/Linux_for_Tegra/210/ $ sudo ./flash.sh -r -k DTB nano-epcr7200 mmcblk0p1 |
$ cd $TOP/Linux_for_Tegra/210/ $ sudo ./flash.sh -r -k kernel-dtb jetson-nano-devkit-emmc mmcblk0p1 |
Flash Mac Address
GBE in eeprom
$ sudo ./eeprom $SOC $mac_address
Where SOC
186 : TX2-NX 194 : XavierNX 210 : Nano
Intel I210
$ sudo -s $ BDF=`lspci | grep 210 | awk '{print $1}'` $ setpci -s $BDF COMMAND=0007
Get NIC
$./EepromAccessTool
Flash I210 address with mac_address = D4E5F6123456 ( If mac address = D4:E5:F6:12:34:56 )
$ ./EepromAccessTool -nic=<NIC> -f=Dev_Start_I210_Copper_NOMNG_8Mb_A2_3.25_0.03.hex -mac=$mac_address
Cold reboot the device.
Test
Factory Test
$ git clone https://AIM-Linux@dev.azure.com/AIM-Linux/ELAA/_git/advtest-factory
Reference
AIR-020 Development
AIR-030 Development
Miscellaneous
EPC-R7200-UIO
Boot Device
Simultaneous flashing to multiple target devices.
Device PID VID
SOC module / Jetpack version / Chip ID / target_board
nVidia : Developer Guide
elinux.org : Jetson L4T BSP_development tips
Jetson Module EEPROM Layout
OTA
nVidia : Over-the-Air Update
How to Use A/B Filesystem Redundancy and OTA with NVIDIA Jetpack
Update Jetson Linux Over-the-Air Using Allxon
Backup / Restore
eLinux:Jetson/Clone