Liyang

纯 ADB 拯救海思Hi3798MV100:免 TTL 刷Hinas+无线网卡驱动全记录

手里有台海思Hi3798MV100的老盒子,安卓系统是中国移动的定制系统,一直想把它彻底刷成Linux跑点轻服务。传统套路得拆机接TTL,手边没工具(其实是太懒了,不想拆盒子),既然ADB能连并且有Root权限,能不能直接在系统里把 eMMC 给覆盖了?

答案是可以。刷完顺手把自带的无线网卡也驱起来,彻底摆脱网线。写篇备忘,下次再刷少走弯路

总结就一句话

在开启ADB并且有Root权限的安卓上,用ADB把完整的eMMC镜像直接 dd/dev/block/mmcblk0,覆盖全盘。写完把盒子重启,系统就自动启动了

准备清单

第一部分:纯ADB刷写Linux 系统

步骤一:拿到 reg name

这东西相当于盒子的型号,找固件必须对得上。

adb shell
su
cat /dev/block/mmcblk0p1 | grep -a hi3798m

输出类似 hi3798mv100 mdmo1g,记下 mdmo1g

步骤二:用HiTool做 emmc.flash 镜像

固件下载 HiTool下载 32位Java

步骤三:把镜像写进盒子

推荐刷前先关闭远程维护再开

两种方式,看心情选

方式 A:推送进去再写(前提机器存储足够)

adb push 把我换成Flash在电脑的文件位置 /data/local/tmp/
adb shell
su
dd if=/data/local/tmp/emmc.flash of=/dev/block/mmcblk0 bs=1024

方式 B:一条命令流式直刷(没测试过,不保证可用)

adb exec-out < 把我换成Flash在电脑的文件位置 | adb shell "su -c 'dd of=/dev/block/mmcblk0 bs=1024'"

写入过程 5 到 15 分钟,屏幕没任何输出,别手贱打断,期间刷到一半盒子输出黑屏,不要慌,正常现象,等待镜像dd完毕即可

踩坑备忘

刷完验证

重新通电后,去路由器后台找 MAC 地址是 00:11:22:33:44:55 的设备,那台就是刷好的 Hinas盒子

第二部分:驱动无线网卡(RTL8188FTV / ETV)

刷完系统后,如果盒子自带无线网卡,放着也是浪费,顺手驱起来。

目前 Hi3798MV100 大部分机型用的都是 RTL8188FTV 或 RTL8188ETV,驱动和内核版本强绑定,不同版本之间不能通用。MV200 和 MV300 不适用(补药刷,刷了可能用不了,甚至变砖)

一、查看网卡型号

SSH 连上盒子,输入:

lsusb

找到 Realtek 那一行,比如 ID 0bda:f179 是 RTL8188FTV,ID 0bda:0179 是 RTL8188ETV。记住型号。

二、确保内核版本匹配

先看当前内核:

uname -r

 三、下载驱动包

威子大佬的驱动包下载地址:

蓝奏云:Hi3798mv100wifi.zip - 蓝奏云

常见的有 0403、0302、0808 等版本。如果内核和手头驱动包版本对不上,建议刷成 0808 内核(社区资源最全)

刷 0808 内核的方法:把 hi_kernel-mv100-0808.bin 用SFTP上传到 /tmp,然后执行:

cd /tmp
dd if=hi_kernel-mv100-0808.bin of=/dev/mmcblk0p6
reboot

重启后内核就变 0808 了

四、安装驱动

把驱动包和 wifi_install.sh 脚本一起上传到 /tmp,然后:

cd /tmp
chmod a+x wifi_install.sh
sh wifi_install.sh -f 驱动包文件名 -s "WiFi名称" -p "密码"

比如我的网卡是 RTL8188FTV,内核 0808,命令就是:

sh wifi_install.sh -f rtl8188ftv-0808.tar.gz -s CCMC-9178 -p 123456

脚本参数说明:

装完稍等片刻,网卡估计就连上了

五、常见问题及解决

1. 提示找不到 WiFi

手动连接一下:

nmcli device wifi connect "WiFi名字" password "密码" ifname wlan0

2. 拔掉网线后 SSH 连不上 / 启动巨慢

原因是网线拔了以后,系统还在使劲给 eth0 申请 DHCP 地址,卡在 a start job is running for raise network interfaces 长达五分钟。

解决办法:编辑 /etc/network/interfaces.d/eth0,把 auto eth0 注释掉或删掉,换成 allow-hotplug eth0

vi /etc/network/interfaces.d/eth0

改完类似这样:

# auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

或者直接给 eth0 配个静态 IP 也行。重启盒子,启动速度就正常了

3. 插回网线后 WiFi IP 连不上

网线插回去后,系统会自动加一条优先级更高的默认路由,数据全走 eth0 了,WiFi 那边就失联了。临时解决:手动删掉多余路由。

先看路由表:

ip route show

然后删掉 eth0 相关的:

ip route delete 192.168.3.0/24 dev eth0   # 替换成你自己的网段
ip route delete default

4. 想给 WiFi 设静态 IP

编辑 /etc/NetworkManager/system-connections/WiFi名字.nmconnection,找到 [ipv4] 段:

[ipv4]
dns-search=
method=auto

改成:

[ipv4]
dns-search=
method=manual
addresses1=192.168.1.100/24,192.168.1.1
dns=192.168.1.1

然后重载连接:

nmcli connection reload "WiFi名字"
nmcli connection down "WiFi名字"
nmcli connection up "WiFi名字"

最后

这套纯 ADB 方案,免拆机、免 TTL、免短接,一条网线搞定全盘换系统。刷完顺手把无线网卡驱了,盒子彻底自由。关键点就几个点:镜像长度算对、ADB 别断、写完拔电、内核版本和驱动包对得上,或许这套方案能在别的海思设备上实现,如果有其他型号的设备想要折腾的朋友可以试试

写给自己的备忘录,如果能帮到同样折腾海思盒子的朋友,那就更好了

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »