最近在实验室弄到了一块英伟达tx1开发板,用来搞双目物品识别。就TX1的配置过程而言,可以说是把可以踩得坑都踩了一遍,本贴子用来记录我的经历,以及一些常见的坑,希望可以帮到大家。
一.刷机前准备工作。
由于tx1是英伟达公司2016年发布的,出厂系统是ubuntu16.04,原厂并没有带任何开发环境。换句话说,就是一切都要我们自己配置,网上的说法是刷机可以充分发挥硬件性能。根据官网https://developer.nvidia.com/embedded/jetpack的说法,我们需要安装一个叫做Jetpack的刷机工具,需要在ubuntu系统下运行,这时我们就需要配置一下虚拟机。这里我们用vmware来创建虚拟机,具体教程可以参考:看这里。注意,这里第一个坑会出现,卡了我好久,网上的很多教程都是让你使用jetpack3.0或者3.1的版本进行刷机,但由于年代过于久远,服务器已经停止运行,所以运行时会卡在如下页面。
博主试了好多个方法,都没有解决出现error的情况,这里心态一度崩溃。后来,才知道jetpack3.3以下的版本都用不了。
到官网下载好jetpack3.3的安装包后,我们在主机ubuntu的命令行输入如下代码:
cd ~/Jetpack
sudo chmod +x JetPack-L4T-3.3-linux-x64_b39.run
./JetPack-L4T-3.3-linux-x64_b39.run
随后,我们将进入安装界面,一路Next。
接下来进入到Compons Manager页面,这里会有第二个坑
如果我们主机已经安装了上面栏目中的环境(如opencv,cuda)就会出现如下错误
这里我的做法是把Host-Ubuntu这一行选为no action,不为主机安装环境。把其他的选好后,一路next(PS:这里下载环境最好用一下魔法,你懂的,不然得等4567给小时)
出现这个页面时,我们选择第一个,有线连接模式,我的做法是把主机和tx1用网线介入到同一个路由器(校园网的话要先登陆好),然后又usb线把电脑和tx1连接起来。
当这个页面出现,我们的准备工作总算是完成了。
这里的意思是:
1.断开TX1电源,保证开发板处于断电关机状态
2.TX1通过网线与路由器相连,并与宿主机处于同一个局域网
路由器需要连接外网
3.用Micro USB线把开发板连到电脑上(类似于安卓手机连电脑)
4.接通AC电源,按下power键,开机
5.刚一开机,就长按Recovery键不松开,然后点按一下Reset键(Down and Up),过2s以后才松开Recovery键,此时开发板处于强制恢复模式
完成以上步骤后,终端输入lsusb
命令,可以看到一些列表,只要发现其中有Nvidia Corp就说明连接正确。
但这之前又会出现一个坑,这里必须把虚拟机的网络连接方式改为桥接模式,同时要勾选复制物理连接模式,不然则会出现卡在如下页面:determining the IP address of target 即找不到目标ip地址,当然可以手动更改,但十分麻烦,所以选好网络,让他自己寻找。
一切准备就绪后,我们就可以去喝杯奶茶,慢慢等待他安装完,因为没有个把小时是安装不完的
到这一步就算是大功告成了,接下来在jetpack3.3的安装界面会问你是否要删除下载的文件,这里为了方便以后配置环境,建议留着,不要删除。
二.开发准备工作
接下来,我们就可以给tx1连上键盘鼠标显示器了,但是,为了能够更好的使用tx1,我建议要给他换一下源,我们打开控制台,输入如下代码:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
此举是为了备份默认的源,接下来我们把打开的文件里的源全部用#注释掉,换成下面的最新源,亲测有效
原文链接:https://blog.csdn.net/pkuyjxu/article/details/104207203
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
wq保存后,在控制台输入:
sudo apt-get update
sudo apt-get upgrade
随即完成换源
为了能够多人一起操控我们的tx1,我们这里使用了xshell这个远程登录工具,
根据提示,我们在主机一栏输入我们的tx1的IP地址(可以通过ifconfig查看),选择默认的ssh协议和端口号22,根据提示,就能远程操控我们的设备啦,注意,两个设备一定要连同一个局域网。
三.demo测试
输入代码:
cd /home/tegra_multimedia_api/samples/backend
./backend 1 ../../data/Video/sample_outdoor_car_1080p_10fps.h264 H264 --trt-deployfile ../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.prototxt --trt-modelfile ../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.caffemodel --trt-forcefp32 0 --trt-proc-interval 1 -fps 10
随即就会自动运行,这里也许要等个6,7分钟,期间你会慢慢发现一直不转的风扇会慢慢动起来。
效果:
最后来一张tx1的帅照
-----------------------------------------------------------------------------------------------------------------------分割线
第一次写博客,有很多不足之处,希望可以帮助到遇到同样问题的你们