目录
一、环境
二、前言
三、正式刷机
四、踩坑指南
(一)flash OS
(二)安装 AI 组件
一、环境
主机:win10,USB3.0接口
虚拟PC软件:VMware15,USB控制器使用3.0方式
虚拟机:ubuntu16.04.3,已经换源,内存:4G,磁盘(>40G):62G,处理器:4
网络类型:桥接
(你可能需要USB扩展器、显示器、键盘、鼠标)
环境搭建可以参考
二、前言
JetPack是一个软件开发套件,包含操作系统OS、AI开发组件等,需要在Linux环境运行该文件,然后在线联网下载,JetPack3.x版本是一个.run后缀格式的文件,更新到4.x版本后使用SDK Manager工具进行安装,大体上的刷机步骤类似。
在刷机时,默认在host和device两侧安装相应的工具,但是如果不需要配置交叉编译环境,是不用在host侧安装相应的包的,另外如果device侧的系统没有问题或者对python的版本等不做要求,用不着flash系统,只需要安装相应的AI开发组件就行了。操作系统是通过USB线刷的方式flash到device中的,AI开发组件是通过ssh的方式安装到device中的。
经过多次尝试,flash操作系统要将host和device同时连接到路由器,使用wifi一直没有成功过;而安装 AI开发组件既可以使用路由器/交换机、也可以用wifi的方式,具体的踩坑经历见文末。
三、正式刷机
1、下载JetPack3.2.1(默认python2.7和python3.5),下载地址:https://developer.nvidia.com/embedded/jetpack-archive 。下载完成后,在ubuntu中新建site-pack文件夹,将JetPack文件放在该文件夹下,执行以下命令启动后续过程。
mkdir site-pack
chmod +x ./site-pack/JetPack.xxxx.run #JetPack.xxxx.run是你下载的JetPack文件
./site-pack/JetPack.xxxx.run
2、下载步骤(此时已将主机和Jetson Tx2连接在路由器上)
中途可以进行暂停、停止等操作,如果提示下载失败,点击next可以断点续传,等待下载结束,根据提示进行后续步骤:网络布局选择”路由器/交换机“方式,网络接口注意不要选错了,可以在终端通过ifconfig命令查看当前虚拟机上网用的网口是哪一个。
3、开始flash过程
按照以下提示使Jetson Tx2进入强制恢复模式:
翻译过来就是:
1、关机断电;
2、使用官方标配的黑色数据线(两端都有绿色的标志)连接主机和Jetson Tx2;
3、接上电源;
4、按一下电源键->持续按住强制恢复键的同时,按一下重置键(此时能听到主机的提示声音,同时vmware弹框提示是否将Nvidia APX接入当前虚拟机,选择接入),保持2s左右松开强制恢复键。
可以在vmware的菜单”虚拟机“中的”可移动设备“选项中查看、连接或断开可移动设备,同时在终端中输入lsusb命令可以查看到列表中有”NVidia Crop“字样,在Post installation窗口回车进行正式的flash过程。
4、flash OS的结束
顺利的话应该可以看到成功flash OS的提示(不顺利的话参见文末-踩坑指南-flash OS):
5、为Jetson Tx2换源
当在终端看到flash OS结束后,连接Jetson Tx2的显示器显示也差不多进入了ubuntu16.04的桌面了,此时可以更换源,需要注意的是需要更换arm的镜像源,而不是PC端用的源,因为两者的架构不一样。使用以下命令备份源、然后使用国内镜像源进行替换。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo gedit /etc/apt/sources.list
科大源:
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main universe restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main universe restricted
保存后关闭,执行更新命令:
sudo apt-get update
sudo apt-get upgrade
6、开始flash AI组件
当flash OS结束后,安装 AI组件就比较简单了,因为有线、无线连接都可以成功安装。由于使用的路由器方式,所以在终端会自动检测device的ip,然后进行AI 组件的安装工作。如果没有检测到,可以手动输入,但是需要知道Jetson Tx2的ip,这个可以在路由器后台查看。不管是有线还是无线,都要求host和device处在同一局域网下,可以使用ping命令查看是否能够正常通信。
顺利的话,能看到组件安装结束的提示(不顺利的话参见文末-踩坑指南-安装 AI组件):
Installation of target components finished, close this window to contine.
7、结束
走完整个流程,在开始创建的site-pack文件夹下会留下很多的包,在Post Installation结束后有提示是否删除下载的文件,可以删除,也可以留着。
四、踩坑指南
(一)flash OS
正常情况下,10分钟左右应该能完成这个过程,但是也会出现一直卡顿、或者由于某个原因直接就中止flash过程,这个过程出问题频率较多:
1、提示Can not open USB...
可能是没有检测到USB,因为使用虚拟机时,USB设备要么连接到物理主机,要么连接到虚拟机,这个可以在虚拟机里面的可移动设备进行检查;或者USB没插好、端口有问题等等。碰到过一次这个问题,重头来一遍操作,确保操作无误就没事了。
2、提示BootRom is not running
看了很多博文说是USB端口的问题,刚开始一直使用的virtual box6.0虚拟机,自己主机的USB全是3.0,有一篇博文的情况和自己相似,按照给的方法”安装vbox扩展包,然后开启USB3.0控制器“,并没有解决问题,反而出现了新的问题:在未flash OS之前正常,在flash时提示BootRom is not running后直接提示flash 失败,vbox虚拟机提示”无法分配该USB设备给该虚拟机“,一直未解决该问题,具体原因不明,后面换了vmware虚拟机使用。
3、提示CPU Bootloader is not running on device...
如果是报了这个错,然后卡住不动的话,可以尝试热插拔一次USB;如果报错了,但是没卡住,貌似也没什么问题。
4、其他问题
对于使用虚拟机的情况,JetPack对内存和磁盘大小都有一定的要求,太小的话是可能出问题的,JetPack的版本越高对内存的容量要求貌似要更大,之前尝试刷JetPack4.3,但是提示”内存至少5.3G的样子“,磁盘容量大于40G应该就可以了(如果中途flash失败,要避免包的堆积,可以删除之前下载的文件再重新执行一遍操作;因为只下载不删除,几次操作下来后,缓存堆积起来后磁盘会被逐渐占满,就会出现”明明分配了四五十个G的空间为什么还不够“的问题,在ubuntu中可以通过磁盘分析器查看磁盘的使用情况)。
在运行JetPack执行文件时,也会检测当前系统的语言、版本等信息是否不太符合要求,最好是按照推荐的方式做。比如JetPack3.2.1提示”检测到系统语言为非英文....以及官方只在ubuntu14.04和ubuntu16.04做过测试...“等等。
(二)安装 AI 组件
在flash AI组件过程中,可能会提示某些包没有安装成功,需要在device侧手动安装,然后回到Post installation终端回车继续。例如提示如下信息:
Error: CUDA cannot be installed on device. This may be caused by other apt -getommand running on device when. installing CUDA. Please use apt-get command in ame.rminal to make sure followingpackages are installed correctly on · device befocontinuing;
cuda-toolkit-9 libgomp1 libfree image dev libopenmpi -dev openmpi- bin
After these packages are installedon device press Enter key to - continue
在Jetson Tx2中使用sudo apt-get命令安装好提示的包,然后继续就可以了,直至所有组件安装完成。
实际上在Jetson Tx2中安装好相应的包后,回过来继续下一步,发现卡死了,推测是主机失去了和Jetson Tx2的连接,因此关闭窗口,重头再来一遍操作(OS已经有了,只需要安装AI 组件就行)。
由于之前已经下载了相应的开发组件,点击next会检测到,所以直接进入安装过程。填写device的ip、用户名和密码,进入各个组件的安装过程,很快就安装完毕。