Jetson Nano的U盘启动烧录镜像eMMC与安装依赖组件(Jetbotmini)

eMMC(embedded Multi Media Card,嵌入式多媒体卡)版本的烧录方法,eMMC简单来说也是一种SD卡,只不过是焊接在主板上。

在一块干净的板子上面烧录,一般是下面三个步骤,做完之后就跟电脑使用U盘来启动系统一样,当然更像是Windows To Go

烧录三大步骤:烧录核心板的系统、烧录eMMC引导、烧录U盘镜像

1、 Jetson Nano的核心板的系统版本和U盘的系统版本要对应(比如U盘已经烧录了V4.5.1版本,那么Jetson Nano核心板的系统版本也必须是V4.5.1,否则无法USB启动)
2.、USB启动的思路是先启动核心板里的系统,再由核心板的系统引导到U盘上启动。
3.、核心板里的系统需要使用SDKManager来烧录系统,U盘里的系统需要使用 Win32DiskImager来烧录。

在烧录之前,如果使用的是Windows系统,可以安装虚拟机加载Linux镜像来做下面的操作,VMware16pro虚拟机的安装

1、烧录核心板的系统

Ubuntu操作系统,我这里使用虚拟机加载的系统,我们打开浏览器进入https://developer.nvidia.com/zh-cn/embedded/jetpack,来到"NVIDIA SDK Manager 方式"这个地方,点击"如果您使用的是 JETSON ORIN 或 XAVIER 开发者套件 >",点击"下载NVIDIA SDK Manager"

将跳转到https://developer.nvidia.com/drive/sdk-manager这个页面,本人是Ubuntu系统所以选择.deb格式,https://developer.nvidia.com/sdkmanager_deb

下载好了之后来到这个目录,安装SDK Manager(注意自己下载的名称,版本号会随着更新而变化)

sudo dpkg -i sdkmanager_1.9.1-10844_amd64.deb

如果报错找不到依赖文件,输入以下命令:

sudo apt --fix-broken install

打开SDKManager,Jetson Nano连接虚拟机Ubuntu18.04。此时需要让Jetson Nano进入到REC刷机模式(将跳线帽[某宝100个包邮才2块多钱]连接到FC REC和GND这两个引脚,也就是连接到核心板下方载板的第二和第三个引脚)【跳线帽就是内置一根导线,让这两个针脚短路连接,所以也叫做短路帽】这两个引脚的意思是,Recovery恢复和Ground接地。

将HDMI显示屏、鼠标、键盘和microUSB数据线连接到Jetson Nano上,最后再接入电源。由于上一步已经将跳线帽连接到FC REC和GND引脚,所以上电开机后会自动进入REC刷机模式。

在SDKManager软件选择Target Hardware为Jetson Nano modules,Linux JetPack。其中DeepStream可选,这个看自己需要是否勾选

如果在Target Hardware显示未连接状态,请确认设备是否进入REC刷机模式并连接上虚拟机,然后刷新。这里注意一下使用虚拟机需要把设备设置为连接到虚拟机上。

如果没弹出提示,可以在虚拟机的右下角手动连接:找到NVIDIA APX后点击连接到虚拟机。颜色亮了表示已连接到虚拟机。

默认会勾选Jetson OS和Jetson SDK Components,表示刷入系统和SDK,可以单独选系统OS或者软件SDK,但是单独刷入软件SDK前需要保证已经刷入系统OS(由于Jetson Nano自带的eMMC容量只有16G,所以安装不了SDK,只能选择刷入OS系统)

文件下载路径保持默认就好,勾选协议,点击下一步。输入虚拟机的密码。此时SDKManager会先下载需要烧录的文件,等待烧录文件下载完成即可开始烧录系统。

等待系统OS烧录完成后,Jetson Nano会自动重启进入系统,此时需要根据系统提示设置系统的基本功能,比如用户名与密码等!

最后需要注意:烧录完系统后,请将FC REC和GND之间的跳线帽拔掉。

2、烧录eMMC引导

这个烧录同样是在Ubuntu系统完成!

Jetson Nano连接虚拟机,准备好Jetson nano主板,跳线帽,显示屏,鼠标键盘等。

让Jetson Nano进入系统REC刷机模式(将跳线帽连接到FC REC和GND引脚,也就是连接到核心板下方载板的第二和第三个引脚)

