必读:我到手的是一块写好乌班图系统的板子,还有一块屏幕、一套键鼠可以直接用,基于此进行初始的配置。ssh连接和VNC步骤有网线。请根据个人情况参考文章
接好板子和屏幕的HDMI线,USB口插上鼠标键盘,然后再插上两者的电源线开机
目录哦
一、基础环境配置与SSD启动
1.包括初始系统的设置
2.设置SSD启动,一般来说,对于刚出厂的板子只预先配置了cuda,其他的则因为存储问题配置不了,所以需要更改根目录的位置。
1.1 初始设置
- 需要设置用户名和密码,这里两个一定要记住,且最好不要太复杂,因为后续需要反复用到
- 初始系统设置,全都yes即可
- 可以搜索如何将语言设置为中文,并且添加中文输入法,可以参考Jeston Xavier NX 语言设置和中文键盘输入
1.2 SSD启动
- 安装您的 SSD并启动,然后打开菜单并进行搜索 Disks
- 启动磁盘应用程序,您将看到安装好的 128G 固态硬盘,单击右上角三条横项选项,选择格式化(Format Disk),选择预设的 GPT,再次确认要格式化(Format),接着输入系统密码,授权进行格式化。
- 单击+号进行分区,选择主分区的大小,本文建议主分区容量为 112GB,大家可以根据自身需求做调整,单击 NEXT进行下一步。
- 给分区起个名称,类型要选择 Ext4,然后单击 Create,提示输入系统密码,设置完成。
现在,您已成功创建分区,但它还没有挂载。让我们使用命令安装它,幸运的是,Jetson 系统已经将这些命令集成到外壳脚本中。让我们运行它,使系统启动从 SSD 启动。
移植根源
首先,复制该项目,打开一个终端,输入
1.git clone https://github.com/jetsonhacks/rootOnNVMe.git
2.进入目录 cd rootOnNVMe
3.根源文件复制到您的 SSD ./copy-rootfs-ssd.sh
终端是桌面上黑色的,或者在桌面空白处右键鼠标后打开终端
开启SSD
移植到根源后就可以选择开启SSD了,
- 运行
./setup-service.sh
后重新启动系统以使服务生效。 - 重启系统后桌面左侧列表出现如下红色 SD 文件夹表示 SSD 挂载成功。
二、CUDA配置
2.1 安装环境
打开终端执行以下命令:
第一步:sudo apt update
第二步:sudo apt install nvidia- jetpack
2.2 配置环境变量
etson Xavier NX 中已经安装了 CUDA 版本,但是此时你如果运行 nvcc -V 查看版本是不会显示的,需要你把 CUDA 的路径写入环境变量中。
sudo vim ~/.bashrc
#使用 Vim 编辑环境变量
进入后 将光标移动到最下面,按a为插入,在最后添加下面两行
export PATH=/usr/local/cuda/bin:$PATHexport
LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
写入后按Esc退出写入模式,然后按Shift + ;打出冒号,输入wq保存加退出- 保存退出后,执行语句
source ~/.bashrc
,再运行nvcc -V
就能看到 CUDA 版本 - 安装 pip3,以此执行下面的代码
sudo apt install python3-pip python3-dev
#
python3 -m pip install --upgrade pip
#升级 pip - (可选)安装 Jetson-stats 管理工具可用来控制风扇、性能模式,查看系统相关信息,查看 CPU、GPU、温度等情况,依次执行下面两行代码
sudo -H pip3 install jetson-stats
运行,输入命令运行查看系统信息
sudo jtop
三、SSH连接和VNC连接配置
如果不想每次都通过连接显示屏和键鼠来控制jetson,那么就需要设置jetson和电脑或其他远程设备的连接,需要一根网线或者在同一局域网下的ip地址
3.1 SSH开启与设置
SSH协议允许用户通过网络在远程设备上执行命令,管理文件系统,启动和停止服务等,为数据传输提供了安全保障。一般是首选的远程连接方式。
3.1.1 开启ssh服务
一般来说这个板子是开启ssh的,可以使用代码查看
查看ssh版本 ssh –V
查看ssh状态 sudo service sshd status
如果输出Active: active running那么就是正常开启的,如果没有用下面代码开启
(1)安装ssh服务 sudo apt-get install openssh-server
(2)启动ssh sudo /etc/init.d/ssh start
(3)设置开机自启动 sudo systemctl enable ssh
再使用sudo service sshd status
应该可以看见启动状态
3.1.2 远程连接(网线或局域网)
通过命令sudo ifconfig
可以看到板子在局域网的IP地址
如果无IP显示,需要将无线网卡的共享关闭,插拔网线连接,再重新打开共享功能即可。
安装putty,可以参考https://blog.csdn.net/crr411422/article/details/131135853
然后运用putty进行连接即可,要注意的是,你登录的时候输入密码时是不显示的,输入完回车即可。
3.2 VNC开启与设置
ssh连接后可以通过命令行操控,但是对于习惯可视化界面的人来讲可能觉得别扭,那么可以选择开启VNC服务来远程可视化的控制,建议首先查看你的jetson是否可以开启桌面共享,如果可以就不必要走配置VNC,网上搜一下如何配置桌面共享即可。
链接: jetson nano/tk2/nx/agx配置VNC远程桌面 - MKT-porter - 博客园
Nvidia Jetson AGX Orin 初体验(六)用VNC Viewer远程桌面连接Orin
3.2.1 安装开启VNC
(1)安装VNC
sudo apt update
sudo apt install vino
(2)配置VNC Server
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
(3)编辑org.gnome,增加一个“enabled key”的参数
cd /usr/share/glib-2.0/schemas
sudo cp org.gnome.Vino.gschema.xml org.gnome.Vino.gschema.xml.old
sudo vi org.gnome.Vino.gschema.xml
将下面代码粘贴至下面的位置,注意格式要和下面一样
<key name='enabled' type='b'>
<summary>Enable remote access to the desktop</summary>
<description>
If true, allows remote access to the desktip via the RFB
protocol. Users on remote machines may then connect to the
desktop using a VNC viewer.
</description>
<default>false</default>
</key>
(4)编译并启动
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
/usr/lib/vino/vino-server
3.2.2 设置账户自动登录
这时可以用VNC登录,但是每次重启板子是登不上的,需要开启板子账户的自动登录
参考https://blog.csdn.net/weixin_46151178/article/details/122687164
创建配置文件50-myconfig.conf
cd /etc/lightdm/lightdm.conf.d
sudo vim 50-myconfig.conf
写入自动登录指令
greeter-show-manual-login=false
allow-guest=false
autologin-user=ljx
其中,autologin-user需要改为你自动登录的账户。写入上述内容,保存退出。
重启,也可以做完3.2.3后重启,但是需要重启这一步才生效
sudo reboot now
3.2.3 设置VNC默认分辨率
如果这时直接连接,会导致画面只显示一角,需要设置jetson的无HDMI连接时的默认分辨率
(1)备份原来文件
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
(2)修改配置文件
nano /etc/X11/xorg.conf
(3)将下面一块复制进去,其中
virtual 1280 800就是你重新设置的分辨率,你可以修改至你想要的,建议不要太大,连起来卡
# Copyright (c) 2011-2013 NVIDIA CORPORATION. All Rights Reserved.
# This is the minimal configuration necessary to use the Tegra driver.
# Please refer to the xorg.conf man page for more configuration
# options provided by the X server, including display-related options
# provided by RandR 1.2 and higher.
# Disable extensions not useful on Tegra.
Section "Module"
Disable "dri"
SubSection "extmod"
Option "omit xfree86-dga"
EndSubSection
EndSection
Section "Device"
Identifier "Tegra0"
Driver "nvidia"
# Allow X server to be started even if no display devices are connected.
Option "AllowEmptyInitialConfiguration" "true"
EndSection
Section "Monitor"
Identifier "DSI-0"
Option "Ignore"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Default Device"
SubSection "Display"
Depth 24
Virtual 1280 800
EndSubSection
就可以愉快的使用VNC啦~
四、miniforge安装与配置
参考NVIDIA Jetson Xavier NX入门(3)——安装miniforge和Pytorch
(1)建议从官网下载后进行安装,https://github.com/conda-forge/miniforge,选择aarch64(arm64)的版本选择
(2)下载完成后可以通过windos的终端(win+r 后输入 cmd),将下载下来的文件传入jetson
scp "你windos中的文件地址" 你的用户名@jetsonip地址:/home/用户名
如我的文件地址为D:/Tools/jetson/torch-1.10.0-cp36-cp36m-linux_aarch64.whl"
用户名为biouqi
ip地址为192.168.137.191
需要传输到jetson内的位置是 /home/biouqi (这个地址是直接打开终端的主页)
scp "D:/Tools/jetson/torch-1.10.0-cp36-cp36m-linux_aarch64.whl" biouqi@192.168.137.191:/home/biouqi
(3)传输完成后进行安装
在jetson桌面打开终端输入 cd miniforge
然后执行安装sh Miniforge-pypy3-4.10.3-3-Linux-aarch64.sh
这里的文件名称需要和你前面下载的一致。
执行后一直按enter,然后会询问三个选项,第二个处会标明你的安装地址,要记住,三个都填yes
安装完毕后,添加环境变量,否则会出现bash:conda Command not found的错误。顺便提一下vim编辑器按a是进入编辑模式,编辑完毕后按ESC退出编辑模式,再输入:wq!是保存并退出。总感觉有人不知道。
编辑环境变量
vim ~/.bashrc
增加环境变量, 将username换成你的用户名,forge换为你的地址,注意去掉两边的<>
export PATH=/home/<username>/<forge>/bin:$PATH
激活环境变量
source ~/.bashrc
显示(base)
source activate
这个时候应该就可以看到终端terminal的前面有了一个(base),说明前面步骤成功。如果没有,那就输入:source activate
激活miniforge。
(4)可选,更换下载源为清华源
以此执行下面命令更换pip源
conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
创建并进入pip.conf文件
mkdir ~/.pip
cd ~/.pip
vim pip.conf
在pip.conf 文件中添加
[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple/
添加更换镜像源完毕。
五、pytorch安装与配置
大部分参考NVIDIA Jetson Xavier NX入门(3)——安装miniforge和Pytorch
5.1 虚拟环境创建
在进行pytorch安装前,建议先利用miniforge创建虚拟环境,
在终端输入命令,可以将py38换为你想要的名称,python版本建议在3.8以上
bash conda create -n py38 python=3.8
然后启动它
conda activate py38
继续之前,先更新一下源
sudo apt-get update
sudo apt-get upgrade
安装依赖
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev
sudo apt-get install liblapack-dev libblas-dev gfortran
sudo apt-get install aptitude
sudo aptitude install libopenblas-base libopenmpi-dev
sudo apt-get install libopenblas-base libopenmpi-dev
sudo pip3 install mpi4py
sudo pip3 install Cython
5.2 下载官方pytorch依赖包
https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048
根据你的JetPack版本下载,查看版本可以在终端输入sudo apt-cache show nvidia-jetpack
,显示的Version就是你的JetPack版本(参考https://blog.csdn.net/HaoZiHuang/article/details/119903753)
下载好后同样运用scp将文件传入jetson,
将你的环境设置为需要安装pytorch的那个环境scp "D:/Tools/jetson/torch-1.10.0-cp36-cp36m-linux_aarch64.whl" biouqi@192.168.137.191:/home/biouqi
从桌面打开终端输入,注意此时最好将环境置为你需要安装的环境
sudo pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl
安装完毕后可以在终端输入以下命令检验PyTorch是否正确安装:
python3 -c 'import torch; print(torch.cuda.is_available())'
5.3安装pytorch常见错误
5.3.1 numpy版本与PoenBLAS冲突(Illegal instruction (core dumped))
如果出现Illegal instruction (core dumped)的错误,这是由于numpy 1.19.5和OpenBLAS冲突引起的,修改其中一项即可。选择以下两种做法之一:
(1)降低numpy版本
pip3 install -U "numpy==1.19.4"
(2)设置OpenBLAS
vim ~/.bashrc
加入
export OPENBLAS_CORETYPE=ARMV8
然后激活.bashrc
source ~/.bashrc
六、torchvision安装
在此之前必须先安装好pytorch,本章部分参考NVIDIA Jetson NX安装torchvision教程(https://zhuanlan.zhihu.com/p/425156043)
6.1 所需依赖安装
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
6.2 下载安装包
pytorch版本和torchvision对应关系如下图,参考https://github.com/pytorch/vision#installation
运用git下载torchvision,如果不行那就还是先下到电脑上再传入jetson,我是直接下载的。将下面的v0.11.0换为与你匹配的版本号
git clone --branch v0.11.0 https://github.com/pytorch/vision torchvision
6.3 开始编译(安装torchvision)
先安装一些编译torchvision需要的包(可能是冗余的),如下面代码
sudo apt-get install libpng-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libavutil-dev libswresample-dev
sudo apt-get install ninja-build
接下来就是编译阶段了,进入torchvision目录,输入命令编译,大致需要花费十分钟。
cd torchvision #进入你的torchvision目录,不一定是这个命令
export BUILD_VERSION=0.x.0 #将x改成自己的版本
sudo python3 setup.py install --user
当出现上面的pillow报错时就表明torchvision接近安装成功了,下面我们退回上一级目录,使用pip/pip3安装 pillow。
cd ../
pip3 install 'pillow<7'
如果不行就ctrl+c中断进程,然后返回torch vision的上级目录,再进行安装
下载速度比较慢时,可以使用国内的豆瓣源下载安装,命令如下所示。
pip install -i http://pypi.douban.com/simple --trusted-host pypi.douba
之后返回torchvision目录重新编译
cd torchvision
sudo python3 setup.py install
由于之前我们已经大致编译完成,这次只用了几秒钟便配置完成(也可能还要好几分钟,耐心等待)。
使用pip3 list查看已安装的包和其版本,列表中出现torchvision即表明安装完成。或者激活你新建的py36环境后,输入python3
,再import torchvision
如果没有报错即为成功,输入exit()
即可退出
如果还需要安装onnx以及onnxruntime,可以参考https://zhuanlan.zhihu.com/p/661511110
七、编译器Pycharm安装
其实完成上面就可以跑代码了,不过安装了编译器修改代码会方便一些
7.1 安装JDK
在安装pycharm之前,需要安装jdk才能够进行安装,要么会报错,这里推荐安装新一点的
安装java,在终端输入
sudo apt-cache search openjdk
sudo apt-get install openjdk-17-jdk #这里安装了17版本
然后输入
java -version
就可以看见java的版本
7.2 配置jdk环境变量
配置环境,命令行输入
sudo gedit ~/.bashrc
会弹出一个窗口,在窗口的最下面,输入,注意 java-17这里的数字需要和你前面的jdk版本对应,比如我的是17
#JDK11
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-arm64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
然后点击保存,关闭窗口,在终端输入
source ~/.bashrc
启用新的环境变量
7.3 下载和安装pycharm
到官网上下载https://www.jetbrains.com/pycharm/download/?section=windows
选取arm64版本,然后像之前那样用scp从电脑传入jetson
解压缩,这里2020.1.1.要换为你下的文件名称
tar -zxvf pycharm-community-2020.1.1.tar.gz
进入文件夹,运行pycharm.sh
cd pycharm-community-2020.1.1/bin
./pycharm.sh
如果这是还报jdk的错误,那么记下它的版本号,比如version61,对照
JDK 19 = 63,
JDK 18 = 62,
JDK 17 = 61,
JDK 16 = 60,
JDK 15 = 59,
JDK 14 = 58,
JDK 13 = 57,
JDK 12 = 56,
JDK 11 = 55,
JDK 10 = 54,
JDK 9 = 53,
JDK 8 = 52,
JDK 7 = 51,
JDK 6.0 = 50,
JDK 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45.0-45.6
来安装对应版本的jdk(重做7.1和7.2,注意版本变化带来的环境输入变化),然后再次尝试运行pycharm
一般这时就会成功出现pycharm的界面了
这个板子的上述功能软件配了一整天,记录一下流程,一是方便自己回顾,二是方便后来者能够轻松的完成环境的配置,毕竟在配置环境上,搜到什么都看你运气了。