因为毕设要做嵌入式设备的目标检测,所以从实验室拿来了一块Jetson TX1的板子,在此记录一下使用的过程和踩过的坑。
1. 开箱
算是伪开箱了,直接来一张目前的全家福:
除了板子主体以外还有两根天线,一根USB-OTG线,一根Micro USB线(可惜在实验室经历了很多代人的手,已经丢了),电源适配器(缺少插座线,需要自己购买)。
为了能正常刷机和测试YOLO,单独购买了一根双公头的USB线,插座线,USB hub(为了能同时连接键盘和鼠标),一台12寸的显示器,键鼠自备,摄像头。注意显示器要用HDMI接口的,不要用VGA转HDMI。
此时连上电源,板子上亮了一个红灯,下面就可以刷机了。
2. 刷机
HOST机(主机):windows10下的虚拟机,ubuntu14.04(官方推荐14.04或者16.04,18.04暂时未尝试)
安装的Jetpack目标版本:Jetpack3.3。(尝试安装过Jetpack4.5.1,然而并没有成功,看来还是3版本适合TX1呀) 成功安装Jetpack4.5.1,和该文章思路一样,只不过依旧需要注意一点,切勿在板子上更换源,要等刷完以后再更换。
为了正常刷机,需要在HOST机下做一些准备工作
2.1 HOST机准备工作
2.2.1 更新源
身在国内,如果使用默认的安装源将会下载的非常慢,所以在正式安装Jetpack前,先更新一下源。
ubuntu14.04没有自带的右键开启终端的功能,有些操作很是不方便,所以我们要安装一个小插件:
$ sudo apt-get install nautilus-open-terminal
安装完后注销系统重新登录即可。
接下来更新源:
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 备份源文件
$ sudo vim /etc/apt/sources.list # 编辑源文件
# 打开源文件后,按i进入插入模式,输入下面的源信息并注释掉之前的源信息
deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
# 按esc退出插入模式,再按:wq,保存退出
# 更新一下
$ sudo apt-get update
$ sudo apt-get upgrade
2.2.2 Jetpack下载
去官网(https://developer.nvidia.com/embedded/jetpack-archive)下载jetpack相应版本,此处我下载的是jetpack3.3。下载的时候需要用到英伟达帐号,如果没有可以使用邮箱申请一个,然后再下载。
我们单独新建一个文件夹安装Jetpack
$ mkdir Jetpack
$ cp JetPack-L4T-3.3-linux-x64_b39.run Jetpack
2.2.3 安装Jetpack
运行文件之前,需要给文件赋予权限,然后再运行。
$ cd Jetpack
$ sudo chmod +x JetPack-L4T-3.3-linux-x64_b39.run # 赋予权限
$ ./JetPack-L4T-3.3-linux-x64_b39.run # 运行安装即可
之后跳出来一个这个框,忽略即可,点击okay继续安装。![]()
随后,我们将进入安装界面,一路Next。
选择安装路径和下载路径,我都是默认,然后下面我选择不允许收集我的信息。继续next
选择开发板tx1,继续next
然后就是安装包的选择界面。确定好以后选择next,这里如果你只是想单独安装某个软件,可以将Flash OS Image to Target设为no action,这样就不会进入刷系统的过程了。
这里选择全部接受。
有时候如果出现某些包安装不上,可以选择手动安装。
$ sudo apt-get install <packgename>
下载好后,点击ok继续
接下来可以点击next开始刷机了。
再进行下一步时,先做好准备工作。
2.3 刷机过程
这里过程是先刷系统,然后再刷相关软件,刷系统的时候没有网也可,所以不用插网线或者联网。
- 首先给板子通上电;
- 用Micro USB线把开发板连到电脑上(类似于安卓手机连电脑),如果使用的是虚拟机主机,需要在虚拟机-可移动设备中找到英伟达设备,然后选择与虚拟机连接,与主机断开;
- 点击开机按钮,接下来按住Recover按键,然后点按一下reset键,过2s以后,再松开rec键,此时开发板处于强制恢复模式。
接下来板子就可以暂时不管了,在host主机内操作。
检查一下板子是否和主机链接上了,在命令行界面输入lsusb,如果能看到NVidia Corp的结果,说明链接成功,反之请重新操作。这里有一个坑,如果无论如何虚拟机也检查不到usb链接,可以卸载VM虚拟机,然后重新安装(放心,你的系统文件没删除,如果不放心的话,可以备份一下)。重新安装虚拟机后,可以正常检查到usb链接,继续下面的操作。
连接方式选择第一种即可。
这里一般只有一个网口。如果有多个选项,就需要在其他命令行里面键入ifconfig 来查看哪一个是可以连接上网的网络接口
以上步骤确认无误后,在post installation界面中敲一下enter,就开始了刷机过程。

等待一会后,系统安装成功。出现下面的界面是电脑在寻找你的tx1的ip,如果你连接了网线,请继续,如果没有网线,而是想用wifi连接,那么可以按住ctrl + c终止终端,然后重新打开jetpack。
在此之前你的tx1应该会打开了系统安装界面,依次按步骤进行安装,并连接上校园网。此时特别注意,不要在这个时候切换tx1的系统安装源,等一切都刷好以后可以再切换。
重新打开jetpack后,步骤都一样,只有到了下面这一步需要注意:把Flash OS设为No Action
在确认安装以后,这一次并不会直接跳出来黑色界面,而是需要手动指定 Jetson IP。
在你的jetson tx1连接好校园网后,输入ifconfig查看电脑的ip地址,一般是wlan0口,输入ip地址和用户名密码等信息后,选择next。连接成功以后继续选择next,如果没成功请检查ip等信息是否正确。
接下来会进入漫长的安装等待时间,可以出去散散步。
如果最后一句出现了Installation of target components finished, closed this window to continue,那么恭喜你,安装成功。
如果安装不成功,请重新上述所有步骤,亲测,网上找的办法基本没用。