背景
模型已经训练好了,完成了在jetson nano b01上的各种测试,测试的过程中安装了各种自己也记不清的包,系统装载了32G TF卡上,每次开机还报错,并且引导很慢,这种状态不能直接做生产环境,需要一个清爽的部署环境,最好不要用TF卡,那就要重新刷机了。
刷机
此处耗时12小时,做了5遍...
买的开发套件U盘里有vmware虚拟机,里面装好了ubuntu系统,只需下载安装最新版的 sdk manager,然后就可以刷机了,步骤:
- 设置vmware虚拟机的usb 为3.1,默认2.0,我感觉这样可能会快点吧;
- 启动sdk manager,用nvidia开发者账号登录(英伟达神经病);
- 用usb数据线连接jetson nano,用条线短接GND和FC REC两个柱;
- 给jetson nano上电,电脑提示usb连接主机还是虚拟机,选择虚拟机;
- 此时sdk manager应该会在step1 画面显示连上了jetson nano,Host Machine 不勾选,DeepStream不勾选(emmc 16G空间不足,会安装失败),然后下一步;
- 在第二步选择手动(Manual)安装,ip 192.168.55.1不用改,设置好jetson nano的登录账户、密码,然后点Flash开始刷机;
- 刷机结束后,usb会断开重连,拔掉跳线等待jetson nano启动2遍,第二遍时会出现登录画面,此时在电脑上的SDK安装画面点安装;
- 等待安装结束。
瘦身
开发板自带的emmc是16G,装完系统和SDK,在jetson nano上会弹出警告,只剩600M了...,而DeepStream6压缩包就600多M,因此需要删一些没用的东西,按照这篇文章删除HMI没有成功,倒也用不着腾那么多空间。
1. 删除文档和示例,节省1.2G
$ sudo dpkg -r --force-depends "cuda-documentation-10-2" "cuda-samples-10-2" "libnvinfer-samples" "libvisionworks-samples" "libnvinfer-doc" "vpi1-samples"
2. 删除libreoffice,节省2G
sudo apt update
sudo apt autoremove -y
sudo apt clean
sudo apt remove thunderbird libreoffice-* -y
安装DeepStream6
安装方法就不赘述了,装完删掉安装文件,剩余空间2.4G左右。
部署应用
将模型和C代码拷贝到测试阶段使用的路径下(涉及到.h引用位置),然后 sudo make,然后润起来。
总结
jetson nano开发套件上来就是在sd卡上做系统的方法在生产环境下会带来3个问题:一是TF卡的速度不如emmc,系统启动慢;二是增加了TF卡成本;三是容易被别人克隆,16G的emmc挤挤还是够用的。
后记
TF卡里的测试环境留着,需要训练新模型时可以修改/boot/extlinux下的extlinux.conf,把dev/mmcblk0p1 修改成 TF卡的设备名(sudo df -h 可查),然后重启就进入TF卡的系统了,这样就把emmc作为运行环境,把TF作为开发环境,根据需要切换。