版本查询

查询设备烧写的固件版本号

设备开机后SSH登录系统

cd /proc/device-tree/hckdigi

通过设备树查询当前版本信息

nvidia@tegra-ubuntu:/proc/device-tree/hckdigi$ ll
total 0
drwxr-xr-x  2 root root  0 Aug 26 13:38 ./
drwxr-xr-x 60 root root  0 Nov 21  2023 ../
-r--r--r--  1 root root  8 Aug 26 13:38 board_model         // 主控板型号:HCK-C19 or C1201
-r--r--r--  1 root root  5 Aug 26 13:38 board_version       // 主控板的版本: v100
-r--r--r--  1 root root  7 Aug 26 13:38 jetpack             // 内核适配的Jetpack SDK版本 :36.3.0
-r--r--r--  1 root root 13 Aug 26 13:38 jetson_module       // 适配的AI模组:Orin NX/Nanon
-r--r--r--  1 root root  8 Aug 26 13:38 name                // 主控板生产商:hckdigi
-r--r--r--  1 root root  5 Aug 26 13:38 version             // 镜像版本 : v1.0

备注

  • MI-19x2/C1201支持英伟达官方镜像烧写,部分客户在自行完成官方镜像烧写后,无法在设备树中查询到该厂商节点信息

  • Jetpack6.x以上的版本我司镜像中会默认包含设备树节点hckdigi

镜像刷写

设备进入Rec模式

裸载板

通过跳线帽将下图的REC和GND两针进行短接,然后单板上电后进入REC模式

recovery mode

整机

长按整机前面板的REC按钮,同时插入电源并保持3秒以上后松开按钮

recovery mode

使用SDKM进行Jetson OS的刷机,刷机成功后系统启动后进入桌面

注意

  • 一般选择物理机安装Ubuntu系统作为刷机主机,官方说明中无特殊情况推荐采用18.04系统;

  • 也可以采用虚拟机安装Ubuntu系统作为刷机主机,刷机时需要将识别到的USB挂载到虚拟机中;

  • 一定要选择使用支持数据传输的USB TYPE-C线缆;

Jetpack5.x版本刷机

注意

  • 以下操作适用于Jetpack5.x的镜像烧写,采用英伟达的SDK Manager烧写工具

  • 需首先使用SDK Manager工具完成对设备的刷机,然后使用我司提供的设备树修改内核中的默认设备树

  1. 获得设备对应的刷机镜像包

小技巧

请联系 tech@hckdigi.com 获得镜像包的下载地址。

  1. 根据jetpack版本选择下载的设备树文件 HCK-C19-JP5.1.x目录对应的为:

  • HCK-C19型载板;

  • Jetpack版本为5.1.x(包括5.1.1,5.1.2,5.1.3,5.1.4);

  • 核心模组为ORIN-NX系列(包含orin-nano/nx4种类型); 设备树目录的命名方式以此类推,根据orin-nx的模组型号选择设备树的目录如\orin-nx-16GB下载对应的设备树文件

  1. 拷贝设备树 将下载的设备树拷贝到已开机上电的载板的/boot/dtb目录 通过SSH等工具可以登录访问已经上电的载板,以\orin-nx-16GB\kernel_tegra234-p3767-0000-p3768-0000-a0.dtb为例:

    1)将kernel_tegra234-p3767-0000-p3768-0000-a0.dtb通过ssh上传到系统的可写任意目录后,再将文件拷贝到/boot/dtb目录下

    sudo cp kernel_tegra234-p3767-0000-p3768-0000-a0.dtb /boot/dtb
    

    2)修改设备树的相关权限

    sudo chown 0:0 /boot/dtb/kernel_tegra234-p3767-0000-p3768-0000-a0.dtb
    sudo chmod 644 /boot/dtb/kernel_tegra234-p3767-0000-p3768-0000-a0.dtb
    
  2. 修改extlinux.conf(可选) 在extlinux.conf文件中确认是否存在FDT行,没有则新增FDT行指定对应的启动设备树文件

