Jetson AGX Xavier JetPack 4.2环境配置

Jetson AGX Xavier 去年,NVIDIA在苏州举办了GTC China大会上发布的AI计算平台,主要用于移动端的计算。想法美好,不过配起来环境还是遇到了很多问题,一些是软件,另一些甚至还有硬件。

设备需求

  • Jetson AGX Xavier(当然)
  • 显示器(两台,一个给host主机,一个给Xavier平台,配套的hdmi线)
  • 网线(也要备两根)
  • 键鼠(一套就行,主要工作在host上)
  • usb type C(用原装。。)

刷机过程

主机配置(虚拟机)

主机host的要求是linux系统,为了满足要求又不想太麻烦用多机多系统,可以选择虚拟机进行主机的设置。一开始我还用了win10自带的Hyper-V,但实际上很不好用,走了一小段弯路。之后才老老实实使用Vmware workstation。

虚拟机
这大概是最低配置了,注意一下硬盘空间(当然我安装时没注意选择了host的cuda这一堆,占了不少地方)。操作系统使用的是Ubuntu 18.04,老的16.04在其他教程上也见过,应该也没有什么问题。

安装sdkmanager

主机host端到官网下载
在这里插入图片描述
下载后输入sudo apt install /PATH_TO_SDKMANAGER,把PATH_TO_SDKMANAGER对应为你的下载文件。然后就会自动安装。
sdk安装

烧录镜像

下载

安装成功后,直接运行SDKManager即可,第一步会让你输入Nvida账号。然后来到第二部,选择要安装组件。
选择组件
这里主机上的套件(HOST)应该不是必须的,下面的(TARGET)要选上,特别是CUDA和AI这两项。之后就会进入漫长的下载,不过是一边下载一边安装,节省了时间。
小技巧是点右上角的菜单栏,在设置中可以改把最大下载连接数,默认是1,可以改成3来加速。
加速

烧录

安装之后,会让你选择烧录方式。此时就要先把Xavier的线先给连好了。

  • hdmi
  • 键盘鼠标
  • 网线(同时要求与host处于一个局域网中)
  • 与host相连的USB type-c线(使用原装线!!!!手机的不行!!!别问我为啥)
  • 最后,是电源线

自动方式是要烧录了Jetson OS系统之后才能使用,因为它对网络进行了设置。这是安装系统内套件用的。
自动

手动方式就需要自己动手进入recovery模式:

  1. 用原装usb先将host与Xavier连接,还要注意是连接电源灯旁边的插口
  2. 手动进入recovery模式
    1. 确保连接电源并保持Xavier为关闭状态;
    2. 按住中间的按键(Force Recovery)不松手
    3. 按住左边的电源(Power)不松手
    4. 过一两秒,同时松手

如下图的指示:
手动
如果成功进入Recovery模式,host的虚拟机VMware会弹出提示,这时记得要把连接给虚拟机内,而不是主机。不然就无法在虚拟机内部找到这个硬件。
如果想要确认是否连接,可以在命令行中输入lsusb,如果里面有NVidia Corp.这一项则代表成功。
之后就可以点Flash开始烧录,接着便是漫长的等待。。。
烧录
烧录成后Xavier上就有了系统,此时显示屏上会有System Configuration,一步一步走,记住最后的用户名和密码。然后一路继续,重启后就能进入系统啦。
configuration

安装SDK 套件

这一步是需要在Xavier系统运行时安装的,因此务必保证:

  1. 使用原装USB线与host主机相连
  2. System Configuration步骤完成
  3. Xavier上正在运行配置好的Ubuntu系统
  4. 确保网线相连,并处于一个局域网中

否则就会报错:
报错
这时一步一步检查,具体可以到TERMINAL中查看报错信息。我就始终没有成功连接上USB,即使上一步能在Recovery中找到。然而忙活了半天,发现居然是因为USB线的原因!换上原装USB线就可以找到了!仔细观察两根还是不同的,原装是蓝色端口且标有“SS”,因此要认准这个标志了。
在这里插入图片描述

切换源!

这一节其实不必要,但错了问题就会很大。通常我都会有安装系统切换更新源到国内的习惯,这次没细心,直接搜了Ubuntu的源,复制过来,发现会导致找不到源的错误。
仔细对比原始source文件和网上的源,发现之间是不同的:
网上搜索得来的源一般都是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

这样的。
但Xavier使用的是ubuntu-ports,这就需要把上面的改成:

1
deb http://mirrors.aliyun.com/ubuntu-ports/ bionic main restricted universe multiverse

这样的形式。

总结

大概用一天时间踩了坑,错的地方感觉都很细节,正常来说应该是想不到吧。。