跳到主要内容

U-Boot烧录固件

· 阅读需 2 分钟

今天在折腾设备时,替换了设备内的 libc.so.6 导致设备无法开机了,只能进入U-Boot。目前目前又无法使用 RKDevTool 烧录工具那样的傻瓜式通过USB进行烧录。

跟同事询问之后,可以使用U-Boot将文件系统写入到emmc中。 首先先配置好网络相关的U-Boot环境变量:

setenv serverip 192.168.8.101
setenv ipaddr 192.168.8.103
setenv netmask 255.255.255.0
setenv ethaddr 00:11:22:33:44:55
setenv gatewayip 192.168.8.1

然后使用TFTP让设备能够访问到文件,下载Windows版本的TFTP服务器( 选择 tftpd64.464.zip为免安装文件)。在页面上指定 Current DirectoryServer Interfaces

然后我们就可以在设备串口终端根据需要输入命令,将对应的文件烧录至emmc中:

mw.b 0x50000000 0xff 0x80000 && tftp 0x50000000 boot_image.bin && mmc write 0 0x50000000 0 0x400
mw.b 0x50000000 0xff 0x80000 && tftp 0x50000000 emmc_env.bin && mmc write 0 0x50000000 0x400 0x400
mw.b 0x50000000 0xff 0x80000 && tftp 0x50000000 bl31.bin && mmc write 0 0x50000000 0x800 0x400
mw.b 0x50000000 0xff 0xd800000 && tftp 0x50000000 uImage-fdt && mmc write 0 0x50000000 0xc00 0x6c00
mw.b 0x50000000 0xff 0x3000000 && tftp 0x50000000 rootfs_hi3516dv500_48M.ext4 && mmc write 0 0x50000000 0x7800 0x18000
mw.b 0x50000000 0xff 0x10000000 && tftp 0x50000000 appfs_hi3516dv500_256M.ext4 && mmc write 0 0x50000000 0x1f800 0x80000

最后,断电重启即可。