最近由于项目需要,得使用到TX2,由于之前没怎么接触过TX2,一路上遇到无数个坑,心酸,下面放出我刷机的过程。
提前说明:本人主机的系统是Ubuntu16.04,其他版本的没配过。我刷机的方法和别人有点出入,如果你有一台可以联网的路由,或是懂DHCP服务,可以不用看本贴的TX2刷机部分,去找其他传统刷机的帖子,我的方法可以适用于那些用不了路由,又不太懂DHCP的朋友。
TX2刷机。
1.1物理连接
用usb线连接板子的usb0口(即minusb口),用网线将板子的网口直接和主机网口相连。当然板子的电源线也得插电,HDMI口也和显示屏相连(记得提前找个支持HDMI口的显示屏),通过wifi或USB共享网络的方式让主机一直联网。
2下载JectPack
Jetson Development Pack(JETPACK)是NVIDIA提供的一个一体化软件包,可以用于安装NVIDIA JETSON嵌入式平台所需的所有开发软件工具。下载JetPack软件包必须登录TX2的官网后才能下载 。
TX2官网:http://www.nvidia.cn/object/embedded-systems-dev-kits-modules-cn.html。
JectPack下载:https://developer.nvidia.com/embedded/jetpack
本人下载的是最新的JetPack3.3 ubuntu64的版本。
3通过JetPack的方式下载对应的软件包
打开ubuntu终端,通过./的命令运行上一步下载过来的JetPack软件包,中途可能会跳出一个警告,不用理它,直接OK。
一路next下去,选择好对应的板子。直到这一个页面,如下图所示。
该图用自其它CSDN,版本有点不同,对应看自己的版本就行,这个页面详细介绍了将要下载的软件包,Host-Ubuntu部分是为主机安装的软件包,Target-Jetson TX2是给TX2装的软件包,红框区域是给TX2装的Ubuntu系统以及驱动,后面Install on Target 是给TX2装的功能包,像cudnn,opencv之类的。
第一次先全部install,先把所有的需要装的下载过来,左下角的自动解决依赖项矛盾的选项也选上。进入下一步
这里我是Accept all,然后进入漫长的下载之旅,由于安装包比较多,可能要几个小时。
4传输软件包给TX2
下载完后继续next,会出现刷机中最麻烦的选择,如下图所示。
这里要选择主机和TX2的通信方式,可以通过路由或DHCP服务的方式,该通信主要让主机把下载好的要装给TX2的功能包传输给TX2(注意:传给TX2的包分为两种,一个是装的系统和驱动的系统包,另一个是传的功能包,系统包是直接通过USB传过去的,但功能包得通过网线传过去,这也是为什么要选择通信方式了)
(先说明:我在此处的方法和其他人写的不太一样,由于我没有路由,DHCP也不太清楚,所以我先是把系统刷进去了TX2,然后再把功能包刷进去的,一共刷了两次机)
先选择方式一,主机还是直接用网线和TX2相连。进入下一步。
这里随便选一个,反正十有八九通信失败,继续一路next,然后会碰到这个页面
按照英文提示,按下几次键就行,然后另开一个终端,输入:lsusb,如果出现了NVIDIA Corp,就说明成功了,然后回车一下,主机就开始把软件包传输给TX2了,然后又是漫长的等待。
这个出现后说明刷机刷完了。你以为大功告成了,别开心,先进入刷好的ubuntu系统看看那些功能包在不在,当然用我这种方式那肯定是不在的,所以要第二次刷机。
1.5第二次刷机
第二次刷机的目的是为了将没有传输过去的功能包传输给TX2,继续开始在主机终端运行Jectpack的run文件,依然到这个页面
由于系统软件已经传给了TX2,所以这次我们只传输功能包,把除了Install on Target 的其他部分全部no action,然后继续一路next,这次你会发现进入了之前没见过的页面,它让你填下TX2的IP地址,TX2用户名,以及TX2的密码(TX2的用户名和密码一般默认都是:nvidia)。
接下来一步很重要,要构建主机和TX2之间的以太网络,关于这一点可以直接百度:如何构建两个ubuntu之间的以太网,可以参考该贴https://blog.csdn.net/petpig0312/article/details/80190623,只要做到能让主机和TX2ping的通就行了。大致方法都是通过手动的方式给主机和TX2的网卡分配同一网段下的IP地址。
ping通后,把TX2对应IP和用户名,密码填到该页面。然后next,后面的部分就完全和第一次刷机一样了,记得刷完机后去TX2的系统检查下有没有cuda,cudnn,opencv等。
检查cuda:nvcc -V,如果没有正确显示可按以下操作:
sudo gedit /etc/bash.bashrc
在文件的末尾加入如下
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
本人第一次发帖,欢迎大佬们指出错误。