刷机所需工具
(1)ubuntu20.04主机或虚拟机
(2)跳线(使Orin进入recover模式)
(3)Type-C usb数据线
刷机环境搭建
(1)安装依赖库
sudo apt-get install qemu-user-static
sudo apt-get install python
(2)驱动程序及根文件下载
在官网Jetson Linux Version35.3.1下载驱动程序包,根文件系统包,如下图:
下载完文件名应为Jetson_Linux_R35.3.1_aarch64(BSP)、Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64
(3)组装rootfs
#解压驱动程序包
tar xf Jetson_Linux_R35.3.1_aarch64
#解压根文件系统并拷贝到指定目录
sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64 -C Linux_for_Tegra/rootfs/
cd Linux_for_Tegra/
sudo ./apply_binaries.sh
sudo ./tools/l4t_flash_prerequisites.sh
定制开发板(EEPROM修改)
EPROM是定制载板的可选组件,当载板设计没有EEPROM,需要对MB2 BCT文件做如下修改:
Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb2-bct-misc-p3767-0000.dts
- cvb_eeprom_read_size = <0x100>
+ cvb_eeprom_read_size = <0x0>
若不修改就烧录则不能成功运行系统,会提示找不到I2C模块。
recover模式
首先使用跳线短接FC REC和GND,然后用Type-c usb数据线将开发板连接到带有ubuntu20.04系统的主机,确保连接后在主机上使用“lsusb”命令,会出现如下格式信息:
Bus <bbb> Device <ddd>: ID 0955: <nnnn> Nvidia Corp.
7023 for Jetson AGX Orin (P3701-0000 with 32GB)
7023 for Jetson AGX Orin (P3701-0005 with 64GB)
7223 for Jetson AGX Orin (P3701-0004 with 32GB)
7323 for Jetson Orin NX (P3767-0000 with 16GB)
7423 for Jetson Orin NX (P3767-0001 with 8GB)
7523 for Jetson Orin Nano (P3767-0003 and P3767-0005 with 8GB)
7623 for Jetson Orin Nano (P3767-0004 with 4GB)
7019 for Jetson AGX Xavier (P2888-0001 with 16GB)
7019 for Jetson AGX Xavier (P2888-0004 with 32GB)
7019 for Jetson AGX Xavier (P2888-0005 with 64GB)
7019 for Jetson AGX Xavier Industrial (P2888-0008)
7e19 for Jetson Xavier NX (P3668)
对于orin nx 16GB而言,当出现如下信息则代表开发板已经进入了recover模式,进入recover模式后需要注意散热,防止过热导致烧录失败
烧录
#Jetson Orin Nano 开发套件和 Jetson Orin NX 开发套件 (NVMe):
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 jetson-orin-nano-devkit internal
#Jetson Orin Nano 开发者套件和 Jetson Orin NX 开发者套件(USB):
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device sda1 \
-c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 jetson-orin-nano-devkit internal
#Jetson Orin Nano 开发者套件和 Jetson Orin NX 开发者套件(SD):
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device mmcblk1p1 \
-c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 jetson-orin-nano-devkit internal
#Jetson AGX Orin 开发者套件:
sudo ./flash.sh jetson-agx-orin-devkit internal
#Jetson AGX Xavier 开发套件:
sudo ./flash.sh jetson-agx-xavier-devkit internal
#Jetson Xavier NX 开发者套件(SD 卡):
sudo ./flash.sh jetson-xavier-nx-devkit internal
执行开发板对应的烧录命令,我使用的Orin NX16GB可使用第一条命令运行后等待烧录完成,在烧录过程注意开发板温度,当温度过高时会导致烧录失败;如果是使用虚拟机烧录,则在烧录过程中需要注意,主机会重新识别Type-c连接,需要及时选择,否则会导致烧录失败;等待一段时间后,终端会出现success,风扇也会开始转了,此时开发板会自动重启
系统重启
烧录完成后,拔掉连接FC REC和GND的跳线,连接显示器,接入键盘,重启后配置好对应系统设置