root@ubuntu:/boot/extlinux# cat extlinux.conf

TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      FDT /boot/dtb/kernel_tegra234-p3767-0000-p3768-0000-a0.dtb
      INITRD /boot/initrd
      APPEND ${cbootargs} root=PARTUUID=c85cd1bf-c532-4e82-8e2b-544a237aa968 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0 nv-auto-config
  1. 系统重启生效

sudo reboot



Jetpack6.x版本刷机

注意

  • 以下操作适用于Jetpack6.x的镜像烧写,采用隐溪科技提供的镜像烧写工具和烧写镜像;

  • MI-19x2/C1201载板也支持基于英伟达的SDKM烧写官方镜像,区别在于部分内核驱动缺失导致设备的接口支持受限或者部分配件不支持

  1. 获得设备对应的刷机镜像包

小技巧

请联系 tech@hckdigi.com 获得镜像包的下载地址。

  1. 下载并解压镜像包到本地

# 当前整机安装的模组为Orin-NX-16GB为例(后续步骤皆同)
选择“HCK-C1201-JP6.2.0-orin-nx-16GB-v1.0.tar.gz”进行下载;

# 解压镜像包文件,必须使用sudo
sudo tar xzvf HCK-C1201-JP6.2.0-orin-nx-16GB-v1.0.tar.gz
  1. 设备进入Rec模式

  2. 在刷写主机上输入lsusb

lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 06cb:00be Synaptics, Inc.
Bus 001 Device 003: ID 5986:2130 Acer, Inc
Bus 001 Device 055: ID 0955:7323 NVidia Corp.
Bus 001 Device 005: ID 8087:0aaa Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

上述红色加粗的7323就代表刷写主机通过USB已经识别到进入Recovery模式的Orin NX 16GB模组,其余模组型号的识别代码如下:

小技巧

  • 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)

  1. 命令行进行刷机

  • 安装必要的刷机依赖(仅需一次)

对于第一次进行刷机的主机,必须安装必要的刷机依赖

./l4t_flash_prerequisites.sh
  • 进入镜像包的解压根目录并执行刷机命令

# 进入刷机镜像包目录
cd mfi_jetson-orin-nano-devkit

# 执行刷机命令
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only
...()...
writing item=16, 9:0:secondary_gpt, 61203267072, 16896, gpt_secondary_9_0.bin, 16896, fixed-<reserved>-0, b7e802e72330c73e64feef762332043c98663e1f
[ 401]: l4t_flash_from_kernel: Successfully flash the external device
[ 401]: l4t_flash_from_kernel: Flashing success
[ 401]: l4t_flash_from_kernel: The device size indicated in the partition layout xml is smaller than the actual size. This utility will try to fix the GPT.
Flash is successful
Reboot device
Cleaning up...
  • 等待设备重启

注意

刷机时间约15分钟左右,成功刷机后会自动重启

常见问题

Q1 设备无法进入REC模式

请检查设备进入REC模式的关键步骤,需保持REC按键长按的情况下,再插入设备电源进行上电,上电后保持按压REC按键至少4秒钟以上,不确信时,可以延长到10秒后再松开REC按键。

Q2 刷机主机上lsusb无法找到nvidia的模组

请检查是否用数据线的USB TYPEC线缆连接了刷机主机和AIBOX。

Q3 刷机过程中出现“might be timeout in USB write”

timeout in USB write

在部分Ubuntu 20.04主机上,由于内核默认启用了USB Autosuspend节能设置,会有概率的在刷机过程中出现USB的超时错误,可以进行如下尝试: 在刷写主机上临时禁用autosuspend功能

sudo -s
echo -1 > /sys/module/usbcore/parameters/autosuspend

然后拔掉USB的刷机线缆后,重新将AIBOX操作进入Rec模式后插入USB刷机线缆。