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