NVIDIA_TX1之Jetpack4.6使用笔记

发布时间:2023-03-26 18:30

目前使用的是jetpack4.6,通过刷机后,得到了一个运行Ubuntu18.04版本的tx1。在准备刷入官方提供的一系列组件时,遇到了空间不够的问题,参考网上教程,加入了SSD,扩展了容量,在此基础上研究了配置pytorch和tensorflow。现在总结这段时间的研究经验。

SSD的安装

这个首先需要看你的载板接口了,之前用的RTSO-9003载板只有SD卡接口,自然不能安装SSD扩容了。后来换的载板上有m2接口,而且是key B,不过现在的m2固态接口,多数是同时兼容B key和M key的M.2(B+M)key接口。
这里参照的是一位博主的文章《Jetson TX1 加SSD固态硬盘并从硬盘启动》
在Ubuntu中搜索DISKS,可以看到一个和你的固态硬盘容量差不多大的空间区域,点+号
\"在这里插入图片描述\"
格式化的时候选ext4,并且命名好name,就得到了新的空间。
此时固态硬盘应该已经挂载完成。
下面是要将系统复制到固态
上一步打开磁盘图标自动挂载后,按“ctrl+L”显示挂载路径
假设satassd是你的固态名字,路径为/media/nvidia/satassd
打开终端输入:

sudo cp -ax / \'/media/nvidia/satassd\' 

注意不要省略单引号
这一命令将系统复制到SSD
下一步是修改启动路径,修改前应备份配置文件

cd /boot/extlinux  
sudo cp extlinux.conf extlinux.conf.original 
sudo gedit /boot/extlinux/extlinux.conf  

文件:
\"NVIDIA_TX1之Jetpack4.6使用笔记_第1张图片\"
主要修改的是label那部分,将label那一段复制一遍,构造一个新的label,第一个label是针对ssd描述,第二个label是针对emmc进行描述,
同时第二行DEFAULT的位置,选择默认从ssd启动。
\"NVIDIA_TX1之Jetpack4.6使用笔记_第2张图片\"
Linux中,一切即文件,配置也是靠修改文件来的。
swap开启时,主要是选择swapfile的位置

cd /home/nvidia
mkdir swap

然后借助git上现成到工具来产生swapfile

git clone https://github.com/jetsonhacks/postFlashTX1.git 
cd postFlashTX1

如果选择的位置是/home/nvidia/swap,大小为16g

sudo ./createSwapfile.sh -d /home/nvidia/swap -s 16 –a 

开启swap的工具

sudo swapon -a
sudo swapoff -a

on对应开启,off对应关闭
用free来看分配的空间

free -hl

\"NVIDIA_TX1之Jetpack4.6使用笔记_第3张图片\"

无线网

安装jetpack components的时候,无论是OTA安装,还是通过电脑安装,都需要使用到网络。
最可靠的联网还是用RJ45口直接连接以太网,当然,如果载板没有有线接口,也可以考虑无线网。不过tx1自身的无线网卡信号检测不行,而且我的载板上也没有天线接口,因此我在USB HUB拓展了一下USB口,然后插了一个USB网卡,这样增强了信号接收的能力。

安装JetPack

通过PC管理安装

一个方法是,连接电脑和tx1,通过的是USB连接的方式,利用电脑Ubuntu装上的jetpack4.6安装工具,将组建刷入tx1,在这之中,需要将tx1与电脑连接到一个局域网,网上教程说要用有线连接,而我亲测,可以无线连入同一局域网。

\"NVIDIA_TX1之Jetpack4.6使用笔记_第4张图片\"

这里的关键是要让tx1和电脑在同一局域网,且tx1能够获得外界的网络,因为安装component的时候,还有部分依赖需要联网才能安装到tx1。
\"NVIDIA_TX1之Jetpack4.6使用笔记_第5张图片\"
记得中间安装的时候,设置电脑和tx1不要休眠,以防断开。

OTA安装

NVIDIA官方提供了How to Install JetPack的方法。
\"NVIDIA_TX1之Jetpack4.6使用笔记_第6张图片\"
像TX1这样只有16G的设备,如果直接在内置的EMMC进行OTA安装的时候,应该执行所说的第二种方法。

sudo apt update
apt depends nvidia-jetpack | awk \'{print $2}\' | xargs -I {} sudo apt install -y {}

如果空间扩增后,有了SSD或者SD卡,推荐第一种

sudo apt update
sudo apt install nvidia-jetpack

不过我的TX1加完固态后,空间已经足够,直接完整安装了。

Pytorch的安装

安装conda

相信折腾过pytorch的知道,一般在一个隔离的环境中安装pytorch、tensorflow等,这样出现问题,或者需要安装多个版本时,就可以避免各个版本相互受到影响。由于TX1是AArch64架构,没有办法直接安装电脑上的Anaconda,而且我也不想自己去研究怎么编译,因此找了Archiconda来安装,一样可以使用conda。
首先去下载安装包,github的地址,下载后执行安装。
然后是利用它创建虚拟环境,这里我后面装的是pytorch1.6,基于python3.6,所以环境也是基于python3.6:

