本教程主要针对xavier环境的整体迁移工作而写。xavier环境不容易配置,所以配置好了之后可以制作镜像,下一次就可以直接把所有的环境都烧录进去。大大减轻工作量。
1.镜像制作 步骤1 设备连接首先要准备一台18.04的电脑作为host使用,然后是已经配置好环境的xavier。把xavier用专用的Type-C数据线连接到host上。连接的是靠近电源按钮的typeC口。然后把host和xavier都开机。
步骤2 配置好网络,并且打开ssh服务配置好IP,在host上,可以PING一下xavier的IP地址,一般默认为192.168.55.1
PING通后,打开ssh服务:service ssh start
然后在xavier上,也需要打开ssh服务:service ssh start
在xavier测试一下ssh是否开启成功:
# 下面的命令不能粘贴,要改成自己的host。 ssh hostname@hostIp # 其中 hostname要换成自己实际的host名,hostIp是实际host的ip。
成功开启。
然后,在host上试一下ssh能否开启成功
# 下面的命令不能粘贴,要改成自己的xavier。 ssh xaviername@xavierIp # 其中 xavier要换成自己实际的xavier名,xavierIp是实际xavier的ip。
成功开启。
然后需要两个都退出ssh。
退出ssh命令:ctrl + D,会显示:
Connection to 192.168.0.101 closed.步骤3 制作raw文件
在host上运行一下代码:
# step1:进入了xavier的终端 ssh xavier@192.168.55.1 # step2:接下来这一步是为了禁止文件被改写。为下一步制作镜像做准备 sudo echo "u" | sudo dd of=/proc/sysrq-trigger # 上面这个命令是用到了dd 指令 把"u"写入到/proc/sysrq-trigger中,功能是让该系统下所有文件变成只读模式。 # step3:接下来通过dd 指令把/dev/mmcblk0p1 下的文件 全部移动到host下的/home/host/xavier-image.raw文件夹中。 sudo dd if=/dev/mmcblk0p1 | ssh host@192.168.0.85 dd of=/home/host/xavier-image.raw
step3会比较慢,大概会运行10分钟,而且没有进度条,所以需要耐心等待,保持数据线的稳定连接。否则有可能会导致文件拷贝失败。如果不小心导致失败后,删除原来的raw文件,重新进行拷贝即可。
2. 镜像刷机镜像文件本应该存放在以下路径:
如果没有使用SDKManager刷过机的话,新的电脑装上SDKManager是找不到以下路径的:`
~/nvidia/nvidia_/JetPack_4.5.1_Linux_P2888/Linux_for_Tegra/bootloader/
如果是使用过SDKManager刷过机,就不需要看步骤1了,可以直接调到步骤2.
如果没刷过,就看步骤1.
首先,下载安装jetpack4.4(离线包百度网盘链接,提取码:uht8)
然后把下载好的包解压。
由于镜像刷机也需要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
等待完成提示为(这个我没有截图,从这个博客上拷贝的):
如果原来的镜像系统有挂载SSD,并且/home放在了SSD里面,需要先刷机,然后对挂载硬盘进行分区,然后再把原来的/home文件拷贝到新机里面。
本文的参考资料:https://blog.csdn.net/qq_42741525/article/details/116232639



