最近接触到了Nvidia Jetson TX2这块开发板,想入手测试一下自己的深度学习模型,因此和TX2的故事开始了!


前言

本人刷机多次,尝试各种大小坑:

  1. 自带系统搭建环境:刚开始不想刷机,就自己手动安装cuda等包,发现很多安装包不好找,好不容易下载的torch应该是支持cuda10.0,然后无奈放弃这条路

  2. 借助jetpack3.3搭建环境:只支持Ubuntu16.04的系统,实验室没有,只能用虚拟机来装了。刷好了之后,也报的相同的错,这时我才领悟到原来是需要cuda10.0以上的,又换!!!(这一步,多次搭建了VMware的系统,主要原因是提示内存不够,最后分配了50G才成功刷机)

  3. 借助jetpack4.2搭建:刚开始第二次尝试就是准备用这个的,但是登录界面一直进不去,提示我的账号或密码错误,反复确认是正确的,我还特地重新注册了个账号,同样的错误。后面才发现是这个包太久了,Nvidia应该不怎么维护了。

  4. 借助jetpack4.4 Developer Preview 搭建:终于成功了!!!

从小白到测试成功,确实不容易!

PS:jetpack3.3的刷机教程和自带系统安装深度学习环境的教程,我也出了:

xyl-507:Nvidia Jetson TX2 详细刷机教程及踩坑记录(Jetpack3.3,python2.7,torch1.2,torchvision)


刷机

刚接触TX2的时候,不知道为什么要刷机,后面看见有个博主说:

TX2 出厂时,已经自带了Ubuntu16.04 系统,可以直接启动。但一般我们会选择刷机,目的是更新到最新的 JetPack L4T,并自动安装最新的驱动、CUDA Toolkit、cuDNN、TensorRT。

(踩的坑,文末汇总)在自带的系统上,自己安装cuda8.0和cudnn6.0.21

(踩的坑)使用jetpack3.3刷机,附带安装的是cuda9.0和cudnn7.1.5。强烈建议给TX2烧机时选择jetpack4.2。

jetpack3.3没有对应的whl,踩坑无数还没有成功。

(一)使用jetpack4.4 Developer Preview 刷机,附带安装的是cuda10.2和cudnn8.0

1.刷机准备

  • pc端的ubuntu18.06系统,内存80G(虚拟机也可以,)

  • 一个交换机(路由器也可以)

  • 网线 2 条(tx2和ubuntu都需要连接至路由器或者交换机)

  • HDMI线和显示器

  • 连接设备:交换机分出两根网线,一根连接TX2,一根连接PC机(Ubuntu18.04),最好开始也用TX2自带的usb线把TX2和PC机连接起来。(全程都是联网的,我的PC机是通过手机USB共享热点来上网的,条件有限,不过没什么影响)

PS:测试是否成功连接交换机。首先在tx2上输入:

ifconfig

得到下图:

​可以看见我的tx2的IP为:192.168.43.150

然后在刷机用的电脑上(前提是tx2和电脑都连上了交换机),使用

ping 192.168.43.150

​出现上图这个,恭喜你,就是成功连上,进行下一步。

2.首先确定jetpack的版本:

torch、torchvision、cuda 、python对应版本匹配的关系如图所示。

​参照官网:https://pytorch.org/get-started/previous-versions/

3.下载jetpack4.4 Developer Preview(我的代码需要这个,因人而异。下载的是这个,但后面安装的是jetpack4.5.1)

去Nvidia的官网下载jetpack安装包(我的包是:sdkmanager_1.6.1-8175_amd64.deb)。很慢,可以去csdn碰碰运气,有的人会上传。PS:在这个网址把英伟达账号注册

​参照官网:https://developer.nvidia.com/embedded/jetpack-archive

4.更换国内源(在ubuntu18.04的PC机完成)

把Ubuntu系统自带的源修改为国内的源,我用的是清华源链接,为什么要换国内源呢,因为快快快,提高成功率!!!

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份 sudo gedit sources.list # 也可以用vim,我习惯用gedit,就是打开这个文件把官方源删掉换成国内的

