因为自己做的项目需要涉及到嵌入式的目标识别,所以采购了NVIDIA的Jetson TX2。后续会逐渐的更新文章,作为一种自己的记录。
一、购买
1、购买TX2
我是购买的教育版的TX2。事后总结,发现通过教育版购买有好处也有坏处。好处是便宜,2899大洋。坏处在于不一定能有一个比较好的代理商进行售后维护,这里的售后维护不光指解决软硬件问题,更多的是提供教程、提供同行交流的机会。如果可以报销,也可以考虑找一家经常发布各种技术文章,承诺进行各种技术支持的代理商进行购买,具体的代理商我就不打广告了。
另外,购买教育版可能会长时间没有人联系你,这个时候可以发邮件主动询问,很快就有人联系你了。
2、购买附件
在购买TX2的同时,还需要同时准备一些附件,避免等箱子到了迟迟不能上电开机。
序号 | 附件 | 备注 |
1 | 220V的电源三相插头线 | 箱子里带的电源转换器没有连220V的部分 |
2 | HDMI线用于连带HDMI接口的显示器 | |
3 | 带HDMI接口的显示器 | 网上多篇教程都说,如果用HDMI转VGA会在刷机的时候卡住(黑屏) |
4 | USB的hub用于同时连接键盘和鼠标、USB摄像头 | 因为只有一个USB接口 |
5 | USB的键盘和USB的鼠标 | |
6 | 网线 | 刷机的时候需要能连互联网 |
7 | SD卡 | 可选,可以后期购买,用于扩展硬盘空间 |
3、注册一个NVIDIA的账号备用
后面下载SDK Manager和运行的SDK Manager都需要登录NVIDIA的账号。
二、开箱上电
开箱后,箱子里包含有开发板(载板)一块、电源转换器一个,Micro-B转USB A转换线一条,Micro-B转FEMALE USB A转换线一条,2个天线(antenna)和很薄的两个纸质文档(Safety Guide和Quick Start Guide)。
按照Quick Start Guide里的接线图,连接天线、USB hub(上面连USB鼠标和键盘)、HDMI显示器和网线,就可以开机了。开机的时候按下电源键(注意,需要按下大概1秒,如果你只是按下去快速释放,会闪一下红灯但是系统没有启动)。
我购买的TX2开机后直接进入了Ubuntu的安装界面(和网上说的不同),安装成功后发现并没有自带CUDA等程序,所以需要刷机。
三、准备host主机
最好是能准备一台安装了 Ubuntu 18.04 Desktop 的主机作为host,如果实在没有也可以使用虚拟机(有的教程说虚拟机不行,但是我实测是可以的)。至少需要8G的内存和大概34G的剩余硬盘空间(因为解压什么的也需要空间,所以保留40-50G剩余空间比较安全)。虚拟机使用桥接模式还是什么网络连接模式我尝试了都没有问题,如果有问题可以试试切换到桥接模式,并复制物理网卡状态。
在Ubuntu的host主机上,使用VPN上网(如果你没有VPN,很多时候是无法自己安装成功SDK Manager的,这个时候你可以选择和代理商联系,将TX2寄回去,或者一开始就说好请他们帮忙刷机),下载安装SDK Manager。第一次你可以先不刷机,选择下载但以后安装(主要是看看网络到底可以不,如果不行就要另想办法)。
没有VPN,还有另一个方式就是去NVIDIA官网下载SD Card image,使用SD Card image的方式进行安装。
四、刷机
1、连接host主机和TX2
通过host主机的USB口连接到TX2的micro USB口,注意,这个时候TX2应该是处于关机模式的。
2、使开发套件进入强制回复模式(Force Recovery Mode)
先按下并保持住强制恢复按钮,然后按下并保持住电源按钮,释放电源按钮,然后释放强制恢复按钮。
3、运行 SDK Manager
在host主机上,打开一个终端窗口,输入sdkmanager启动SDK Manager,然后在第2步检测设备(点refresh按钮),第3步下载软件(如果没有VPN基本上不会成功),第4步进行烧录。当进行到第4步时,会在TX2上安装Ubuntu操作系统,你需要设置一个用户名和密码,在正式烧录的时候会用到。
注意,如果找不到TX2,在host主机上使用终端命令lsusb查看,应该会看到有NVIDIA的设备,没有就需要重新连接。
如果没有VPN,host主机上的CUDA,Target主机上的Jetson OS这些都很难下载下来。
这里要输入TX2的IP地址,前面安装操作系统时输入的用户名和密码,注意这个192.168.55.1需要手工修改的,不是系统自动检测到的。
五、检查环境
刷机完成后,可以正常开机,登录TX2上的Ubuntu操作系统了,检查一下环境是否正常。
注意,正常开机状态下,TX2的风扇是不会转动的,不用担心。
1、查看CPU
lscpu 可以看到有6个ARM的CPU。
2、查看内存
free 可以看到有8G的内存(如果使用free -g 显示为7)
3、查看硬盘空间
df -h 显示可用空间为28G,已经使用大概12G,剩余15G。
4、查看CUDA版本
终端窗口输入:nvcc -V 我的版本是cuda10.2
5、查看cudnn版本
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR 我的CUDNN版本是8
6、查看TensorRT版本
dpkg -l | grep TensorRT 我的版本是:7.1.3-1+cuda10.2
7、查看L4T info
由于JetPack并不会安装到Jetson TX2上,所以只能查看L4T info,并反推自己可能使用的JetPack版本。
head -n 1 /etc/nv_tegra_release 我的机器显示的是 R32 (release), REVISION: 5.0
根据官方文档《L4T》:L4T 32.5 is included as part of JetPack 4.5,可以推测我使用的JetPack很可能是JetPack 4.5。