.NVIDIA Jetson Xavier NX 完整说明流程
V1.0.0 – by Holden
Date : 2021-03-19
文章目录
1. Jetson Xavier NX简介
NVIDIA® Jetson Xavier™ NX通过外形小巧的模组系统(SOM)将超级计算机的性能带到了边缘端。 高达21 TOPS的加速计算能力可并行运行现代神经网络并处理来自多个高分辨率传感器的数据,这是完整AI系统的要求。
更多介绍可以查看官方网站: https://www.nvidia.cn/autonomous-machines/embedded-systems/jetson-xavier-nx/
2. Jetson Xavier NX刷机介绍
开题说明,一切以官方的刷机教程为准,任何问题,只有官方可以给你最权威的解答!!!
2.1 工具准备工作
- 由于Jetson Xavier NX 没有内置硬盘,所以需要安装一张TF卡作为硬盘使用,TF卡建议买64G的,32G也能够使用,但是刷机完成之后剩余空间就比较小了。
- 准备一块读卡器,用来PC跟TF卡的烧录使用。
- 准备一台带有Ubuntu系统的PC;Windows系统也可以使用,本文不做Windows方面流程介绍!!!
2.2 下载镜像以及烧录工具
- NX 开发套件镜像(SD Card Image)下载链接:NX开发套件原生镜像
点击下载需要登录Nvidia的账号,如果没有需要注册账号才能下载,建议使用外网下载。
文件大小大概6.6G左右,附上我已经下载好的百度云链接(密码是2021) https://pan.baidu.com/s/19iEFdJonS6cnY99ZF6UbvA 。
- NX 烧录工具下载链接:NX 烧录工具
打开链接会直接自动识别本机的系统,我下载的是Linux64位的软件,这个网站下载东西可能很慢。附上我已经下载好的附上我已经下载好的百度云链接(密码是2021) https://pan.baidu.com/s/1gKL2bjE0QulkE99ZY-u4mQ 。
使用时直接运行既即可
$ ./balenaEtcher-1.5.116-x64.AppImage
2.3 烧录原生镜像到TF卡
1、点击Flash form file选择刚才下载好的SD Card Image压缩包
2、将TF卡插入到读卡器,并插入到电脑主机的USB口,点击select target选择要烧录到的TF卡(有的也会自动识别TF卡),点击Flash
3、烧录成功
2.4 开机启动
将烧录好的TF卡插入到NX开发板上,按照NVIDIA官方说明的操作,连接好鼠标、键盘、显示器、最后连接电源,自动启动开发板
2.5 组件配置
原生镜像会默认安装了cuda、cudnn等,系统安装后需要进行以下配置:
(1).导出cuda路径到bashrc
export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin
(2).安装ROS(melodic)
参考ROS 官方安装教程:melodic官方下载网址
4. 镜像克隆制作
(1) NX开发板上的TF卡取出并插入读卡器,将读卡器插入Ubuntu 主机。
(2) 在主机上新开一终端,并输入如下指令查看SD卡的分区名。
$ sudo fdisk -u -l
显示如下,我的TF卡分区为/dev/sdd
Disk /dev/sdd: 28.9 GiB, 31016878080 bytes, 60579840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 13AAACED-7457-41A6-A435-A145FEEE3635
Device Start End Sectors Size Type
/dev/sdd1 870400 60577791 59707392 28.5G Linux filesystem
/dev/sdd2 2048 133119 131072 64M Linux filesystem
/dev/sdd3 133120 264191 131072 64M Linux filesystem
/dev/sdd4 264192 265087 896 448K Linux filesystem
/dev/sdd5 266240 267135 896 448K Linux filesystem
/dev/sdd6 268288 397311 129024 63M Linux filesystem
/dev/sdd7 397312 398335 1024 512K Linux filesystem
/dev/sdd8 399360 399871 512 256K Linux filesystem
/dev/sdd9 401408 401919 512 256K Linux filesystem
/dev/sdd10 403456 608255 204800 100M Linux filesystem
/dev/sdd11 608256 870399 262144 128M Linux filesystem
Partition table entries are not in disk order.
(3) 重新打开一个终端输入如下指令,这样就会在~/
目录下生成镜像文件jetson-xavier-nx.img.gz
$ sudo dd if=/dev/sdd conv=sync,noerror bs=4M | gzip -c > jetson-xavier-nx.img.gz
运行以下指令可以查看克隆进度
$ sudo pkill -USR1 -n -x dd
克隆成功会在~/目录下生成镜像文件
5. 镜像重烧写
(1) 将需要烧写的TF卡通过读卡器插入Ubuntu 主机,TF卡必须大于32G,并进行格式化。
(2) 在主机上新开一终端,并输入如下指令查看SD卡的分区名。
$ sudo fdisk -u -l
显示如下,我的TF卡分区为/dev/sdd
Disk /dev/sdd: 28.9 GiB, 31016878080 bytes, 60579840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 13AAACED-7457-41A6-A435-A145FEEE3635
Device Start End Sectors Size Type
/dev/sdd1 870400 60577791 59707392 28.5G Linux filesystem
/dev/sdd2 2048 133119 131072 64M Linux filesystem
/dev/sdd3 133120 264191 131072 64M Linux filesystem
/dev/sdd4 264192 265087 896 448K Linux filesystem
/dev/sdd5 266240 267135 896 448K Linux filesystem
/dev/sdd6 268288 397311 129024 63M Linux filesystem
/dev/sdd7 397312 398335 1024 512K Linux filesystem
/dev/sdd8 399360 399871 512 256K Linux filesystem
/dev/sdd9 401408 401919 512 256K Linux filesystem
/dev/sdd10 403456 608255 204800 100M Linux filesystem
/dev/sdd11 608256 870399 262144 128M Linux filesystem
Partition table entries are not in disk order.
(3) 烧写镜像到TF卡
$ sudo -s
$ gunzip -c jetson-xavier-nx.img.gz | dd of=/dev/sdd bs=4M
同样重新打开一个终端,运行以下指令可以查看烧录进度
$ sudo pkill -USR1 -n -x dd
6. NX调控命令
1.调控NX风扇PWM
$ sudo sh -c 'echo 140 > /sys/devices/pwm-fan/target_pwm' ##140代表调节PWM(0-255)
2.安装jtop
$ sudo apt-get update
$ sudo apt-get install python-pip
$ sudo apt-get install python3-pip
$ sudo pip3 install jetson-stats
$ sudo jtop # 启动jtop
3.安装Visual Studio Code(或者使用脚本install_NX.sh)
进入网站:https://packagecloud.io/headmelted/codebuilds
点击Packsges
看右边列出来的包名
后缀带有arm64(aarch64)的,点击包名以查看wget命令
sudo dpkg -i code-oss*.deb
4.wireshark、libpcap、openssl、glog、Tcpdump、git(已经写入到脚本install_NX.sh)
5.VNC自启动,自动修改分辨率为1024x768
修改指令如下:
$ xrandr --fb 1024x768
6.在ROS设置别名,导出到bashrc
alias rvizper='路径'
7.NX工作时,设置每天凌晨1点重启,已加入到/etc/crontab中,默认关闭;
$ sudo su
$ gedit /etc/crontab
00 01 * * * /sbin/reboot #自启动
$ sudo service cron restart
install_NX.sh内容如下所示;
#!/bin/bash
#######################################################################################################
echo -e "\033[32m =====> Installing Dependancy <===== \033[0m"
## install basic third-part libraries ##
#install libpcap
sudo apt-get install -y libpcap-dev
#install openssl
sudo apt-get install -y openssl
sudo apt-get install -y libssl-dev
#install protobuf
sudo apt-get install -y libprotobuf-dev protobuf-compiler
#install wireshark
sudo apt-get install -y wireshark
#install doxygen
sudo apt-get install -y doxygen
#install build essential
sudo apt-get install -y build-essential git cmake dmidecode
#install qt-base
sudo apt-get install -y freeglut3-dev qtbase5-dev libqt5opengl5-dev libglew-dev
#install auto configure tool
sudo apt-get install -y autoconf automake libtool
#install key driver
sudo cp robosense_key/80-hasp.rules /etc/udev/rules.d/
#install Tcpdump and Openssh-server
sudo apt-get install -y tcpdump openssh-server
#install glog
sudo apt-get install -y libgoogle-glog-dev
# install VScode
echo -e "\033[32m =====> Installing VScode <===== \033[0m"
wget --content-disposition https://packagecloud.io/headmelted/codebuilds/packages/debian/stretch/code-oss_1.45.0-1586135971_arm64.deb/download.deb
sudo dpkg -i Dependancy/code-oss*.deb
也可以直接通过百度云网盘下载:链接: https://pan.baidu.com/s/1hdoKZRw4dkjH3DMWXlqWHw 密码: ith4
感谢阅读,有什么疑问可以跟我交流