简介:此博客主要记录本人在刷机时遇到的种种坑,为了避免以后自己遇到同样的坑忘记怎么办所以把一些关键的问题记录下来。
前因:由于贪便宜从某海鲜市场买了TX2的核心板+载板,看着成色不错,机器人上的拆机板。
后果:得自己重新刷机,刚拿到时上面还是机器人专用的系统。
准备工作(软):VM(16.0Pro)创建一个的Ubuntu18.04(80G起步建议100G)
准备工作(硬):TX2核心板+载板、垃圾箱里捡的USB线、屏幕、无线键鼠、12V7A电源。
一、拿到板子以后从网上随便找了篇教程开始愉快地刷机,遇到了第一个坑:
注册账号的时候英伟达说没有加入他们的开发者项目的会员: NVIDIA Developer Program Membership Required
去官网加入一下NVIDIA Developer Program加入就好了。
二、之后又遇到了第二个坑:
Your current region has an age policy that does not allow you to use the system.
纳尼难道被制裁了,后来去某管看了看美国的一位老哥也爆这种错误,后来想了想也有可能是年龄写小了(当时随便写的),于是又用QQ邮箱重新注册了一个(某些博主用Gmail注册似乎解决了这个问题),变成剑桥50岁老大爷注册成功。其他诸如SDK Manager下载什么的别的博主博客上都有很详细的教程,就不一一赘述。
另外我还看到不少博主采用两根网线+交换机/路由器的方案,由于我没这条件(学生党),所以用数据线刷。
三、没踩,但是要说一下:
这里完全没必要选那个Host Machine,那个是在你主机上安装乱七八糟的一些东西,但我们的目的只是刷机,所以不选。
然后到了上图所示的STEP 02,这个时候要把I accept the...和Download now.Install later前面的勾都打上,这样一来就分为两个阶段:第一阶段是下载,第二阶段是安装。在下载阶段我没爆什么错,只不过有点慢,建议有条件还是上原装USB线。下载完成之后退回STEP 01然后再次进入STEP 02,这时取消勾选Download now.Install later就可以安装了。
四、安装的时候遇到问题,下载到10%左右必出错说我板子处于异常状态(The target is in a bad state),可我明明已经进入recovery mode了。retry了好几次也不行。
升级了一下VM版本(15Pro→16Pro),还是不行,顺便说一下如何判断板子如何进入recovery mode:是否重新上电无所谓,按住载板rec键(长按),再按一下rst键(短按),再松开rec就行了。然后终端输入
lsusb
检查Nvidia Corp的id,若为0955:7c18或0955:7e19,则成功进入recovery mode;若为0955:7020,则未进入recovery mode。
经检查我的板子成功进入recovery mode,看来起码板子是能进recovery的(松了口气)。
后来换了根USB线还是不行,看来也可以排除线问题。
后来从网上找了一下,据说是由于新的Jetpack4.6版本有问题。解决方法是不用SDK Manager下载,直接用命令行:
cd ~/nvidia/nvidia_sdk/JetPack_4.6.2_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra
然后
sudo ./flash.sh jetson-tx2 mmcblk0p1
开启漫长的下载之路...完成后如下图。
下好之后屏幕会自动亮起,这个时候配置一下键盘布局、时区、账号密码啥的就行。(下图是随便照的)
但是我安装完以后貌似还得安那个SDK Components,所以还是得用SDK Manager...好在之前爆的错是OS的问题,别的安装没问题。这次在STEP 02里不勾选Jetson OS,然后就是漫长的等待:
期间可能会卡住,不用管他,让它慢慢安就好。
安装好之后怎么测试一下呢?之前安双系统的时候还跑过小海龟呢,不过那个是20.04的。
从别的博主那找来一个大海的例程:
cd /usr/local/cuda-10.2/samples/5_Simulations/oceanFFT
sudo make oceanFFT
./oceanFFT
以上就是我刷机时遇到的一些坑和关键点,第一次写博客写的要多懒有多懒,不想码字了,溜了溜了。
2024.4.3更新
第一次写博客没想到还真有人看hhh,那就再补充几个点:
1.板子的USB线接入后,虚拟机没反应?可尝试如下操作:
2.烧写完系统,烧写SDK组件的时候不能是recovery模式了,否则找不到板子
3.如果想下载其他版本的jetpack比如4.5.1、4.5等,你会发现新版sdk的sdk组件是找不到老版本的,在终端输入sdkmanager --archived-versions重新进入sdk manager就可以找到老版本SDK啦
4.如果出现下图的状况,apt-get missing dependencies. There are missing dependencies in apt-get database...
换个源一般就可以了,我当时用的阿里云
5.根据官网的描述,flash.sh只支持QSPI/eMMC/SD卡,其他的要用initrd flash
其实只要刷过一次,第二次再刷就会比较方便了,因为组件和系统都已经下到虚拟机里了,只要刷写进去就行了,不过有一说一刷写也是很费时间,安装好之后不用急着换源,因为如果做机器人开发学习肯定少不了ros,用鱼香ROS的一键安装它会根据你的版本自动换好源。开机之后其他必须按的如中文输入法、魔法工具和各种依赖等就不一一赘述了。另外个人感觉jetpack4.5反而比4.6更稳定点。。。