Jetson Orin Nano - 命令刷机笔记
博主用的是Jetson 36.4.3版本
参考36.4.3版本官方文档: Quick Start — NVIDIA Jetson Linux Developer Guide
一、搭建烧录环境
1、根据开发板型号选中对应的版本
Jetson Linux 存档 |NVIDIA 开发人员
注意:查阅的nvidia官方文档要与此版本对应

2、下载的驱动程序包和根文件系统包

下载后文件如下:

3、解压驱动程序包和根文件系统包
3.1 解压驱动程序包
$ tar -xf Jetson_Linux_R36.4.3_aarch64.tbz2
解压完成过后,会得到系统烧写目录( Linux_for_Tegra),进入 Linus_for_Tegra 目录下的 rootfs 目录
$ cd Linux_for_Tegra/rootfs/
3.2 rootfs 目录解压根文件系统包
$ sudo tar -xpf ../../Tegra_Linux_Sample-Root-Filesystem_R36.4.3_aarch64.tbz2
4、检查烧录条件
$ sudo tools/l4t_flash_prerequisites.sh

5、安装 NVIDIA 应用库
进入 系统烧写目录(Linux_for_Tegra),输入命令:
$ sudo ./apply_binaries.sh

至此系统烧录环境搭建完成。
二、命令烧录
1、开发板接线
- 用跳帽短接FC REC和GND引脚,进入刷机模式

- Jetson主板的TYPE-C接到Ubuntu
- 连接DC电源到供电口

2、命令烧写
系统烧写目录(Linux_for_Tegra)下,输入命令(命令需根据开发板型号设置):
$ sudo ./flash.sh jetson-orin-nano-devkit-nvme internal
开始烧写。
烧写完成后,去掉跳线帽,重启开发板,发现串口不能输入命令,并打印如下:
“Please complete system configuration setup on the serial port provided by Jetson's USB device mode connection. e.g. /dev/ttyACMx where x can 0, 1, 2 etc.”

原因:需要先完成系统配置账号密码等信息
解决方法:Type-c连到ubuntu,ubuntu用 gtkterm或 minicom 工具连接 /dev/ttyACMx,图形化配置 账号、密码 等信息
1)安装 gtkterm
$ sudo apt install gtkterm #安装 gtkterm
$ sudo gtkterm #运行 gtkterm
2)串口连接 "/dev/ttyACM0"

注意:开发板重启后需快速连接,防止超时。正常系统配置界面如下

按照提示配置即可。配置好后重启开发板,串口输入刚才配置的账号、密码登录开发板

3、flash.sh 中如何指定设备树文件
flash.sh 中有这样一段
nargs=$#;
target_rootdev=${!nargs};
nargs=$(($nargs-1));
ext_target_board=${!nargs};#$#是特殊的Shell变量,代表命令行参数的个数,这就是 nargs 的值。
#${!nargs} 是间接引用,它引用的是 nargs 变量的值所代表的变量。在这个上下文中,nargs 的值是$#,代表命令行参数的个数,因此 ${!nargs} 就引用了第 $# 个参数。
因此,target_rootdev=internal,ext_target_board=jetson-orin-nano-devkit-nvme,可知最终会用 jetson-orin-nano-devkit-nvme.conf 作为配置文件。
jetson-orin-nano-devkit-nvme.conf 中又source了 p3768-0000-p3767-0000-a0.conf
source "${LDK_DIR}/p3768-0000-p3767-0000-a0.conf"
p3768-0000-p3767-0000-a0.conf 中有这一段,设置了 dtb 文件
DEFAULT_EMC_FUSE="0";
PINMUX_CONFIG="tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi";
PMC_CONFIG="tegra234-mb1-bct-padvoltage-p3767-dp-a03.dtsi";
BPFDTB_FILE="tegra234-bpmp-3767-0000-a02-3509-a02.dtb";
EMMC_CFG="flash_t234_qspi_sd.xml";
DTB_FILE=tegra234-p3768-0000+p3767-0000-nv.dtb;
TBCDTB_FILE="${DTB_FILE}";
OVERLAY_DTB_FILE+=",tegra234-p3768-0000+p3767-0000-dynamic.dtbo";