安装Jetson TX2 NX系统后,安装cuda时按照提供教程一直失败,由于不想选择手动安装故想到安装系统时未勾选的cuda选项,结果在安装时还是遇到相关问题, 记录如下:
使用SDKmanager安装cuda等基础环境:
1· SDKmanager第一步正常选择:
2· SDKmanager第二步不要勾选OS系统,NX板安装系统时需要用杜邦线短接程resume状态,这里不装系统不用短接。短接后开不开机只能又装了一次系统。
安装过程中会提示输入用户名和密码,(这一页当时没有截图,正常情况下没有问题,我当时短接了开发板导致一直失败,之后重新装机。)正常情况下会跳转到下面的连接显示,我这里一直显示网络连接不上,在网上查找之后是因为nvidia官网没连接
解决方法:
1、在Xavier终端上:ping -c 3 www.nvidia.com 得到ip地址
2、更改Xavier的hosts文件(需要root权限),sudo su进入root环境,输入 vi /etc/hosts
按i编辑,把上面的地址按如下形式写在前面,填写完毕后,esc,shift+zz保存并关闭。
3· 此时再重新开启SDK Manager安装,顺利安装
4· 安装包有cuda,cudnn,tensorrt,opencv,和一些不需要的包。网络卡顿会导致安装失败,需要多次尝试,或者换一条好的网络线路。
此时再NX终端输出nvcc -V查询cuda是否安装成功,显示cuda版本10.2
Python更新,pip安装
之后进行Python升级,和pip安装,NX本身带有Python2,和Python3两个版本,只需要把Python3替换为默认Python即可,输入下列命令更换Python:
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
安装pip:
sudo apt-get install python3-pip
升级pip:
pip3 install --upgrade pip #这么安装会导致系统内存在两个pip,使用pip3安装时会提示‘调用老版本脚本,可能会导致失败’,如果卸载pip3则当前所安装的包都会卸掉? sudo apt upgrade python3-pip
torch,torchvision安装:
pytorch1.7.0版本链接:nvidia.box.com
sudo apt-get install libopenblas-base libopenmpi-dev
pip3 install Cython
pip3 install torch-1.7.0-cp36-cp36m-linux_aarch64.whl
安装torchvision:
sudo apt-get install libjpeg-dev zlib1g-dev
sudo apt-get install libjpeg-dev zlib1g-dev
git clone -b v0.8.1 https://github.com/pytorch/vision torchvision
cd torchvision
sudo python3 setup.py install
安装完成之后用python import一下看是否安装成功,这里torchvision报错,引用失败。
直接安装torch1.7.0引用报Segmentation fault(core dumped)错误:
这里可能与直接安装numpy有关
pillow报错:
这里的失败是因为pillow版本太高,
官网提示pillow版本应该小于7, pip install ‘pillow<7’
应该是之前安装包的时候下载了pillow9.3.0版本,pip3 uninstall 卸载失败,显示“Pillow-9.3.0-py3.6-linux-aarch64.egg”报错,
使用sudo pip3 uninstall pillow卸载成功。
再次pip list 发现系统自带了pillow5.1.0版本,报错解除。
安装各种包之后再次import torch时报错,core dumped,网上之前警告numpy不能随便安装,有坑。尝试卸载numpy后,import正常。
numpy安装:
问题:import numpy 及torch时报非法指令 (核心已转储)
原因:Jetson Nano中自带安装的Numpy版本为1.13.1, 在/usr/lib/python3/dist-packages/,系统其他依赖numpy的包在调用时就会出现混乱,导致报错。(两个numpy而报错)
方法1:卸载系统自带的numpy1.13.3版本后,再次安装
pip3 install -U numpy
卸载numpy后,使用↑安装numpy一直失败,pip list发现还有numpy1.13.3,使用pip语令卸载失败,需要进入相应的文件夹直接删除对应的文件。其中requirement.txt中好多库都有预装,但是版本不对,到时候都得进行删除,再重新安装。这些库在这两个路径/usr/lib/python3/dist-packages和/usr/local/lib/python3.6/dist-packages里。这个得注意查查到底在哪个文件夹下面。
sudo rm -rf numpy
sudo rm -rf numpy-1.13.3.egg-info
sudo pip3 install numpy==1.18.5
方法2:修改bashrc文件
解决:编辑.bashrc,sudo vim ~/.bashrc,在最后一行写入export OPENBLAS_CORETYPE=ARMV8
更新bashrc文件,查看是否安装成功 source ~/.bashrc
matplotlib安装报错:
sudo apt-get install zlib1g-dev libpng-dev #不知道有没有效果,但是我装了
sudo apt install libfreetype6-dev -y
sudo apt install python3-matplotlib -y #安装完成后显示安装的是matplotlib2.1.1版本
onnx安装报错:
sudo apt install protobuf-compiler libprotoc-dev
pip install onnx==1.6.0
运行程序一直被killed:
虚拟内存不足,创建新的swapfile空间:
sudo fallocate -l 8G /swapfile # 创建swap分区,分区大小设置为8G,可自己调节
sudo chmod 600 /swapfile # 修改swap分区使用权限,只允许root用户访问
sudo mkswap /swapfile # 将文件标记为swap空间
sudo swapon /swapfile # 启用swap空间,关机再开机后,需要再次利用此命令启用swap空间
free -h # 验证swap空间是否可用
删除空间
打开之前设置好的启动挂载的fstab文件,执行命令:
sudo vi /etc/fstab
注释掉
#/var/swapfile swap swap defaults 0 0
重启 reboot
启动之后,将swapfile删除,执行命令:
sudp rm -rf /var/swapfile
这样以后增加的swap就去掉了
cmake3.10升级至3.16.3:
卸载原有cmake,wegt cmake安装包cmake-3.16.3.tar.gz
sudo ./configure后报错not openssl,下载sudo apt-get install libssl-dev
之后正常
官方安装软件指南: GitHub - yqlbu/jetson-packages-family:Nvidia Jetson Nano/Xavier Dev Kit 的终极软件安装指南
看起来还不错的安装指南: JetsonXavierAGX配置Yolov5环境_航天城拖地的的博客-CSDN博客_agx yolo