本文总结了自带系统安装cuda等深度学习环境和使用jetpack3.3刷机的步骤,虽然自己的代码没用上,但有需要的人可以参考一下。

PS:Jetpack4.5的刷机教程请移步另一篇文章:

xyl-507:Nvidia Jetson TX2 详细刷机教程及踩坑记录(Jetpack4.5.1,python3.6,torch1.6,torchvision0.7)


一.自带系统搭建深度学习环境(成功,但cuda版本太低,代码不支持)

当时自己不想刷机,还有其他人的代码在板子上,因此费了很大劲找对应的安装包。

有好心人给出了jetpack刷机时下载的安装包

链接:https://pan.baidu.com/s/1R6fGJ1EElr3lI7b79cyYWw

提取码:girg

​https://blog.csdn.net/u011689890/article/details/100523094

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

1.安装cuda8.0

a)首先下载安装包cuda-repo-l4t-8-0-local_8.0.84-1_arm64.deb(也可以去Jetson Download Center的官网下载)

wget http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/013/linux-x64/cuda-repo-l4t-8-0-local_8.0.84-1_arm64.deb

b)然后更改安装包权限

chmod 777 cuda-repo-l4t-8-0-local_8.0.84-1_arm64.deb

c1)使用jetpack的脚本文件cuda-l4t.sh安装cuda

(在 jetpack 的安装目录下的 _install/目录下有一个叫cuda-l4t.sh的脚本)

bash cuda-l4t.sh cuda-repo-l4t-8-0-local_8.0.84-1_arm64.deb 8.0 8-0

c2)也可以使用以下命令安装cuda

sudo dpkg -i cuda-repo-l4t-8-0-local_8.0.84-1_arm64.deb
sudo apt-get update
sudo apt-get install cuda-toolkit-8-0

d)环境配置

首先打开配置文件

sudo vim ~/.bashrc

然后在最下面添加以下指令:

export PATH=/usr/local/cuda-8.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:

重新激活配置

source ~/.bashrc

e)验证cuda的安装

使用nvcc -V验证cuda是否安装成功

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

2.安装cudnn6.0.21

首先下载cudnn的安装包(我在csdn的下载里下的,前面给出了好心人分享的百度云连接)

  • libcudnn6_6.0.21-1+cuda8.0_arm64.deb

  • libcudnn6-dev_6.0.21-1+cuda8.0_arm64.deb

然后解压安装

sudo dpkg -i libcudnn6_6.0.21-1+cuda8.0_arm64.deb
sudo dpkg -i libcudnn6-dev_6.0.21-1+cuda8.0_arm64.deb
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2 # 查看版本

我用的csdn下载链接:(不建议,上面有百度云的,免费的)

libcudnn6_6.0.21-1+cuda8.0_arm64.deb-机器学习工具类资源-CSDN文库

libcudnn6-dev_6.0.21-1+cuda8.0.deb-机器学习工具类资源-CSDN文库

3.设置默认python

TX2自带的是python2.7和3.5,你需要哪一个就设为默认的。我设的是2.7,所以选的是python2

首先把两个版本的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

然后运行以下命令配置,选择python2版本对应的序号, 然后退出

sudo update-alternatives --config python

最后可以运行 python ,查看版本

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

4.安装pip

安装pip

sudo apt-get install python3-pip

查看版本

pip -V # python2
pip3 -V # python3

升级版本

pip install --upgrade pip

5.安装torch1.0(Nvidia的官网也有安装说明!!)

​官网的安装说明书:https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-10-now-available/72048

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

torch-1.0.0a0+bb15580-cp27-cp27mu-linux_aarch64.whl

然后开始安装

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython
pip3 install numpy torch-1.0.0a0+bb15580-cp27-cp27mu-linux_aarch64.whl

安装完成可以输入python,再 import torch,不报错就是成功了。

6.安装torchvision 0.2.2

​torch版本对应的torchvision在Nvidia的官网上面有

这个低版本的torchvision可以直接通过pip安装

pip install torchvision==0.2.2

也可以使用以下命令安装

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

参考

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

Jetson TX2 入门 --刷机(jetpack3.2)

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

7.安装其它工具包(强烈推荐参考网站!!)

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

链接:https://github.com/yqlbu/jetson-packages-family

例如:安装matplotlib输入

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

8.卸载cuda和cudnn

查看已安装cuda

dpkg -l | grep -i cuda

卸载cuda,我这里一次性卸载

sudo apt-get remove cuda*

查询cudnn相关已安装包

dpkg -l | grep -i cudnn

卸载cudnn

sudo apt-get remove libcudnn7* # 这里的7,根据自己安装的cudnn来输入

参考:Nvidia jetson nano 配置 CUDA9 CUDNN7.1.5


二.使用Jetpack4.2刷机(未能成功)

这个包安装之后,登录界面一直进不去,提示我的账号或密码错误,反复确认是正确的,我还特地重新注册了个账号,同样的错误。后面才发现是这个包太久了,Nvidia应该不怎么维护了。

