介绍
本教程主要针对xavier环境的整体迁移工作而写。xavier环境不容易配置,所以配置好了之后可以制作镜像,下一次就可以直接把所有的环境都烧录进去。大大减轻工作量。
首先看一下你自己的需求。
- 如果你是直接刷官方镜像,这里提供jetson4.4的版本,[请跳转第3部分 官方镜像制作]
- 如果你是需要自己做一个镜像,[请看第1部分 镜像制作]
- 如果你是需要把自己做的镜像刷进机器,[请跳转第2部分 镜像刷机]
1.镜像制作
步骤1 设备连接
首先要准备一台18.04的电脑作为host使用,然后是已经配置好环境的xavier。把xavier用专用的Type-C数据线连接到host上。连接的是靠近电源按钮的typeC口。然后把host和xavier都开机。
步骤2 制作raw文件
在host上运行一下代码:如果没有这个Linux_for_Tegra路径,那么需要下载NVIDIA SDK Manager,[[跳转到第2部分镜像刷机的#步骤1 安装NVIDIA SDK Manager]]
cd /home/$USER$/nvidia/install/JetPack_4.3_Linux_P2888/Linux_for_Tegra
sudo ./flash.sh -r -k APP -G backup.img jetson-xavier mmcblk0p1
step2会比较慢,大概会运行10分钟,所以需要耐心等待,保持数据线的稳定连接。
完成之后bash里面的显示:
[ 17.9919 ] tegradevflash_v2 --read APP /home/lbw/nvidia/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/backup.img
[ 17.9924 ] Bootloader version 01.00.0000
[ 18.4064 ] [................................................] 100%
[ 1071.5045 ]
然后该路径下会产生一个backup.img的镜像,就是我们制作的镜像文件.
2. 镜像刷机
镜像文件本应该存放在以下路径:
如果没有使用SDKManager刷过机的话,新的电脑装上SDKManager是找不到以下路径的:`
~/nvidia/nvidia_/JetPack_4.5.1_Linux_P2888/Linux_for_Tegra/bootloader/
如果是使用过SDKManager刷过机,就不需要看步骤1了,可以直接调到步骤2.
如果没刷过,就看步骤1.
步骤1 安装NVIDIA SDK Manager
首先,下载安装jetpack4.4(离线包链接: 密码: mshd)
然后把下载好的包解压。
由于镜像刷机也需要SDKManager的刷机软件,所以需要先下载SDKManager。版本没有要求,这里使用的是4.4。刷入的系统镜像版本是4.5.1。所以SDK本身的版本和镜像里面的版本是无关的。
以SDKManager4.5.1
为例,打开SDKManager
界面如下:
图1:
改变Install from
目录,选择jetpack4.4的解压后的包所在的sdk_downloads
目录。
选择/OFFLINE from local folder
-点击start
,进入图2
图2:
勾选 I accept the terms and conditions of the license agreements
然后点击CONTINUE
,会弹出窗口3
窗口3:
选择Create
,然后再次点击CONTINUE
。弹出窗口4
窗口4:
在窗口4中输入host密码。
等待Jetson OS image
安装完毕,状态如图5:
图5:
此时选择Skip
,跳出图6
图6:
然后选择Yes
,看到图7
图7:
然后选择FINISH AND EXIT
,退出SDK
找到以下文件夹(根据自己的图1中选择的目录),见图8
图8:
然后会发现并没有系统镜像。此时进入步骤2
步骤2 替换镜像文件
cd到下列目录(根据自己选择的目录):
cd ~/nvidia/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/
如果这个文件夹下本来就有system.img(官方自带镜像,后悔药)的话,先备份保存下。
mv system.img system.img.bk
然后把提前准备好的镜像文件xavier-image.raw
解压到该目录下。
sudo ./mksparse -v --fillpattern=0 ~/xavier-image.raw system.img
图9:
在图9中可以看到已经生成了系统镜像system.img
,大小为28GB。
至此,镜像已经准备就绪,可以开始刷机了。进入步骤3.
步骤3 刷机
把需要刷机的xavier设备与host连接。然后让xavier进入recovery模式。进入方式:先按下中间的recovery键不松开,然后再按下电源键,过个一两秒后同时松开,就进入了该模式了。
切换到Linux_for_Tegra
目录下,
cd ~/nvidia/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/
在host上输入以下命令:
sudo ./flash.sh -r jetson-xavier mmcblk0p1
等待完成提示为(这个我没有截图,从这个博客上拷贝的):
[ 16.1093 ]
[ 16.1094 ] Reading partition
[ 16.1104 ] tegradevflash_v2 --read APP /home/lbw/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/backup.img
[ 16.1110 ] Bootloader version 01.00.0000
[ 16.5251 ] [................................................] 100%
[ 991.8324 ]
*** The [APP] has been read successfully. ***
Converting RAW image to Sparse image...
生成的backup.img文件就在下面的目录里面:
/home/lbw/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/backup.img
需要刷机的时候,直接改名为system.img,就可以了.
3. 官方jetson刷机
csdn上有很多教程,这里推荐这位的教程,比较简洁、具体、好用而且有jetpack4.4的百度网盘链接:链接
以上步骤仅适用于原xavier只有原来固态硬盘的情况。
如果原来的镜像系统有挂载SSD,并且/home放在了SSD里面,需要先刷机,然后对挂载硬盘进行分区,然后再把原来的/home文件拷贝到新机里面。
本文的参考资料:https://blog.csdn.net/qq_42741525/article/details/116232639