海思 HI3798MV100 盒子刷机记录
新分区表(去 logo、recovery、backup)
fastboot 0M 1M ← 不动
bootargs 1M 1M ← 不动
baseparam 2M 4M ← 不动
pqparam 6M 4M ← 不动
kernel 10M 20M ← 原来 14M,前移 4M
rootfs 30M - ← 原来 610M,现在从 30M 开始,约 7.1GXML 文件: /home/a1/下载/emmc_TTL-hi3798mv100-32-new.xml
刷机后必须改 bootargs
刷完后串口进 fastboot,改 bootargs:
setenv bootargs model=mv100 console=ttyAMA0,115200 root=/dev/mmcblk0p6 rootfstype=ext4 rootwait blkdevparts=mmcblk0:1M(boot),1M(bootargs),4M(baseparam),4M(pqparam),20M(kernel),-(rootfs)
saveenv
run bootcmd关键变化:
root=/dev/mmcblk0p9→root=/dev/mmcblk0p6(分区号变了)blkdevparts删掉了 logo、busybox、backup
USB 盘备份文件
| 文件 | 大小 | 用途 |
|---|---|---|
rootfs.img | 900MB | dd 镜像,可刷分区 |
kernel.img | 20MB | 内核备份 |
rootfs.tar.gz | 259MB | tar 备份 |
NFS 网络共享
- 盒子:
/dev/sda→/mnt/shared,NFS 导出 - 主机:
192.168.31.82:/mnt/shared→/mnt/nas(NFSv3) - 开机自动挂载(双方 fstab 都配了)
刷机流程
- USB 盘插主机,进 VM
- HiTool 加载新 XML 分区表
- 选择 rootfs.img 刷 rootfs 分区(30M 起始)
- 串口进 fastboot 改 bootargs
run bootcmd启动测试
⚠️ 注意事项
bootargs9-32.bin 是旧的
HiTool 刷机时会刷 bootargs 分区,用的是原始 bootargs9-32.bin,里面还是旧配置。必须串口改。
分区号变化
| 分区 | 旧版 | 新版 |
|---|---|---|
| rootfs | mmcblk0p9 | mmcblk0p6 |
| logo | mmcblk0p5 | 已删除 |
| recovery | mmcblk0p7 | 已删除 |
| backup | mmcblk0p8 | 已删除 |
U-Boot 网络
U-Boot 里 IP 是 192.168.1.10,主机是 192.168.31.x,TFTP 不能直接用。要改 U-Boot 网络配对。
翻车修复
如果刷完起不来,串口改回旧 bootargs:
setenv bootargs model=mv100 console=ttyAMA0,115200 root=/dev/mmcblk0p9 rootfstype=ext4 rootwait blkdevparts=mmcblk0:1M(boot),1M(bootargs),4M(baseparam),4M(pqparam),4M(logo),20M(kernel),64M(busybox),512M(backup),-(ubuntu)
saveenv
run bootcmd主机桌面崩溃教训
问题: 重启 sddm 导致桌面无限密码认证循环
原因: sddm 重启时,NFS 挂载点(/mnt/nas)可能卡住,影响 sddm 启动
解决:
- 弹出 VM 里所有 USB 设备
sudo umount -l /mnt/nassudo reboot
教训: 重启 sddm 前先卸载 NFS 挂载点