将下面清华源内容覆盖掉原文件内容,注意如果清华源不行,可以更换阿里源、中科大源、网易源等,如果都失败还是用官方的,可能更新速度会慢点。

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

在终端输入以下的命令来使更改有效

sudo apt-get update

5. 安装jetpack安装包,在PC机上安装sdkmanager软件

下面命令中的.deb文件名字依照你的版本输入,有所不同

sudo apt install ./sdkmanager_1.6.1-8175_amd64.deb

安装完成之后,在终端输入下面命令运行sdkmanager

sdkmanager

PS:我的还出现了这个错误,但是不影响,点击 continue

接下来就会出现,然后登录nvidia的账号,正式刷机

https://blog.csdn.net/qq_38522972/article/details/111570964

6.开始刷机(首先给TX2装系统)

安装包下载阶段:刚开始我使用学校无线网下载的安装包,所以我这里勾选了Download now,install later。下载完成就开始去实验室,进行第二次安装。(如果是网速够快,不需要分为两个阶段,直接不选Download now,install later,下载完成之后就安装)

​出现上图表示刷机需要的包已经下载完成。

开始安装阶段:

先连接TX2、PC机和交换机。

然后进入TX2的恢复模式:(一来可以不进,但后面也会提示你进入。)

a.确认处于关机状态,然后拔掉电源适配器,使用官方的microUSB线(切记!!!)连接TX2和PC机

b.插上电源适配器,按一下power键开机

c.按下REC(RECOVERY FORCE)不要松开!!

d.再按下RST(reset按下松开,稍微有一定的按键时长)

e.REC保持两秒后松开

官方的microUSB线。图片来自:https://blog.csdn.net/qq_46046959/article/details/111675179

进入恢复模式之后,可以在终端输入

lsusb

查看,有 Nvidia Corp,就证明链接成功,可以进行操作

https://blog.csdn.net/NSSC_K/article/details/106092499

下图也可以看出jetpack的版本为4.5.1(进入了恢复模式,图上应该显示的是connected,我当时没截图,哈哈哈)

这里不要点,Host machine,我的会报错,见文末的踩坑记录

​检测到下载的安装包

​开始安装

7.安装过程中

安装到下图时,TX2会自动开机,这时需要去TX2上操作。(TX2上的操作大概就是安装Ubuntu系统的那些设置,很快)

​TX2上的操作截图,https://blog.csdn.net/qq_38522972/article/details/111570964

​一开始没进入恢复模式,这里还会提示进入恢复模式。一般选择手动设置(Manual setup)。图片来源:https://blog.csdn.net/qq_38522972/article/details/111570964

8.然后开始安装cuda等包

装完系统之后,在PC机上填入刚才设置的账号和密码,点击 install,开始安装

然后出现下图的画面,我的PC机是通过手机开USB共享热点上网,所以和TX2连接的USB可能有点冲突,自己尝试了换个USB,没解决就skip了,不过也没什么影响。

​9.然后完成安装

安装的cuda和cudnn基本没问题,不需要查看验证。(实在是需要可以在终端输入:nvcc -V)

10.查询安装的jetpack版本

a)查看其 L4T 信息

在TX2上,终端输入:

cat /etc/nv_tegra_release # 方法1

jetson查看Jetpack版本 - 走看看

参照Nvidia的官网:https://developer.nvidia.com/embedded/jetpack-archive

b)直接查询jetpack版本

网友在Nvidia上给的回答:

sudo apt-cache show nvidia-jetpack

参考:查看Jetson系列产品JetPack的版本信息_氵文大师的博客-CSDN博客_查看jetpack版本

https://blog.csdn.net/HaoZiHuang/article/details/119903753

https://blog.csdn.net/HaoZiHuang/article/details/119903753

安装的过程参考以下文章:

TX2开发之刷机JetPack4.4(博主亲测,可解答)_fengfeng,Z的博客-CSDN博客

Jetson tx2 使用 jetpack 4.3刷机全过程

Nvidia AGX Xavier刷机指北(在STEP 01的时候不要勾选Host Machine)

