由于在更新glibc时不小心在非root模式下删除了libc.so.6,直接导致terminal基础命令全部用不了,再次上电启动Jetson时无法进入系统,所以决定重新烧写系统,记录如下:
STEP1: 在VMware上创建虚拟机
下载所需版本的Ubuntu系统镜像,笔者这里下载的是Ubuntu18.04。
创建新的虚拟机,选择典型,下一步选择安装程序光盘映像文件,这里浏览找到你下载的镜像文件即可。
进而设置用户名;之后,在虚拟机设置中,可以配置内存为4GB,处理器默认2核,硬盘设置100GB(针对Jetson Orin NX而言),其余均可默认。
之后,虚拟机也就创建好了,我们进入下一步。
STEP2: 在VMware上设置虚拟机
- 打开Terminal,在虚拟机上安装应用库,执行以下命令:
$ sudo apt-get install qemu-user-static
$ sudo apt-get install python
搭建环境的过程需要这个应用库来将某些NVIDIA 软件组件安装到Jetson 开发工具包中。
这里笔者遇到一个问题,出现报错为:E: Could not get lock /var/lib/apt/lists/lock
是由于资源被别的进程锁定,因此直接重启即可解决,即在Terminal里执行:
$ sudo reboot
- 打开火狐浏览器,从英伟达官网(https://developer.nvidia.com/embedded/linux-tegra-archive)上下载所需版本的驱动程序包和示例根文件系统包。
这里选择最新版本36.3,进去后下载Driver Package(BSP)与Sample Root Filesystem两个即可。
- 下载完毕后,在home内新建文件夹,命名为jetson,将下载好的两个文件夹拖入其中。
- 在终端中打开jetson这个文件夹,执行以下命令:
$ tar xf ${L4T_RELEASE_PACKAGE}
$ sudo tar xpf ${SAMPLE_FS_PACKAGE} -C Linux_for_Tegra/rootfs/
$ cd Linux_for_Tegra/
$ sudo ./tools/l4t_flash_prerequisites.sh
$ sudo ./apply_binaries.sh
其中“{L4T_RELEASE_PACKAGE}”为下载的Driver Package(BSP)的压缩包名称(36.3版本对应为Jetson_Linux_R36.3.0_aarch64.tbz2);“ ${SAMPLE_FS_PACKAGE}”对应Sample Root Filesystem。
STEP3: 烧写系统至Jetson Orin NX
- 通过母对母杜邦线将Jetson的REC与GND针脚短接,具体位置如图红圈所示:
- 将USB A-C线的A口接在电脑上,C口接在Jetson上(先后顺序不能乱),之后插上电源。
在VMware上就会检测到新的USB设备,选择连接到虚拟机,也就是你刚刚设置的虚拟机。
之后,执行以下命令(该命令对应于烧录在NVME,对于烧录在sd卡或u盘可参考官网上的文档,链接:Quick Start — NVIDIA Jetson Linux Developer Guide 1 documentation),开始烧写:
$ cd /jetson/Linux_for_Tegra
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_t234_nvme.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 jetson-orin-nano-devkit internal
之后在进入STEP3(如下图)后,会跳出一个窗口,再次选择连接到虚拟机上。
过一阵,只要出现Flash is successful,表明系统烧录完毕。
大功告成!