参考官网的论坛:Failed to login to Sdkmanager 0.9.12.4180

Jetpack4.2登不上去的原因


三.使用Jetpack3.3刷机(成功)

强烈建议给TX2烧机时选择jetpack4.2以上的。jetpack3.3没有对应的.whl,踩坑无数还没有成功,配置深度学习环境很难!!

1.虚拟机安装Ubuntu16.04

jetpack3.3要求的是Ubuntu16.04,我的PC机都是18.04,因此只能用虚拟机来刷机。

a)根据以下文章,下载和安装虚拟机及Ubuntu16.04系统

(特别注意分配给虚拟机的内存最好为:50G!!!我刚开始设的20G,下载刷机的安装包提示空间不足。)

VMware安装Ubuntu16.04超详细教程

ubuntu 16.04 镜像下载

ubuntu-16.04.6安装教程_冉半夏生的博客-CSDN博客

b)设置完虚拟机之后,刷机时一定要设置虚拟机网络连接模式为桥接模式,并复制物理网络连接状态,不然在刷完系统后装软件会卡死在等待获取设备IP地址这一步。

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

c)换源

把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

2.在虚拟机上下载和安装jetpack3.3(需要全程联网)

a)从官网下载,下载地址为:https://developer.nvidia.com/embedded/downloads/archive

选择点击JetPack3.3进入

然后Downloads Ubuntu(64-bit)

下载的安装包为:JetPack-L4T-3.3-linux-x64_b39.run

b)找到JetPack所在的位置打开终端(Ctrl + Alt + T)

chmod +x ./JetPack-L4T-3.3-linux-x64_b39.run
./JetPack-L4T-3.3-linux-x64_b39.run # 运行jetpack

运行安装包,下面开始刷机

3.开始刷机(需要全程联网)

运行首先出现,点next

​https://blog.csdn.net/qq_54480207/article/details/123382380

然后选择安装包的下载位置,和是否收集用户信息

自己根据需要选择

https://blog.csdn.net/qq_54480207/article/details/123382380

开始选择和下载安装包

建议全部选择,也可以根据需要安装(可以不给 host 安装)

https://blog.csdn.net/qq_54480207/article/details/123382380

然后出现,接受协议

​输入虚拟机的root密码

https://blog.csdn.net/qq_54480207/article/details/123382380

接下来就开始下载和安装

​下载完成之后,继续next

​https://blog.csdn.net/qq_54480207/article/details/123382380

4. 给TX2安装系统和各种库

TX2提供两种刷机的方式,开发板刷机过程中需要全程联网,所以这个时候你家可千万别断网哦!第一种是有线刷机,第二种是无线刷机。很多博主都采用第一种刷机方式,并提示没有用第二种刷机成功过。所以我也是采用的第一种刷机方式。

​此时,你需要具备两根网线,一个路由器或者交换机(我用的是交换机)。此时用网线分别将TX2和你的电脑接入到同一个交换机下。没有路由器就只能刷进去一个系统,剩下一些安装包可以手动安装。

打开TX2的终端,输入以下命令,获取到TX2的IP地址:

ifconfig

​192.168.43.150 就是我的tx2的地址

获取到TX2的地址后,在虚拟机上ping一下,看看是否能够ping通。

ping 192.168.43.150

​然后选择,默认就行

​然后出现

​此时弹出一个界面,接下来安装显示的操作说明,要有一些手动的操作,让tx2进入恢复模式

​https://blog.csdn.net/qq_54480207/article/details/123382380

步骤是

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

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

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

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

e.REC保持两秒后松开

(需要说明一下:tx2不要与电脑的usb3.0连接,在安装cuda的时候报错了,后面试着换了一下usb2.0的就成功了)

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

lsusb

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

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

在完成以上步骤并没有错误后,在第一个终端post installation界面中按下回车键,便开始安装

​出现以下界面,安装cuda,cudnn等

​出现上图时TX2开始开机,最好把TX2连上网!!!

(排坑)在决定IP时很可能卡着不动,

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

  1. 有可能是没有设置虚拟机的桥接模式

  2. 在tx2上找到report_IP_to_Host.sh,并运行

sudo ./report_IP_to_Host.sh

主机上再选择retry,一般就解决了。

​https://blog.csdn.net/u011689890/article/details/100523094

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

最后出现以下界面,代表安装完成

​安装完成之后弹出以下界面,询问是否删除下载文件,可删可不删,如果还进行刷机的话,建议不删除。

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

5.检查是否刷机成功

a)运行multimedia自带的sample

进入tegra_multimedia_api/samples/backend中

cd 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

出现下图

编辑切换为居中

添加图片注释,不超过 140 字(可选)

b)运行cuda9.0的海动图sample:

进入文件夹

cd NVIDIA_CUDA-9.0_Samples/bin/aarch64/linux/release/ # 这里的version需要看你自己安装的CUDA版本而定
./oceanFFT