查看Jetson系列产品JetPack的版本信息_氵文大师的博客-CSDN博客_jetpack版本查看

JETSON TX2刷机-Jetpack 4.4版本,总结并解决了各种刷机中遇到的问题


安装工具包

TX2的换源和上面的PC机换源是一样的,这里不赘述了。

安装谷歌拼音

1.首先在

sudo apt-get install fcitx-googlepinyin

2.在settings -> language support 里将 keyboard input method system 设置为fcitx

3.重启

更换默认的python

TX2刷机完成之后,有两个python,一个是3.6,一个是2.7。我这里需要3.6,所以需要设置默认的python为3.6。输入下列命令,把两个版本的python加入到alternatives列表中,

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

然后运行以下命令配置

sudo update-alternatives --config python

选择python3 版本对应的序号,然后退出。

输入下面命令,查看版本

python

参考:Nvidia TX2 刷机+深度学习环境配置(cuda 8.0+python 3.5+opencv 3.4+tensorflow 1.4.1+keras+pip3)

安装pip

sudo apt-get install python3-pip

查看版本

pip3 -V

升级版本

pip3 install --upgrade pip

参考:Nvidia TX2 刷机+深度学习环境配置(cuda 8.0+python 3.5+opencv 3.4+tensorflow 1.4.1+keras+pip3)

安装torch1.6和torchvision0.7.0(Nvidia的官网也有安装说明!!)

​官网截图,https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-10-now-available/72048

安装torch

1.下载torch

得去Nvidia的官网下载专门针对jetson架构的torch安装包,我的是:

torch-1.6.0-cp36-cp36m-linux_aarch64.whl

Nvidia的下载速度很慢,我都是请同学帮忙下载的,大家也可以去csdn上碰碰运气,看看有没有人上传了你想要的.whl文件。我的这个包,我看了一下csdn上有,

torch-1.6.0-cp36-cp36m-linux_aarch64.zip_torch1.6-深度学习文档类资源-CSDN文库

2.安装torch

首先需要安装依赖,不然报错:

ImportError: libmpi_cxx.so.20: cannot open shared object file: No such file or directory
sudo apt-get install libopenblas-base libopenmpi-dev
pip3 install torch-1.6.0-cp36-cp36m-linux_aarch64.whl

3.测试:输入python,然后import torch看看会不会报错

PS:不要先装numpy很容易出错!!!不要问我怎么知道的

参考:

OSError: libmpi_cxx.so.20: cannot open shared object file: No such file or directory(torch需要安装依赖)

Jetson 错误(一):Illegal instruction (core dumped)解决(先装numpy很容易出错)

TX2 (jetpack4.2)安装pytorch详细教程

Jetson TX2安装pytorch(jetpack4.2)

编译torchvision

torchvision的低版本0.1,0.2之类的,可以通过下面命令安装

pip3 install torchvision==0.2

我的torchvision需要0.7,不能通过pip安装,只能下载官方repo,自己编译

sudo apt-get install libjpeg-dev zlib1g-dev
git clone -b v0.7.0 https://github.com/pytorch/vision torchvision # 版本可以自己选择
cd torchvision
sudo python3 setup.py install

注意:编译的时候报了个错:

fatal error: libavcodec/avcodec.h: No such file or directory

​https://shliang.blog.csdn.net/article/details/109862917

网上给出的方法很多都是说由于ffmpeg版本导致的问题,我参照这个文章就成功编译了

方法:在编译之前,对setup.py文件进行一些修改,把:

if has ffmpeg 改为if False即可

其它工具包(强烈推荐!!!)

jetson-packages-family 整理了包括Matplotlib、Pycuda、Pillow、Pandas在内的多个常用依赖库在jetson平台下的安装方法,甚至还有VSCode、Pycharm、Docker、Qt5等工具的安装方式。

参考:

Jetson AGX Xavier避坑指南(五)--环境搭建2.(python3、conda、ros、pytorch、tensorflow)

TX2安装torchvision0.5.0(实测有效)_混沌鼠的博客-CSDN博客_tx2安装torchvision

