common problem

Jetson个平台系统升级命令合集(含分区升级)

2020-11-04 11:35:31 tuwei 51

如有错漏请指正,如转载请注明出处,谢谢!

进入刷机模式:

NVIDIA Jetson是通过Micro-USB/USB TYPE-C接口升级系统(具体参考不同载板说明),更新前需让Jetson进入Recovery 模式。Recovery 模式下可以进行文件系统更新包含: 内核Kernel,启动Bootloader,文件系统Filesystem等。
进入 Recovery 模式的步骤:
1)关闭系统电源,请确保使电源关闭而不是进入待机状态;
2)使用 Micro-USB(或USB TYPE-C)的链接线,一端链接Jetson一端连接Ubuntu Host主机;
3)一般使用12/15V电源为系统进行上电开机;(看说明手册)
4)同时按下RESET复位键和RECOVERY 按键后,若非自动启动的机器还需要按一下Power按键让系统上电;
5)保持按下 RECOVERY 按键的同时释放RESET复位按键,等待 2 秒释放RECOVERY 按键,此时Jetson进入Recovery刷机模式 (可通过在Ubuntu Host主机上运行命令:lsusb查看是否有Nvidia Corporation 设备(不同Jetson模块USB VID/PID 不同)来确认是否进入正常)
注意:在进入 USB Recovery 模式下,系统不会启动,串口不会有调试信息输出

图为科技
Xavier 刷机命令:
系统镜像生成并升级(把机器中的所有内容擦除并刷机,重新制作system.img)
$sudo ./flash.sh jetson-xavier mmcblk0p1 

系统完整升级但不生成system.img镜像(把机器中的所有内容擦除并刷机)
$sudo ./flash.sh -r jetson-xavier mmcblk0p1 

更新DTB 设备树(涉及外设驱动)
$sudo ./flash.sh -r -k kernel-dtb jetson-xavier mmcblk0p1

更新内核镜像(kernel/Image 涉及外设驱动)
$sudo ./flash.sh -r -k kernel jetson-xavier mmcblk0p1

系统备份(备份Xavier机器中的系统及全部文件至当前目录的backup.img)
$sudo ./flash.sh -r -k APP -G backup.img jetson-xavier mmcblk0p1
如何恢复使用备份的镜像:
1、上面步骤备份会生出两个文件,把其中的backup.img.raw 重新命名到bootloader/system.img(软件镜像包含用户空间的所有文件信息),backup.img 文件不被使用可以删除掉
2、运行命令重新升级机器:
$sudo ./flash.sh -r jetson-xavier mmcblk0p1
Xavier NX:
系统镜像生成并升级(把机器中的所有内容擦除并刷机,重新制作system.img)
$sudo ./flash.sh jetson-xavier-nx-devkit-emmc mmcblk0p1 

系统完整升级但不生成system.img镜像(把机器中的所有内容擦除并刷机)
$sudo ./flash.sh -r jetson-xavier-nx-devkit-emmc mmcblk0p1 

更新DTB 设备树(涉及外设驱动)
$sudo ./flash.sh -r -k kernel-dtb jetson-xavier-nx-devkit-emmc mmcblk0p1

更新内核镜像(kernel/Image 涉及外设驱动)
由于Xavier NX检索内核先判断根目录下/boot/Image 文件,所以升级TX2 内核只需要把内核编译出的Image 文件复制到 Xavier NX开机后的/boot/ 目录后再重启即可,通过uname -a 查看内核信息包括编译日期
$sudo cp $PWD/Image /boot/ 
$sudo reboot

系统备份(备份Xavier NX机器中的系统及全部文件至当前目录的backup.img)
$sudo ./flash.sh -r -k APP -G backup.img jetson-xavier-nx-devkit-emmc mmcblk0p1

如何恢复使用备份的镜像:
1、上面步骤备份会生出两个文件,把其中的backup.img.raw 重新命名到bootloader/system.img(软件镜像包含用户空间的所有文件信息),backup.img 文件不被使用可以删除掉
2、运行命令重新升级机器:
$sudo ./flash.sh -r jetson-xavier-nx-devkit-emmc mmcblk0p1
TX2:
系统镜像生成并升级(把机器中的所有内容擦除并刷机,重新制作system.img)
$sudo ./flash.sh jetson-tx2 mmcblk0p1 

系统完整升级但不生成system.img镜像(把机器中的所有内容擦除并刷机)
$sudo ./flash.sh -r jetson-tx2 mmcblk0p1 

更新DTB 设备树(涉及外设驱动)
$sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk0p1

更新内核镜像(kernel/Image 涉及外设驱动)
由于TX2 检索内核先判断根目录下/boot/Image 文件,所以升级TX2 内核只需要把内核编译出的Image 文件复制到 TX2 开机后的/boot/ 目录后再重启即可,通过uname -a 查看内核信息包括编译日期
$sudo cp $PWD/Image /boot/ 
$sudo reboot

