当你拿到梦寐以求的NVIDIA Jetson Xavier NX开发板时,第一个工作就是要刷机。究竟要怎么做呢? Let’s go !
这种板子有两种,一种是带Micro SD卡槽的,可以插入小型SD卡;一种是没有Micro SD卡,内置存储的 emmc 版。所以第一步,你先看清楚自己的板子是哪一种,然后,准备相应的工具开始刷机。如果你是emmc版,直接跳转到第二部分。
准备:
Micro SD卡,64G或128G,用作镜像,
linux系统,
提前下载安装SD Card Formatter、Win32DiskImager这两个小软件,
下载Xavier NX官方系统镜像
官网链接:https://developer.nvidia.com/embedded/downloads#?search=Jetson%20Xavier%20NX%20Developer%20Kit%20User%20Guide
格式化SD卡
要准备一张microSD卡,将microSD卡插入电脑或使用读卡器插入电脑,按照以下顺序进行操作。
(1)启动适用于Win的sd卡格式化程序SD Card Formatter例如上图,
(2)select card选择sd卡驱动器 对应的卷标,
(3)选择“快速格式”,
(4)将“卷标”留空,
(5)单击“格式”开始格式化,并在警告对话框中单击“是”,
格式化以后sd卡就可以进行下一步的镜像刷写。
打开Win32DiskImager,在imageFile那一栏右侧文件夹符号边上选择你SD卡对应的盘符号,然后点击蓝色小文件夹图标,打开你下载镜像的目录,镜像应该是解压完毕的名字叫sd-blob。点击打开以后再点击Win32DiskImager的Write按钮进行写入,写入完毕以后Windows会看不见,也无法读取SD卡,这是正常现象,因为系统已经刷进去了,文件系统不兼容了。此时将SD卡如下图插入NX后部卡槽待用即可。
准备:
linux系统,最好64位,
USB线,
一根杜邦线,
鼠标键盘,显示器(板子刷好后,连接板子)
英伟达官网L4T 下载页面 给出了系列的开发下载资源,对于 Jetson Xavier NX 系统烧录,我们需要下载两个:
(1)Sample Root Filesystem:官方下载链接
对应文件:“Tegra_Linux_Sample-Root-Filesystem_R32.4.2_aarch64.tbz2”
(2)L4T Driver Package (BSP):官方下载链接
对应文件:“Tegra186_Linux_R32.4.2_aarch64.tbz2”
mkdir nx
sudo apt-get install qemu-user-static
这里要重点强调一下,很可能这一步的安装不是很顺利,网速太慢或者下载时断时连。解决办法:可以多次重新输入命令,更换网络(比如有线换成无线,或者换另外一个有线网口),也可以直接百度qemu下载,然后解压缩安装。我在这一步浪费了很久的时间,就是因为下载很慢,电脑一待机,回来以后下载进度条就停止不动了。
ls
Tegra186_Linux_R32.4.2_aarch64.tbz2 Tegra_Linux_Sample-Root-Filesystem_R32.4.2_aarch64.tbz2
(1)解压bsp
tar xf Tegra186_Linux_R32.4.2_aarch64.tbz2
ls
(2)解压并构建文件系统
cd Linux_for_Tegra/rootfs/
sudo tar xpf ../../Tegra_Linux_Sample-Root-Filesystem_R32.4.2_aarch64.tbz2
(3)执行 apply_binaries.sh
cd ..
sudo ./apply_binaries.sh
等待执行结果,最后会有个打印:
...
Installing extlinux.conf into /boot/extlinux in target rootfs
Success!
完成以上所有步骤就可以准备烧录了。
(1)Jetson Xavier NX 当前市场上拿到的emmc版本对应如下:
Module Part Number:Jetson Xavier NX P3668-0001
Value of $(BOARD): p3449-0000+p3668-0001-qspi-emmc
则对应的系统烧录命令为:
sudo ./flash.sh p3449-0000+p3668-0001-qspi-emmc mmcblk0p1
(2)使用usb连接线连接 虚拟机 和 Jetson Xavier NX
(3)在核心板下方有个名为 “FC_REC” 的引脚 ,其可以控制系统上电后进入recovery模式,使用杜邦线或者跳线帽将其和相邻的GND引脚短接。
(4)使用DC 5V给板子上电
(5)在虚拟机环境下输入lsusb命令,可以查看到:
lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 003 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 003 Device 054: ID 0955:7020 NVidia Corp. <-------------- 这里就是 nx板子
Bus 003 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
(6)执行烧录命令:
sudo ./flash.sh p3449-0000+p3668-0001-qspi-emmc mmcblk0p1
接下来耐心等待,大约10分钟,系统会自动擦除emmc,并将固件写入。
最后可以观察到如下打印:
...
*** The target t186ref has been flashed successfully. ***
Reset the board to boot from internal eMMC.
(7)将 “FC_REC” 引脚和GND短接的线去掉,拔掉 DC5V,重新上电,接上HDMI和鼠标键盘。
(8)系统会自动进入配置页面,要求接受一些协议,初始化用户名什么的,正常配置下即可。
系统启动配置页面
(9)之后就可以正常使用系统了。
sudo vim /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main universe restricted
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main universe restricted
sudo apt-get update
看到这里,就完成了 Jetson Xavier NX 的刷机和源更新,祝君刷机顺利。