然后出现,表示成功

https://blog.csdn.net/hunzhangzui9837/article/details/82992289

参考:

Jetson TX2上的demo在下面网址可以看,只适用于jetpack3.x,jetpack4.x没有multimedia的sample。

Jetson TX2上的demo(原创)

Jetson TX2刷JetPack3.3(方法一)

Jetson tx2 安装jetpack_3.3手动安装cuda9.0,cudnn7.1

Jetson TX2 入门 --刷机(jetpack3.2)

6.设置python,安装pip,torch1.0.0和torchvision0.2.2

在 一.自带系统 中已经讲过了,这里不赘述了。

本来使用jetpack安装的,nvidia在官网放了对应的.whl文件,但最低只支持jetpack4.2的,所以只能自己下载源码后编译!!!

当然要安装torch1.0以下的也得自己编译安装。

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


踩坑记录

1.运行代码时提示

ImportError: libcudart.so.10.0: cannot open shared obiect file: No such file or directory

查了一下:应该是需要安装cuda10.0。用前面安装的cuda8.0和9.0运行代码时,都报这个错。

​刚开始是以为torch的依赖包没安装,去Packages for Linux and Unix网站搜索了一下没找到对应的jetson的包。

继续查询了一下:libcudart.so.10.0确实是指的是需要cuda10.0的版本

参考:

OSError: libmpi_cxx.so.20: cannot open shared object file: No such file or directory

【tensorflow】缺少libcudart.so.11.0和libcudnn.so.8解决方法_摇曳的树的博客-CSDN博客_libcudart.so.11.0

2.在python2.7时安装cuda9.0报错(未解决)

刚开始以为第一个坑的错误是cuda8.0不行,想换个9.0。安装命令为:

bash cuda-l4t.sh cuda-repo-l4t-9-0-local_9.0.252-1_arm64.deb 9.0 9-0

报错:

E: Unable to locate package cuda-toolkit-9-0

找到的文章说换个命令:

sudo dpkg -i cuda-repo-l4t-9-0-local_9.0.252-1_arm64.deb

会出现:

The public CUDA GPG key does not appear to be installed.

To install the key, run this command:

sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub

然后输入:

sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt update sudo apt install cuda-toolkit-9-0

然而对我来说,还是不行

参考文章:E: Unable to locate package cuda-toolkit-9-0


附录:

Nvidia的jetson系列的推理速度和算力对比

​jetson运行速度对比:https://developer.nvidia.com/embedded/jetson-benchmarks

​https://blog.csdn.net/u013673476/article/details/106337795

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

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

    最近接触到了Nvidia Jetson TX2这块开发板,想入手测试一下自己的深度学习模型,因此和TX2的故事开始了! 前言 本人刷机多次,尝试各种大小坑: 自带系统搭建环境:刚开始不想刷机,就自己手 ...

  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. 机器学习的核心要素是什么?它们分别作了什么工作?
  2. android开发国内镜像
  3. 1流明等于多少lux_光通量(流明)和照度(勒克司)定义及换算关系
  4. anroid抓包工具tcpdump的用法
  5. 容器入门(1) - 安装和使用Docker Registry
  6. Atitit 微信开发文档总结获取token和菜单管理功能 /bookmarksHtmlEverythingIndexPrj/src/com/attilax/wechatToto/wechatMen
  7. 记录一下最近安装的Tongweb
  8. 下载vc_redist运行库
  9. Nvme协议固态装纯净win10系统
  10. linux下redis常用命令
  11. 学习笔记(5):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-深度学习“四件套”:数据、模型、损失函数与优化器...
  12. 键盘按键的各种编码对照表
  13. python源文件的扩展名是什么_python程序文件的扩展名称是什么
  14. IE8/9下,text-indent对css描绘三角形的影响
  15. OJ常用术语解释。AC、WA、TLE、CE、RE、MLE、PE等状态术语的解释
  16. 使用 KNX Manufacturer Tool 编写 knx 数据库的步骤
  17. Uploadifive上传
  18. Cannot get a STRING value from a NUMERIC cell最新解决方法
  19. 服务器处理文件的io瓶颈,解决服务器数据传输瓶颈的IO技术
  20. 【工业互联网】余晓晖:工业互联网发展态势与展望

热门文章

  1. java数字时钟_Java实现动态数字时钟
  2. [luogu] P2345 MooFest G 树状数组
  3. 终端准入安全之五种准入规则简介
  4. 基于HTML电商项目的设计与实现——html静态网站基于数码类电商购物网站网页设计与实现共计30个页面...
  5. python中mainloop什么意思_Tkinter中的mainloop应该如何理解?
  6. C++11新特性(一)右值引用
  7. PCL估计点云的表面法向量
  8. python爬上去飞卢_都市之科技之门
  9. 企业数据应用 传统商业智能对比大数据应用
  10. 论文阅读(6)用集合深度学习方法在皮肤镜图像中进行皮肤病变分割