NVIDIA Jetson的是arm64架构具有GPU的开发组件。相应地,很多系统库/深度学习库不能够容易地被找到。为了一劳永逸解决此类依赖问题,NVIDIA官方提供了刷机(flash)工具包(Jetpack)。本文主要介绍Jetpack刷机的技术细节。
此外JetsonHacks提供了官方刷机教学视频,如果看本文还是不清楚一些细节,可以看视频一步步跟着学: Jetpack 4.2安装 Jetpack 3.0安装
老版本的刷机教程也可以参考Jetson TX2 完整刷机教程。
准备工作
一台带有Intel或AMDx86架构的Ubuntu操作系统的电脑作为host主机 (Jetpack 4.x推荐系统为Ubuntu 18.04)。
物理空间:需要至少40G以上的物理空间。Jetpack和Jetpack下载的安装包需要的空间十分庞大。
下载Jetpack安装包:申请Nvidia developer账号,在NVIDIA官方网站根据开发板的型号登录后下载。建议下载当前最新版本Jetpack 4.6。
只需要确保host主机能够上网(开发板没有网络也能刷机)。
准备一根Micro-USB的数据线(一般手机充电线即可)(备注: AGX Xavier/AGX Orin只需要TypeC-USB数据线),一根HDMI线,一个屏幕。
安装Jetpack
断开开发板电源,断开开发板网线,数据线连接开发板和host主机。双击运行Jetpack安装包,然后命令行输入
1
sdkmanager # 此处不能使用root
Nvidia developer账号登录后,进入step 1: 勾选host和target,选择需要刷机的设备类型(如果数据线连接正常,也会自动检测出设备)。
进入step 2: 创建2个新文件夹,用于存放下载库文件和target镜像文件。
点击继续进入step 3: 进入下载阶段,完成后自动进入install OS阶段。
Jetpack会自动提示,是否自动刷机(auto flash)/手动刷机(manual flash)。建议选择手动刷机(manual flash),然后开启强制恢复模式,以TX2为例:
(a) 保证开发板初始处于断电状态,确保Micro USB线正常连接
(b) 接通开发板电源,按下power开机,然后迅速按住recovery键不松开,按一下reset键,过2秒松开recovery键
(c) 此时应该有2个绿灯亮起
验证是否处于强制恢复状态,在host命令行输入
1
lsusb # 如果有Nvidia Corp设备检测到说明正确进入了强制恢复状态,否则重复第4步
给开发板连上HDMI线+屏幕,等待开发板的ubuntu系统初始化(配置账号密码)。
Jetpack会提示要求选择连接方式+输入账号密码。此时选择使用USB连接,不要修改默认的ip地址,输入开发板的ubuntu系统的账号密码。
冗长的等待,等待所有库全部安装完成,进入step 4: 点击exit退出sdkmanger。
进一步配置
给开发板连接网线并查看ip。
1 | ifconfig | grep eth0 -a1 |
随后可以ssh进行连接和进一步配置。
可能的问题
网络下载太慢
更换能过墙+带宽足够的环境。Jetpack报奇怪的错(例如dependencies error)
更换纯净的ubuntu 18.04 host,多数是系统问题。不要想着fix这些error,有这时间不如重装/换靠谱的host。有2个CPU核心不工作(性能问题)
将/boot/extlinux/exltinux.conf 文件里的isolcpus=1-2
修改为isolcpus=
,参考解决方案