将HDMI显示屏、鼠标、键盘连接到Jetson Nano上,再接入电源,最后插入microUSB数据线。

正常情况下,插入microUSB数据线后会弹出窗口,选择连接到虚拟机。

Jetson_Boot_USB.tar.gz文件传入Ubuntu 18.04系统,并打开终端运行解压命令。

tar xzvf Jetson_Boot_USB.tar.gz

解压后进入到Jetson_Boot_USB文件夹:

cd Jetson_Boot_USB

ls查看目录里的文件列表

运行烧录eMMC引导文件的命令

sudo ./flash.sh -r jetson-nano-devkit-emmc mmcblk0p1

最后等待文件烧录进入eMMC上,成功会提示

The target t210ref has been flashed successfully. Reset the board to boot from internal eMMC

如果出现错误信息,请确认Jetson Nano是否正常连接,并且进入刷机模式,重新按照第一步进行连接。

烧录完成后,请拔掉Jetson Nnao的跳线帽,再插入U盘,重新上电开机。

3、烧录U盘镜像

这个直接就在Windows环境即可

烧录U盘系统的方式的与烧录TF卡系统的流程是一样的,准备的U盘建议大于32G,本次烧录U盘的步骤不需要Jetson Nano参与。

首先格式化U盘,使用SDFormatter这里注意一定不能选错Drive。如果U盘里已经有烧录过系统的,可能第一次格式化会出错,再执行一次就可以了。

解压下载的系统镜像压缩文件(Jetbot_mini_Jetson_20220822_IMG.rar),得到.img格式的镜像文件,将U盘插入电脑USB口,运行Win32DiskImager工具

选择上面解压的镜像文件Jetbot_mini.img和U盘,然后点击写入,就开始烧录系统了。

烧录结束后会弹出完成对话框,说明安装就完成了,如果不成功,请关闭防火墙一类的软件,重新插入U盘进行烧录。请注意安装完,Windows系统下看到U盘分成多个分区并且无法点击进入,这是正常现象,因为Linux下的磁盘分区Windows下是看不到的!

烧录成功后系统可能会因为无法识别分区而提示格式化分区,不要格式化!不要格式化!不要格式化!点击取消,然后弹出U盘,最后将U盘插入到Jetson Nano主板的USB口上。

至此就完成了对JetsonNano主板的系统安装,接下来我们安装一些无人车需要的组件。

安装jetbotmini组件

安装前一般更新源,在做AI项目前建议先做如下两个步骤的操作,避免安装一些库时会找不到安装地址,导致后面频繁出错。

sudo apt-get update
sudo apt-get full-upgrade
#安装nano编辑器
sudo apt-get install nano

1、安装pip

sudo apt-get install python3-pip python3-dev
python3 -m pip install --upgrade pip #升级pip

这里需要修改pip3文件:

sudo nano /usr/bin/pip3

将下面这段内容

from pip import main
   if __name__ == '__main__':
        sys.exit(main())

修改为

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

修改之后ctrl+s保存,然后ctrl+x退出即可

pip3 -V

这里我修改之后报错:AttributeError: module 'pip.__main__' has no attribute '_main'

所以我这里还是没有修改,查看版本号pip3 -V,是否升级成功

pip3 -V
'''
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
pip 21.3.1 from /home/yahboom/.local/lib/python3.6/site-packages/pip (python 3.6)
'''
python3 -m pip --version
#pip 21.3.1 from /home/yahboom/.local/lib/python3.6/site-packages/pip (python 3.6)

2、安装Jetbotmini依赖包

下面是Jetbotmini正常运行是需要安装的包:

依赖包

版本

Adafruit-GPIO(本地安装)

1.0.4

Adafruit-MotorHAT(本地安装)

1.4.0

Adafruit-PureIO

0.2.3

Adafruit-SSD1306(本地安装)

1.6.2

Flask

1.1.2

Jetson.GPIO

1.0.0

numpy

1.16.4

traitlets(本地安装)

3.4

pillow

5.2.0

其中备注本地安装的包直接安装,速度可能会比较慢

sudo pip3 install 包名

或者安装上面下载的本地安装包【Jetbotmini依赖包】:

sudo python3 setup.py install

安装cmake

sudo apt-get install cmake

如果安装出现版本不兼容的问题,可以指定版本号来安装,比如pip install numpy==1.16.4

猜你喜欢

转载自blog.csdn.net/weixin_41896770/article/details/129517476