经历了四天的刷机,总算有成功的一次了,真是心累的呀!!!根据网上的教程,其他博主遇到的坑我遇到过,他们没遇到的坑我也遇到过,这篇博客就记录一下刷机步骤以及刷机过程中遇到的一些坑,希望对之后要刷机的同学能有所帮助。
一、为什么要刷机
TX2 出厂时,已经自带了 Ubuntu 16.04 系统,可以直接启动。但一般我们会选择刷机,目的是更新到最新的 JetPack L4T,并自动安装最新的驱动、CUDA Toolkit、cuDNN、TensorRT。
二、刷机
注意:
开发板刷机过程中要全程联网,即确保路由器可以正常连接外网。
除了Jetson TX2之外,还需要另一台带有Intel或AMD x86处理器的台式机或笔记本电脑。
JetPack是一个x86二进制文件,不能在基于ARM的机器上运行。
如果主机是虚拟机,刷机时一定要设置虚拟机网络连接模式为桥接模式,并复制物理网络连接状态,不然在刷完系统后装软件会卡死在等待获取设备IP地址这一步。
主机分配的内存必须大于30G。
1、Ubuntu主机Jetpack下载及安装
1)主机安装环境:ubuntu 16.04
jetpack版本:JetPack 3.2.1
以下是我安的jetpack链接,在官网https://developer.nvidia.com/embedded/jetpack下载还得需要注册nvidia账号, 如果需 要下载其他版本的伙伴可以去官网找。
链接:https://pan.baidu.com/s/1v7VhcAf64cxVkS_pzxUtsA 提取码:n1p2
2)安装
打开自己的ubuntu,创建一个TX2的 文件夹用来存放jetpack下载以及生成的文件。将下载的jetpack.run文件复制到TX2文件夹里,打开终端,在此目录下,更改执行权限,然后运行.run文件。
chmod +x JetPack-L4T-3.2.1-linux-x64_b23.run
./JetPack-L4T-3.2.1-linux-x64_b23.run
运行完该命令后会出现一个Warning,其他博主说是因为主机ubuntu为简体中文版,不过这个Warning可直接忽略,点击OK
点击OK后出现如下安装界面,点next:
选择安装位置,一般安装位置都会默认在第一步新建的TX2文件夹下,点next,在如下界面选择TX2:
选择之后,出现以下这个界面:
在第一次下载的时候选择Full,每个安装包的状态都是install,因为jetpack3.2自带cuda9.0+cudnn7.0+opencv3.3.1,如果需要安装其他版本,在这步不需要安装,之后可以手动安装其他版本。然后接受协议:
接受协议之后就需要很长一段时间下载各种包,我们当时安装一次大概需要一个多小时,但下载不止这么简单,光这一步我们安装了不下10次,在这步遇到的坑请看第三部分。当所有的包都成功下载或成功安装后,即会出现下面这个弹窗,点击OK即可进行开发板的刷机。
当下载不成功时,会出现下面这个弹窗,这个时候要检查一下网络连接问题和虚拟机的网络配置,再back重新下载,要是还出现这个错误,再试一下打开另一个终端,输入sudo apt-get install libopencv4tegra libopencv4tegra-dev 。此过程容易失败,多尝试几次。
接下来next,执行下一步
将host和tx2连在同一个路由器上,最好用网线连接,在接下来的界面中选择第一种方式,端口就用默认的:
接下来一直next,直到这一步:
2、TX2端的操作
在上图中点击next,host终端中会出现以下提示,按照提示将tx2开发板设置为recovery模式,即:
(1)将tx2开发板断电,一定要把电源借口拔掉;
(2)用micro-usb线将host和tx2连接;
(3)给tx2重新接上电源;
(4)按下tx2的电源键,按住强制恢复键(Force Recovery键,电源键旁边那个键)不要松开,用另一个手指按一下reset键(最边上那个键),等待2秒以后再松开强制恢复键;
(5)在host终端输入lsusb,查看tx2是否在recovery模式,如果出现nvidia corp,按下enter键,便开始刷机了,这个过程要持续一个小时以上。
当出现如下页面时,即表示刷机成功,但我刷机时等待这个页面等的很心酸呐。
刷机完成后出现以下页面,最好别移除刷机下载的文件,万一以后还要刷机就有的用了
三、刷机入坑指南
1、jetpack版本的选择
因为第一次接触功能如此强大,并且带有系统的板子,在操作时很是惊慌,生怕把板子搞坏了,对于学生党来说,还是买不起也赔不起的。jetpack目前应该更新到4.2.1版本。但我们刚开始下载的是jetpack3.3版本,根据网上的其他版本教程试了几遍,总是一夜回到解放前,3.3版本的教程不多,也再没敢继续装3.3,就怕搞坏板子。之后换成3.2版本,刚好看到一个教程就是3.2的,心想这下怕是可以一步一步按照教程来了。谁曾想,就算有了教程,刷机之路依然那么艰辛。
刷机的小伙伴一定提前查好自己要装的版本,不然可能会有点心累的吧。
2、运行完 ./JetPack-L4T-3.2.1-linux-x64_b23.run之后不但出现上面所说的Warning,点击OK之后会出现一个ERROR,图片当时没截,现在又不可能重刷一次机,大概的ERROR意思是第一步创建的文件夹名称中间不能有空格,这个是我的失误,文件夹、变量的命名不能有空格。
3、JetPack L4T 3.2 Component Manager 界面在下载File System and OS 时显示ERROR,但这个文件是刷机必需的。
解决方法:将主机ubuntu的网络状态改为桥接模式。(对,我的桥接模式在这步才改的)
4、JetPack L4T 3.2 Component Manager 界面在Host-Ubuntu端下载CUDA Toolkit时总是下到1.4%就retry,直到第十次出现如下界面:
解决方法:虽然说刷机时CUDA Toolkit和File System and OS这两个包是一定要下载的,但是在JetPack L4T 3.2 Component Manager页面会有个Host-ubuntu和Target-jetson TX2/TX2i,刷机的时候如果host-ubuntu的包如果下载不成功,那就直接忽略,改为 no action,但Target-jetson TX2/TX2i里面必要的包可不能忽略。所以这个问题直接将CUDA Toolkit的状态改为no action就好。
5、接坑4,一切都下载好之后,点击OK,会大概花不到一个小时的时间安装下载好的包,这时会看到页面最下面有个共有22个任务的进度条,但前几次每次到(6/22)就会停止。
解决方法:back返回重新安装,这个只要下载成功了,多安装几次就好了。
6、在determing the IP address of target这里卡住,等了一晚上依然卡在这里。
解决方法:在主机网络模式已改为桥接模式的基础上,重新刷机,这个时候JetPack L4T 3.2 Component Manager 页面的File System and OS状态可改为no action ,因为已经下载好了,这时刷机就比较快了。
7、在determing the IP address of target失败后出现如下选择页面,选择1,没啥反应,一直option,选择2,直接退出页面了,无奈又重新开始刷机。
解决方法:将主机和TX2用网线连到同一个路由器下,一开始我用实验室的网线连的,按理来说应该是可以的,都是一个口出来的,但是 还是被现实一下打趴,最后用一般的路由器出来两根网线连上之后再没有这个错误。
8、determing the IP address of target成功之后,又出现了这样一个问题,主机终端要求输入TX2的密码,按照要求输过之后又卡死在输入密码的指令上。
解决办法:等了一晚上还是在卡死页面,无奈心累,于是狂按enter,结果刷机成功。这怕是玄学。
刷机成功之后,要安装tensorflow,又是个磨人的东西,无奈两天还没安好,安好之后再在下篇博客记录一下,,,
继续入坑。。。