在Jetson Xavier NX上安装torchvision编译报错:fatal error: libavcodec/avcodec.h: No such file or directory


配置代码的深度学习环境

opencv-python

yacs

tqdm

pyyaml

matplotlib(一直报错,没装上)

colorama

cython

tensorboardX

pip install opencv-python
pip install pyyaml yacs tqdm colorama matplotlib cython tensorboardX
python setup.py build_ext --inplace

刚开始自己的numpy==1.19和torch同时装的,在torchvision之前,运行代码时报错:

Illegal instruction (core dumped)

在这查了一下:Jetson 错误(一):Illegal instruction (core dumped)解决

​用的是第二个办法解决的,先卸载了numpy

pip uninstall numpy

运行代码会报错:

ImportError: numpy.core.multiarray failed to import(因为没有numpy了呀,哈哈哈)

再重新安装numpy

pip install -U numpy

就好了!!!


踩坑记录

大部分的坑都是不懂jetson tx2造成的,所以在此记录一下,为自己和他人作参考!

Ubuntu18.04的apt-get报错

使用apt-get操作,出现了如下报错:

Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend)

查了一下:产生错误的根本原因是lock file。 lock file用于防止两个或多个进程使用相同的数据。 当运行apt或apt-commands时,它会在几个地方创建lock files。 当前一个apt命令未正确终止时,lock file未被删除,因此它们会阻止任何新的apt / apt-get命令实例,比如正在执行apt-get upgrade,在执行过程中直接ctrl+c取消了该操作,很有可能就会造成这种情况。

要解决此问题,首先要删除lock file。

lsof /var/lib/dpkg/lock
lsof /var/lib/apt/lists/lock
lsof /var/cache/apt/archives/lock

原文链接:Ubuntu中Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend)问题的解决

刷机的电脑配置(>80G的硬盘空间)

使用VMware虚拟机的时候用的是50G的内存,报错

step 01时点上了 Host,就会报下列错误:

Access to APT repository and ability to install Debian packages with it.

解决方案:在STEP 01的时候不要勾选Host Machine。如下图。

​参考:Nvidia AGX Xavier刷机指北

matplotlib一直没安装上

安装matplotlib的时候,一直不断下载,可能高版本的不适合,一直降低版本再下载,于是停止了,没耐心下载完,可能还没到适合我的版本。有时间试一下。

查了一下参考文章,Jetson Packages Family给的matplotlib 的安装命令是

sudo apt install libfreetype6-dev -y sudo apt install python3-matplotlib -y

参考

Jetson AGX Xavier避坑指南(五)--环境搭建2.(python3、conda、ros、pytorch、tensorflow)


文章写的很多,很琐碎,主要是笔者想把自己遇到的问题都记录下来,为自己和其它小白作参考,遇到问题能对大家有所帮助,毕竟我也是参考网上的文章才安装成功的。人人为我,我为人人!!!