系统备份(备份TX2机器中的系统及全部文件)
$sudo ./flash.sh -r -k APP -G backup.img jetson-tx2 mmcblk0p1

如何恢复使用备份的镜像:
1、上面步骤备份会生出两个文件,把其中的backup.img.raw 重新命名到bootloader/system.img(软件镜像包含用户空间的所有文件信息),backup.img 文件不被使用可以删除掉
2、运行命令重新升级机器:
$sudo ./flash.sh -r jetson-tx2 mmcblk0p1
TX1:
系统镜像生成并升级(把机器中的所有内容擦除并刷机,重新制作system.img)
$sudo ./flash.sh jetson-tx1 mmcblk0p1 

系统完整升级但不生成system.img镜像(把机器中的所有内容擦除并刷机)
$sudo ./flash.sh -r jetson-tx1 mmcblk0p1 

更新DTB 设备树(涉及外设驱动)
$sudo ./flash.sh -r -k kernel-dtb jetson-tx1 mmcblk0p1

更新内核镜像(kernel/Image 涉及外设驱动)
由于TX2 检索内核先判断根目录下/boot/Image 文件,所以升级TX2 内核只需要把内核编译出的Image 文件复制到 TX2 开机后的/boot/ 目录后再重启即可,通过uname -a 查看内核信息包括编译日期
$sudo cp $PWD/Image /boot/ 
$sudo reboot

系统备份(备份TX2机器中的系统及全部文件)
$sudo ./flash.sh -r -k APP -G backup.img jetson-tx1 mmcblk0p1

如何恢复使用备份的镜像:
1、上面步骤备份会生出两个文件,把其中的backup.img.raw 重新命名到bootloader/system.img(软件镜像包含用户空间的所有文件信息),backup.img 文件不被使用可以删除掉
2、运行命令重新升级机器:
$sudo ./flash.sh -r jetson-tx1 mmcblk0p1
Nano:
系统镜像生成并升级(把机器中的所有内容擦除并刷机,重新制作system.img)
$sudo ./flash.sh jetson-nano-emmc mmcblk0p1

系统完整升级但不生成system.img镜像(把机器中的所有内容擦除并刷机)
$sudo ./flash.sh -r jetson-nano-emmc mmcblk0p1

更新DTB 设备树(涉及外设驱动)
$sudo ./flash.sh -r -k kernel-dtb jetson-nano-emmc mmcblk0p1

更新内核镜像(kernel/Image 涉及外设驱动)
由于Nano检索内核先判断根目录下/boot/Image 文件,所以升级TX2 内核只需要把内核编译出的Image 文件复制到 Nano开机后的/boot/ 目录后再重启即可,通过uname -a 查看内核信息包括编译日期
$sudo cp $PWD/Image /boot/ 
$sudo reboot

更新U-Boot 分区(Linux_for_Tegra/bootloader/t210ref/p3450-porg/u-boot.bin)
$sudo ./flash.sh -k LNX jetson-nano-emmc mmcblk0p1

系统备份与其他平台不同,按照下面的步骤操作

Nano 的恢复机制和其他平台不同,需要按照如下方式:
备份步骤:

  1. Nano B01 开机进入系统,root运行如下两个命令,建立备份镜像到HostPC端/home/twsrv01/Downloads/ (修改为自己的IP和对应路径)

$echo u > /proc/sysrq-trigger$dd if=/dev/mmcblk0p1 | ssh twsrv01@192.168.1.195 dd of=/home/twsrv01/nano/jp43.raw(30-60分钟不等,依据机器内系统实际大小)
  1. 进入HostPC (Ubuntu18.04),Nano L4T下载路径,运行如下命令:

twsrv01@twsrv01:~/nvidia/nvidia_sdk/JetPack_4.2.2_Linux_GA_P3448-0020/Linux_for_Tegra$cd bootloader
twsrv01@twsrv01:~/nvidia/nvidia_sdk/JetPack_4.2.2_Linux_GA_P3448-0020/Linux_for_Tegra/bootloader$ 
./mksparse -v --fillpattern=0 /home/twsrv01/nano/jp43.raw system.img

恢复备份的镜像步骤(即升级刚备份的system.img):

twsrv01@twsrv01:~/nvidia/nvidia_sdk/JetPack_4.2.2_Linux_GA_P3448-0020/Linux_for_Tegra$sudo ./flash.sh -r jetson-nano-emmc mmcblk0p1
  1. Nano重新开机,核对相关文件信息是否一致确认备份恢复成功与否

  2. 参考:Xavier 备份恢复https://www.elinux.org/Jetson/AGX_Xavier_Alternative_II_For_Cloning


参考文档:
Flashing and Booting the Target Device



作者:秦风_无衣
链接:https://www.jianshu.com/p/e35e3d562daf
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。