今天是Jetson TX2刷机第四天,期间遇到各种奇葩错误,联系了各路好汉,查看了各种文档,在此进行汇总并事先声明:我吴彦祖就是饿死,从这儿跳下去,死外边,我也不会再买老黄家的Jetson系列任何一台设备!
(更新)我已解决问题,找到原因,原因和解决方式在5.2.2系统烧写中
当事人现身说法:当时是一个焦躁的晚上,我使用了Jetson 3.3进行了刷机,之后在进入寻找IP的过程后,没找到我局域网中的TX2的地址。理论上讲,到这里为止其实TX2系统以及刷好了,应该只是一些CUDA什么的没有装上,结果重启TX2一看,键盘鼠标不能用了,我擦!
明明USB还是好的啊,怕是键盘鼠标驱动出问题了,出大问题了,并且问题还没解决。虽然现在用ssh能脸上TX2,但显然sudo什么的我不能用啊!!!
我也顾不得能不能用键盘这种小事了,先试试接下来的操作。
我当时安装Jetpack3.3的时候,组好了网,它说:我用三十秒的时间检测一下你这个ip是不是ok。然后三十秒检测完毕之后,它结束了???啥都不出现了?卡了?我想:可能是网络慢吧,于是,我等了一晚上。
换4.n装着试试
因为安装Jetson3.3没成功,我就想,新点的包会不会好呢?于是我连续尝试了4.3、4.2.1、4.2.2和4.3,发现了如下错误:
16:40:07 INFO : File System and OS : exec_command: /tmp/tmp_NV_L4T_FILE_SYSTEM_AND_OS_TX2_COMP.sh
16:42:39 INFO : File System and OS : Using rootfs directory of: /media/greepex/4E9AEFD29AEFB49D/Homework/ICRA_AI_Challenge/Jetson4_2_1/SDK/JetPack_4.2.1_Linux_GA_P3310/Linux_for_Tegra/rootfs
16:42:39 INFO : File System and OS : ||||||||||||||||||||||| ERROR |||||||||||||||||||||||
16:42:39 INFO : File System and OS : -----------------------------------------------------
16:42:39 INFO : File System and OS : 1. The root filesystem, provided with this package,
16:42:39 INFO : File System and OS : has to be extracted to this directory:
16:42:39 INFO : File System and OS : /media/greepex/4E9AEFD29AEFB49D/Homework/ICRA_AI_Challenge/Jetson4_2_1/SDK/JetPack_4.2.1_Linux_GA_P3310/Linux_for_Tegra/rootfs
16:42:39 INFO : File System and OS : -----------------------------------------------------
16:42:39 INFO : File System and OS : 2. The root filesystem, provided with this package,
16:42:39 INFO : File System and OS : has to be extracted with 'sudo' to this directory:
16:42:39 INFO : File System and OS : /media/greepex/4E9AEFD29AEFB49D/Homework/ICRA_AI_Challenge/Jetson4_2_1/SDK/JetPack_4.2.1_Linux_GA_P3310/Linux_for_Tegra/rootfs
16:42:39 INFO : File System and OS : -----------------------------------------------------
16:42:39 INFO : File System and OS : Consult the Development Guide for instructions on
16:42:39 INFO : File System and OS : extracting and flashing your device.
16:42:39 INFO : File System and OS : |||||||||||||||||||||||||||||||||||||||||||||||||||||
16:42:39 INFO : File System and OS : exit status 1
16:42:39 INFO : File System and OS : [ Package Install Finished with Error ]
16:42:39 INFO : File System and OS : [ 164.00 KB used. Disk Avail: 9.97 GB ]
16:42:39 INFO : File System and OS : [ NV_L4T_FILE_SYSTEM_AND_OS_TX2_COMP Install took 2m32s ]
16:42:39 ERROR : File System and OS : Run commands failed at step Install: command /tmp/tmp_NV_L4T_FILE_SYSTEM_AND_OS_TX2_COMP.sh finished with error
16:42:39 INFO : File System and OS :
16:42:39 ERROR : File System and OS : command terminated with error
16:42:39 ERROR : File System and OS : install 'File System and OS' failure
wocou,当时我就怒了,我当时就想着,我吴彦祖好好当个美男子就行了,玩这个板子干啥?!现在都被这块板子玩了。
那咋办?我就查资料呗,于是我就找到了这位老哥在官网论坛上的提问:
某老哥的提问,虽然没有解决这个问题,但至少让我知道,我不是一个人在战斗!
然后这位老哥在后面的回复中如是说:
Indeed, it’s been repeatedly stated in my case and apparently many others. Whatever special sauce went into packaging 4.2.2 probably broke it for some of us folks, since <= 4.2.1 seems to work. At the moment, I’ve given up yak shaving and just sticking with 4.2.1.
兄弟,能不能有点骨气,和bug战斗到底啊!!!主要是我换了4.2.1以后还是一样的问题。
这次我又找到了官方论坛上的一个资料:
这次的问题和我打一毛一样,兄弟,一起战斗啊!
刷机到现在,Ubuntu系统重装了一次,出了一身打毛病,我也在官方发了一个自己错误的帖子:
写个帖子死马当活马医
在使用jetpack的东西进行安装后,host机上一般会有各种莫名奇妙的错误,真的是很让人开心啊,比如如下错误:
E: 无法下载 http://cn.archive.ubuntu.com/ubuntu/dists/xenial/main/binary-arm64/Packages 404 Not Found [IP: 91.189.91.23 80] E: 无法下载 http://cn.archive.ubuntu.com/ubuntu/dists/xenial-updates/main/binary-arm64/Packages 404 Not Found [IP: 91.189.91.23 80] E: 无法下载 http://cn.archive.ubuntu.com/ubuntu/dists/xenial-backports/main/binary-arm64/Packages 404 Not Found [IP: 91.189.91.23 80] E: 无法下载 http://cn.archive.ubuntu.com/ubuntu/dists/xenial-security/main/binary-arm64/Packages 404 Not Found [IP: 91.189.91.23 80] E: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。
在终端执行命令:
dpkg --print-foreign-architectures
你会发现,里面有个arm64,干掉它,你的电脑是amd64,一定要干掉它!
于是你使用了:
sudo dpkg --remove-architecture arm64
但是系统提示:
dpkg:错误:无法移除体系结构 arm64 ,当前它仍被数据库使用
这个时候,一不做二不休,重装系统就好了**(开玩笑,开玩笑)**
我们应该输入如下指令:
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get remove .*:arm64
sudo dpkg --remove-architecture arm64
之后打sudo apt-get update就可以正常使用了。
刷这个板子真的靠人品,欧皇7分钟刷完还表示一脸蒙蔽:你们怎么这么慢啊。
大家可能尝试了很多很多的攻略了,我这篇博客适合刷了很多很多次,还是没有刷成的人看。如果正常的方法能成功,请不要继续往下看了。
能看到这里的人,想必对这个界面非常熟悉了:
这里要注意,兄弟,这个Host Machine是可以不选的!!!
还有这里,这里的深度学习乱七八糟的东西也是可以不选的!!!
事实上,我们的过程分为两步:1刷OS,2刷AI相关库。
因为总是卡在刷系统这里,所以我选择:自己下载包,自己刷!!!不要这捞什子的sdkmanager了。
这里不需要什么在同一个局域网下什么的,但要用USB-microUSB连接HOST和TX2,先从官网下载刷机包:1系统包L4T Jetson TX2 R28.3.2 Sources,2文件系统L4T Jetson TX2 R28.3.2 Sample Root Filesystem,地址在这里。
大概是这个样子的:
(Note:其实我们可以使用sdkmanger进行包的下载,然后在下载目录里找到相应的系统包和文件系统包)
sudo ./apply_binaries.sh
,||||||||||||||||||||||| ERROR |||||||||||||||||||||||
等等这样的东西,并孜孜不倦让你用sudo解压文件系统到rootfs中。兄弟,我就直接打开apply_binaries.sh文件,并讲相关部分注释,完美执行!sudo ./flash.sh -N 192.168.3.200:/home/ubuntu/work//Linux_for_Tegra/rootfs jetson-tx2 eth0
sudo ./flash.sh jetson-tx2 mmcblk0p1
第四步我划去的部分找到原因了,这也是我一直没有刷机成功的原因,那就是安装系统的目录必须group是root,user也是root,而想要该文件属于root,那么该文件必须属于系统盘。而我的系统盘大小太小,所以我将其放入了其他盘(其他盘的文件无法修改为root所有),也因此出现该错误。也就是如下图红圈所在部分,必须是在系统盘中(剩余大小至少30GB+,不然就等着报错吧),另一个位置无所谓。
AI相关库其实就更好刷了,其实如果没有我们之前把Target HW image folder文件设置为系统盘外,我们几乎可以一步完成。
因为我之前的刷系统的操作是匹配于Jetpack4.3的包,所以我们的AI相关的库也是使用了sdkmanager来刷4.3相关的AI库。
这里不用USB-microUSB线,但需要HOST和TX2在同一个局域网中,并尝试HOST用ssh连接TX2,成功的话就可以了。
sudo apt-get install python3-opencv
这里主要使用了Nvidia官方给的教程,安装就好了Pytorch官方教程
(Note:里面的下载内容要的,如果不能的话,我后续会在百度云中分享一些版本)