Nvidia Jetson TX2 详细刷机教程及踩坑记录(Jetpack4.5.1,python3.6,torch1.6,torchvision0.7)相关推荐

  1. Nvidia Jetson TX2 详细刷机教程及踩坑记录(Jetpack3.3,python2.7,torch1.2,torchvision0.2.2)

    本文总结了自带系统安装cuda等深度学习环境和使用jetpack3.3刷机的步骤,虽然自己的代码没用上,但有需要的人可以参考一下. PS:Jetpack4.5的刷机教程请移步另一篇文章: xyl-50 ...

  2. NVIDIA Jetson 全家桶刷机教程以及将系统迁移到SSD、SD卡上(胎儿级教程)

    目录 一.写在前面 二.刷机过程 三.开始刷机 四.迁移系统 五.写在最后 一.写在前面 本人是自动化在读本科生(2020级别),写下此教程,一为竞赛参考,二为大家提供相应借鉴,如有不妥之处,互相交流 ...

  3. NVIDIA Jetson TX2开箱刷机

    因为自己做的项目需要涉及到嵌入式的目标识别,所以采购了NVIDIA的Jetson TX2.后续会逐渐的更新文章,作为一种自己的记录. 一.购买 1.购买TX2 我是购买的教育版的TX2.事后总结,发现 ...

  4. Nvidia JetsonTx2 Ubuntu18.04 刷机教程(详细排雷)

    关于英伟达板子刷机的教程网上有很多,但大多不能一步到位. 笔者希望能写这篇文章来帮助大家快速刷机,尽快投入开发过程中. 同时也总结一下自己困难的刷机过程. 1.准备 首先是准备阶段,下面这些必须准备好 ...

  5. NVIDIA Jetson TX2 环境配置

    前言 笔者参加学校的冰壶机器人实验课基于NVIDIA Jetson TX2开发板进行开发.这篇文章主要记录NVIDIA Jetson TX2的环境配置过程和踩坑记录. 一.NVIDIA Jetson ...

  6. 小米手机第三方卡刷软件_小米手机通用详细图形刷机教程(四): 刷入第三方系统...

    前言: 本教程共分四章,因为篇幅太长,所以写作是分开的,对于有不同进步的人们可以查看. 查看顺序为一,二,三和四. 小米手机一般详细图形刷牙教程(一): 解锁bootloader 小米手机一般详细图形 ...

  7. Nvidia Jetson TX2 使用手机热点刷机教程

    Nvidia Jetson TX2 使用手机热点刷机教程 1.接线 2. 进入recovery模式 3.下载Jetpack4.2(最好使用最新版本Jetpack4.2刷机,整体踩坑会比之前版本少) 4 ...

  8. oppo r811刷机教程详细图解怎么刷机的教程方法(图文)

    oppo r811刷机教程详细图解怎么刷机的教程方法(图文),oppo r811手机机型的详细刷机方法.联发科MTK平台的刷机资料.刷机前准备.原文:http://www.shtuniu.com/ji ...

  9. 我家云刷android系统教程,我家云刷机教程——小白详细版

    我家云刷机教程--小白详细版 2019-11-02 14:40:39 183点赞 1719收藏 296评论 前两天正好刷到一篇文章,看了一下还挺好玩的,于是就入手买了一个.其实最主要的还是便宜,虽然文 ...

最新文章

  1. Android程序完全退出的三种方法
  2. 二极管名称中英文互译
  3. 统计数列中是连续数的个数
  4. python getattr_python __getattr__ 巧妙应用
  5. JavaScript——this、constructor、prototype
  6. 发票打印不全不完整的解决方案(Win10)
  7. MATLAB学习笔记(二)
  8. Xtrabackup的“流”及“备份压缩”功能
  9. 静默安装oracle11.2.0.4
  10. 双绞线传输距离_详细了解弱电工程最常用到的网络传输介质:同轴电缆、双绞线、光纤...
  11. java nginx 例子_Java及nginx实现文件权限控制代码实例
  12. redis高级-------2
  13. 剑指Offer面试题:30.第一个只出现一次的字符
  14. 初学C#中遇到的问题!
  15. python高清大图代码_python2的代码从吉卜力网页上下载高清图片
  16. python工具书推荐_希望更加深入了解python 有什么书可以推荐?
  17. sql语句学习之having用法
  18. 速锐得整车CAN网络控制策略数据解析方案
  19. ARDUINO LCD显示简单的汉字、符号(保姆级教程!)
  20. elasticsearch安装插件

热门文章

  1. 学习笔记(01):大数据云端实验室项目实战-微博舆情大数据分析-大数据云端实验室项目实战-微博舆情大数据分析-1...
  2. 将图和双向transformers融合的分子性质预测新工具 简称AGBT - 论文阅读
  3. 文言文编程?厉害了程序员!
  4. 汽车加油问题--贪心算法
  5. 玩QQ游戏每天超过2小时的人比较弱智
  6. 麦肯锡七步成诗法学习笔记简记以及案例分析(附参考资料可下载)
  7. 那些令你憎恶的系统从何而来?
  8. 中国版权保护中心注册不了的解决办法
  9. ctfshow命令执行(持续更新,已更至web39)
  10. 整理了一系列的JavaScript树操作方法,不用再一遍又一遍的百度了