万顷风涛不记苏。雪晴江上麦千车。但令人饱我愁无。——苏轼《浣溪沙·万顷风涛不记苏》
1、官方固件下载
英伟达官网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”
2、虚拟机环境准备
系统版本使用ubuntu16.04的比较稳定
3、Ubunut中建立自己的工作空间文件夹,便于统一管理相关文件。
mkdir ~/workspace/xa_nx/linux -p
4、make sure “qemu-user-static” package 在你安装的虚拟机系统中已经安装,如果没有apt安装下(交叉编译相关):
sudo apt-get install qemu-user-static
5、拷贝 “1” 中下载的固件到工作目录下
nvidia:~/workspace/xa_nx/linux$ ls
Tegra186_Linux_R32.4.2_aarch64.tbz2 Tegra_Linux_Sample-Root-Filesystem_R32.4.2_aarch64.tbz2
6、解压固件并构建文件系统
(1)解压bsp
nvidia:~/workspace/xa_nx/linux$ tar xf Tegra186_Linux_R32.4.2_aarch64.tbz2
nvidia:~/workspace/xa_nx/linux$ ls
Linux_for_Tegra Tegra186_Linux_R32.4.2_aarch64.tbz2 Tegra_Linux_Sample-Root-Filesystem_R32.4.2_aarch64.tbz2
(2)解压并构建文件系统
nvidia:~/workspace/xa_nx/linux$ cd Linux_for_Tegra/rootfs/
nvidia:~/workspace/xa_nx/linux/Linux_for_Tegra/rootfs$ sudo tar xpf ../../Tegra_Linux_Sample-Root-Filesystem_R32.4.2_aarch64.tbz2
nvidia:~/workspace/xa_nx/linux/Linux_for_Tegra/rootfs$ ls
bin dev etc home lib media mnt opt proc README.txt root run sbin snap srv sys tmp usr var
(3)执行 apply_binaries.sh
nvidia:~/workspace/xa_nx/linux/Linux_for_Tegra/rootfs$ cd ../
sudo ./apply_binaries.sh
等待执行结果,最后会有个打印:
...
Installing extlinux.conf into /boot/extlinux in target rootfs
Success!
完成以上所有步骤就可以准备烧录了。
7、烧录系统
(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命令,可以查看到:
nvidia:~/workspace/xa_nx/linux/Linux_for_Tegra$ lsusb
Bus 003 Device 054: ID 0955:7020 NVidia Corp.<-------------- 这里就是 nx板子
(6)执行烧录命令: sudo ./flash.sh p3449-0000+p3668-0001-qspi-emmc mmcblk0p1
nvidia:~/workspace/xa_nx/linux/Linux_for_Tegra$ sudo ./flash.sh p3449-0000+p3668-0001-qspi-emmc mmcblk0p1
最后成功打印
...
The target t186ref has been flashed successfully.
Reset the board to boot from internal eMMC.