conda create -n xxxx python=3.6

这里下载的时候,可能会出现http 000的错误,不同的人解决方法不一样,我试过换源、https改http都没用,最后是更新了conda解决的。

conda update -n base conda

安装pytorch

现在已经可以找到编译好的pytorch和tensorflow了
建立虚拟环境

conda create -n mtorch python=3.6

去官网论坛可以找到pytorch的下载地址。
我这里安装的是1.6版本
\"NVIDIA_TX1之Jetpack4.6使用笔记_第7张图片\"
各位可以自行摸索最新版本的安装。
激活建立的是虚拟环境XXXX

conda activate xxxx 

在虚拟环境下,依次安装库的依赖


sudo apt-get install python3-pip libopenblas-base libopenmpi-dev

pip3 install Cython

pip3 install numpy

最后安装下载好的whl文件,也就是pytorch


pip install torch-1.6.0-cp36-cp36m-linux_aarch64.whl

安装torchvision

安装完pytorch后,可以先去环境下测试下pytorch是否正常工作
像我就很不幸,执行下面命令

import torch

出现报错
Illegal instruction(core dumped)
这里查阅了很多网上的博主文章,还是这一位的方法解决了《NVIDIA JETSONTX2 安装 pytorch 出现错误:import torch 出现 Illegal instruction(core dumped)》。
这位博主的方法,主要意思是要你将export OPENBLAS_CORETYPE=ARMV8 加入环境变量里面。

\'\'\'修改环境变量\'\'\'
sudo gedit /etc/profile 

把 export OPENBLAS_CORETYPE=ARMV8 加入最后面一行,然后保存

\'\'\'更新环境变量\'\'\'
source /etc/profile


解决这个问题很重要,因为torchvision需要通过pytorch编译安装。
如果没有遇到这一问题,可直接执行torchvision的安装。

首先还是安装依赖


sudo apt-get install libjpeg-dev zlib1g-dev

这里如果有安装提示缺少包的,请换回官方源安装。

然后通过git去下载torchvision的代码,注意,官方的提示,torchvision与pytorch版本是要对应的:
\"在这里插入图片描述\"
下载


git clone --branch v0.7.0 https://github.com/pytorch/vision torchvision

github的下载速度有时候很慢,可以自行同步到gitee上,然后再用git下载。


cd torchvision
export BUILD_VERSION=0.7.0 

python3 setup.py install

不过这里安装最后也会遇到错误
/vision-0.7.0/torchvision/csrc/cpu/decoder/defs.h:12:10: fatal error: libavcodec/avcodec.h: No such file or directory
#include
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

这里参照的一篇文章《NVIDIA Jetson之刷机后配置大全》。
修改 setup.py 文件,把 if has_ffmpeg 改为 if False即可。
如果出现pillow下载失败,只需要执行


pip install \'pillow<7\' # always needed for Python 2.7, not needed torchvision v0.5.0+ with Python 3.6

至此,基本安装完成,只需要测试下

import torchvision

没有报错即可

以后每次使用的时候,先激活环境,然后再环境里面使用pytorch。我建立的环境叫mtorch,因此激活是

conda activate mtorch

要退出环境就:

conda deactivate

tensorflow安装

从NVIDIA官网安装包和教程

tensorflow的安装就方便多了,直接可以去官网找到教程和下载地址,不像pytorch是去官网的论坛里面找的下载地址。
首先是建立它使用的虚拟环境

conda create -n mtensorflow python=3.6

然后,下载的通过Jetson 下载中心就可以找到。
\"NVIDIA_TX1之Jetpack4.6使用笔记_第8张图片\"
官网还提供了教程。
这里面下载时候,如果下载完whl文件,直接通过pip命令安装的话

pip3 install tensorflow-2.5.0+nv21.6-cp36-cp36m-linux_aarch64.whl

经过一系列安装后,h5py的安装过程会遇到错误。
因此,必须要

$ sudo apt-get update
$ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran

尤其是h5py必须按照官网论坛安装

sudo pip3 install -U h5py==2.10.0

不过,最好是按照官网的方法https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html,一路照做。

同样,装完后,在python里面检查一下tensorflow是否成功激活。

import tensorflow as tf
tf.__version__

以后每次使用的时候,先激活环境,然后再环境里面使用tensorflow,这里我的环境是mtensorflow:

conda activate mtensorflow

安装keras

keras和tensorflow具有对应的关系,这个网上已经有许多列举,目前我从github上找到的关系表:
\"NVIDIA_TX1之Jetpack4.6使用笔记_第9张图片\"

详细可以见keras-team/keras。
我这里用的是tensorflow2.5,只需要按照2.5版本的keras,用pip list查看后发现已经装好了。因此就不用装了。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号