8.6. 刷机包类型转换工具与tftp刷机方法
说明:刷机包类型转换工具用于sdcard刷机包与tftp刷机包的相互转换;tftp刷机方法见本页末尾;
适用对象:该工具适用于官方刷机包,socbak工具制作的刷机包与bsp工具制作的刷机包;
执行环境:该工具的执行需要在Linux x86系统下,本文以Ubuntu 20.04 x86系统为例;
8.6.1. 刷机包类型转换工具的获取
使用浏览器打开并下载:https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/11/16/15/sd2tftp.tar
文件下载完成后会得到一个压缩包,将压缩包解压后得到sd2tftp.sh脚本文件。
注解
首次使用需要安装mkimage工具,可使用如下指令进行安装:
sudo apt install u-boot-tools
8.6.2. 刷机包类型转换工具使用指引
将sd2tftp.sh文件置入sdcard刷机包文件或tftp刷机包文件同路径下;
执行指令
./sd2tftp.sh [Mode Choose]
执行成功后的刷机包会生成在output文件夹下。
8.6.3. tftp刷机方法
SE5 的 u-boot 也支持通过以太网和tftp协议刷机。刷机步骤如下:
注意
tftp 使用的刷机包与 SD 卡刷机使用的刷机包是不同的;
tftp刷机方法仅支持从SDKv22.09.02升级到以上版本。
获取tftp刷机包:可以参照上文自行制作,也可以从 https://developer.sophgo.com/site/index/material/all/all.html 下载。其中v22.09.02之后版本的SOPHONSDK
sophon-img_<date>_<hash>
文件夹中提供了 tftp.tgz 文件。在PC上安装tftp server,并指定tftp刷机包路径:
Ubuntu系统:运行:
apt-get install tftpd-hpa tftp-hpa
,下载tftp工具;然后查看/etc/default/tftpd-hpa
文件中的TFTP DIRECTORY
路径,将刷机包拷贝进去(您也可以修改这个路径配置,sudo service tftpd-hpa restart
后即可生效);windows系统: 点击链接下载 https://pjo2.github.io/tftpd64/ ,随后打开下载好的 tftpd64.exe 图形界面,并将 Current Directory 设置指向tftp刷机包解压后的文件夹。
注意
使用的 PC 推荐尽可能使用 Ubuntu 系统,Windows 下的 tftpd64 对环境比较挑剔,在传输大文件时有时会不稳定,造成升级失败。
tftp server 搭建好后,您可以用另一台 PC 先测试一下,避免网络、防火墙等配置问题。
搭建基础网络环境:将需要升级的设备和 PC 机放在同一个路由器下(也可以通过设备LAN口直连PC)。
执行刷机步骤:
将需要升级的设备接上串口终端,启动盒子,快速按回车,进入uboot指令模式;
输入如下指令:
setenv serverip 192.168.150.2 setenv ipaddr 192.168.150.1 setenv gatewayip 192.168.150.2 setenv update_all 0 setenv reset_after 1 tftp 0x310000000 boot.scr source 0x310000000 set netretry yes
注意
注:指令中的serverip为tftp服务器地址,ipaddr为盒子的ip地址,gatewayip为网关地址,需要根据实际情况进行调整; 在window使用场景下,通常是使用盒子的lan口和PC端进行连接,此时serverip和gatewayip是相同的; 用户可以在执行tftp指令之前先ping一下serverip,确认一下连接状态。
随后开始刷机,您会看到#号表示的进度。
由于通过指令配置了环境变量
reset_after 1
,在刷机完成后系统将会重新启动。同时,指令set netretry yes
将传输超时后进行重试,而非直接重新启动设备。需要注意的是,如果刷机失败,系统同样会自动重启。请根据执行结束后的提示来判断刷机是否成功完成。