【AI】AI入门之Nvidia Jetson平台(二)- Xavier NX系统烧录

目录

一. flash.sh 脚本烧录

二. 直接烧录NVME

​​​​​​​2.1 SDKManger烧录

三. 系统从固态硬盘启动

​​​​​​​3.1 设置硬盘格式

​​​​​​​3.2 设置文件系统从固态硬盘加载

​​​​​​​四. 文件传输设置

​​​​​​​五. 远程桌面

六. 系统拷贝克隆

​​​​​​​​​​​​​​6.1 网络配置

​​​​​​​6.2 系统克隆

​​​​​​​6.3 系统克隆(打包根文件系统)


本篇主要介绍几种方式给Xavier NX开发套件烧录系统,以及配置固态硬盘启动,克隆配置好的系统以便下次使用。

​​​​​​​一. flash.sh 脚本烧录

参考品立科技官网《Jetson烧录环境搭建》:http://www.plink-ai.com/cn/list-0-17.html

其中进入recovery模式为,短接风扇下面的FC REC引脚和GND引脚

sudo ./flash.sh -r jetson-xavier-nx-devkit-emmc nvme0n1p1/mmcblk0p1

正常一个小时完成烧录到EMMC

注:1.目前无法克隆固态硬盘的根文件镜像,无法直接通过USB线直接烧录系统,根文件到固态硬盘,只能直接使用dd命令将固态硬盘分区直接拷贝出来

       2.若批量生产,则(1)烧录系统到emmc;(2)初始化,分区固态硬盘;(3)将备份的固态硬盘分区文件拷贝解压缩到对应固态硬盘分区;(4)设置固态硬盘启动,重启设备即可

​​​​​​​二. 直接烧录NVME(有问题,不成功)

若直接烧录到固态硬盘,需要先格式化固态硬盘,进行一定的分区,并设置为NVME启动

这一方式,我目前尝试未成功,还需研究下

​​​​​​​2.1 SDKManger烧录

1.下载SDKManager:SDK Manager | NVIDIA Developer

2.安装运行SDKManager:Download and Run SDK Manager :: NVIDIA SDK Manager Documentation

3.使用SDKmanager安装系统和软件:Install Jetson Software with SDK Manager :: NVIDIA SDK Manager Documentation

使用SDKManager 烧录系统和安装软件,均需要开发板连接外网,会检查apt update ,若不成功,会安装失败,使用公司网络会有问题

三. 系统从固态硬盘启动

​​​​​​​3.1 设置硬盘格式

插入固态硬盘后,设备节点为/dev/nvme0n1

1.进入parted 

2.将磁盘设置为GPT格式,并查看分区结果

#将磁盘设置为gpt格式

mklabel gpt

 

3.创建分区

4. 格式化分区:sudo mke2fs -t ext4  /dev/nvme0n1p1

​​​​​​​3.2 设置文件系统从固态硬盘加载

  1. 下载rootOnNVMe

Git下载地址:

GitHub - jetsonhacks/rootOnNVMe: Switch the rootfs to a NVMe SSD on the Jetson Xavier NX and Jetson AGX Xavier

       执行拷贝文件系统:./copy-rootfs-ssd.sh

       设置SSD为启动盘:./setup-service.sh

       重启生效: reboot

  1. 查看是否成功挂载到 根目录 / 下

​​​​​​​四. 文件传输设置

PC下载FileZilla,开发板系统已集成SSH,可直接连接

端口使用22

​​​​​​​五. 远程桌面

1. 安装

sudo apt-get install xrdp vnc4server xbase-clients

2. 修改配置文件

sudo vim /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml

3. 编译无报错

4. /usr/lib/vino/vino-server

5. sudo apt-get install xfce4

        echo xfce4-session >~/.xsession

6. 解除加密

sudo apt-get install dconf-editor

dconf-editor

 

7. 开启vnc server

/usr/lib/vino/vino-server

8. 设置密码

gsettings set org.gnome.Vino vnc-password $(echo -n 'thepassword'|base64)

thpassword即为密码

9. Windows安装vnc,确保在同一局域网,输入ip连接

 

       输入密码

 

六. 系统拷贝克隆

​​​​​​​​​​​​​​6.1 网络配置

  1. 使用网线将开发板和PC机器连接
  2. 将Jetson开发板,PC,PC上的Ubuntu虚拟机配置到统一网段中

 

 

开发板ip:

​​​​​​​6.2 系统克隆

1. 将开发板系统设置为只读

sudo echo "u" | sudo dd of=/proc/sysrq-trigger

2. 将固态硬盘中系统,克隆到PC的Ubuntu中,

sudo dd if=/dev/nvme0n1p1 | ssh [email protected] dd of=/home/youjia/Development/Project/Jetson/Ubuntu_Image/xavier-image.raw

或者sudo dd if=/dev/nvme0n1p1 | ssh [email protected] dd of=/home/linux/Development/Project/Jetson/Ubuntu_Image/xavier-image.raw

 

       其中youjia 为Ubuntu虚拟机的用户名,@加上虚拟机的IP地址,of后面为 虚拟机上的路径,将克隆的系统,保存在虚拟机中:xavier-image.raw

在Linux_for_Tegra 下,使用flash.sh 克隆系统

sudo ./flash.sh -r -k APP -G original.img jetson-xavier-nx-devkit-emmc nvme0n1p1

3. 将xavier-image.raw 链接为

ln -s /mnt/hgfs/D/Code/Project/Jetson/files/xavier-image.raw system.img

    或者直接覆盖掉bootloader下的system.img文件

4. 烧录

此步骤会覆盖system.img , 请不要放置或链接正确镜像,下一步骤烧录时才放置

设置nvme(SSD)等 sudo BOARDID=3668 FAB=300 BOARDSKU=0000 ./tools/kernel_flash/l4t_initrd_flash.sh -c -r tools/kernel_flash/flash_l4t_external.xml --external-device nvme0n1p1 --direct nvme1n1p1 jetson-xavier-nx-devkit-emmc external

将需要烧录的system.img 放到bootloader下

烧录:sudo ./flash.sh -r jetson-xavier-nx-devkit-emmc nvme0n1p1

仅烧录根文件系统system.img: sudo ./flash.sh -r -k APP jetson-xavier-nx-devkit-emmc nvme0n1p1

官方克隆方式,从EMMC:

       sudo ./flash.sh -r -k APP -G ubuntu20_alorithm.img jetson-xavier-nx-devkit-emmc mmcblk0p1

​​​​​​​6.3 系统克隆(打包根文件系统)

1.插入U盘/移动硬盘到开发板

拷贝根文件系统到U盘

sudo dd if=/dev/nvme0n1p1 | gzip > /media/nvidia/EAGET忆捷/JsDoing/maccura/image.gz

2.格式化好固态硬盘

拷贝根文件系统到NVME SSD中

sudo gzip -dc /media/nvidia/EAGET忆捷/JsDoing/maccura/image.gz | sudo dd of=/dev/nvme0n1p1

3.在EMMC根文件系统中,创建sudo touch /etc/setssdroot.conf文件,则重启后,根文件系统使用nvme ssd的,删除后,则重新使用emmc根文件系统。

猜你喜欢

转载自blog.csdn.net/qq_37755518/article/details/130381004