赛米尼M02是一款基于安卓系统的网络机顶盒,采用Amlogic S905系列芯片方案,标配1GB RAM+8GB ROM存储组合。这类设备在硬件性能上完全具备运行第三方系统的潜力,但原厂固件往往存在功能限制或广告推送等问题。海纳思系统(HiNas)是基于Armbian开发的轻量级Linux发行版,专为电视盒子改造设计,支持Docker容器、Samba文件共享等实用功能,能将普通机顶盒变身成家庭服务器。
我手头这台M02已经吃灰两年,原厂系统卡顿严重且无法卸载预装应用。尝试过卡刷、线刷和TTL三种方式刷机后,发现TTL串口刷机是成功率最高的方案——它能在bootloader阶段直接干预系统启动流程,完美绕过安卓系统的签名验证机制。下面分享完整操作过程和避坑要点。
通过recovery模式刷入ZIP包是最简单的方式,但存在两个致命问题:
实测过程中,即便成功刷入TWRP,在安装HiNas时仍会报错"E: Signature verification failed"。修改update-script跳过验证后,系统虽能启动但WiFi模块失效,原因是驱动不匹配。
使用USB Burning Tool通过短接触点强制进入刷机模式是Amlogic设备的常规操作。但M02的PCB布局特殊:
即便成功刷入,首次启动时大概率卡LOGO,这是因为线刷会破坏分区表结构。相比之下,TTL刷机可以保留原厂分区表仅替换系统分区。
通过UART串口直接与SoC通信,具有以下不可替代的优点:
所需硬件仅需:
拆开机顶盒后,在主板背面找到四针调试接口(丝印标注UART1):
code复制[引脚定义]
1 - VCC(勿接)
2 - GND(黑线)
3 - TX(白线接TTL模块RX)
4 - RX(绿线接TTL模块TX)
接线注意事项:
必须使用3.3V电平的TTL模块,5V会烧毁芯片
先接GND再接信号线,避免电势差损坏接口
若主板无预留接口,需焊接在C122/C123电容两端
使用Putty或MobaXterm建立串口连接,参数设置为:
通电后立即连续按回车键,当出现"gxl_p211_v1#"提示符时,输入:
bash复制usb start
fatload usb 0 1020000 bootloader.img
store rom_write 1020000 0 10000
这一步会更新bootloader,为后续操作铺路。关键点在于时序控制——必须在uboot倒计时结束前完成输入。
将HiNas镜像解压到FAT32格式U盘,依次执行:
bash复制# 擦除原系统
mmc erase 0x100000 0x800000
# 从U盘加载镜像
fatload usb 0 1080000 system.img
# 写入eMMC
mmc write 1080000 0x100000 0x800000
# 设置启动参数
setenv bootargs "root=/dev/mmcblk0p1 rootwait rw"
setenv bootcmd "mmc read 1080000 0x100000 0x800000; bootm 1080000"
saveenv
特别注意分区大小参数:
成功引导后,需通过SSH登录(默认IP 192.168.1.100)进行后续配置:
bash复制# 扩展根分区
resize2fs /dev/mmcblk0p1
# 安装WiFi驱动(RTL8189FTV专用)
wget http://hinas.net/drivers/rtl8189ftv.tar.gz
tar -xzf rtl8189ftv.tar.gz -C /lib/modules/
# 启用Docker服务
systemctl enable docker
ls -l system.img获取实际大小)/etc/modprobe.d/8189ftv.conf添加:ini复制options 8189ftv rtw_power_mgnt=0 rtw_enusbss=1
depmod -a更新驱动依赖修改/etc/docker/daemon.json:
json复制{
"storage-driver": "vfs",
"iptables": false
}
刷机成功后,建议进行以下增强配置:
编辑/boot/env.txt:
ini复制cpu_max_freq=1536
dvfs_max_freq=1536
bash复制# 格式化为ext4
mkfs.ext4 /dev/sda1
# 自动挂载
echo "/dev/sda1 /mnt/storage ext4 defaults 0 0" >> /etc/fstab
bash复制curl -fsSL https://get.casaos.io | bash
通过TTL刷机获得的系统完全开放底层权限,后续可自由升级内核或编译自定义驱动。相比其他方案,这种方式的另一个优势是随时可以通过串口救砖——即便系统完全无法启动,也能通过uboot命令恢复。