引言
以前,因为家里的宽带是移动的,于是移动送了我家一个机顶盒,名字叫做魔百盒,型号是CM101s
几年后,移动送了我家一个新盒子
这个盒子就因为这件事被闲置下来了
在这个盒子被闲置下来的几个月后,我看网上有教程能给盒子刷机,但我那时没有对应的螺丝刀,于是徒手把盒子下面的外壳给拆了,外壳因此碎成3个

但因那时没U盘,没TTL模块,而刷机需要这两个的其中一个,因此折腾不了它了
到了今年9月,我又开始折腾它了,现在工具有了,盒子的linux刷机包也有了,但折腾的时候却发现盒子的emmc存储坏了(
于是我就用了下载linux刷机包时顺便找到的U盘启动镜像
我把它烧写到了一张TF卡里,接上盒子并短接CPU针脚1 2
进入系统却发现是Ubuntu 20.04,十分先进,于是我将它修改了一下,改成了25.04,添加了linux 6.9内核,并删除了一些不是必须的东西
这个盒子的配置如下:
- CPU:hi3798mv100
- GPU:Arm mali 450
- 板载存储emmc 8G
- 运行内存 1G
- 两个USB2.0接口
- 一个有线网口
- wifi
开始折腾
首先你需要以下东西:
- 一个魔百盒CM101s(显然的)
- 一个U盘(TF卡+读卡器 移动磁盘也行)
- 一个镊子(其他能导电的东西也可以,我用的是一条杜邦线)
- 一个TTL模块(可选)
- 一条网线(可选)
- 一个人类(用来准备工具,刷入镜像等操作)
- 一台能刷入镜像的设备(我使用Orange Pi Zero3刷入)
- 螺丝刀
- Ubuntu 25.04镜像
Ubuntu 25.04镜像下载:
关于这个镜像请查看https://word.1win.eu.org/index.php?/archives/14-hi3798mv100CPUUbuntu-25.04U.html
烧写镜像
我使用GNOME磁盘烧写镜像,这个软件没有Windows MacOS版
若要在Windows上烧写此镜像,你可以使用balenaEtcher
此处不列出balenaEtcher的下载方法
你需要以管理员权限运行它
使用balenaEtcher烧录Linux镜像的具体步骤如下所示
a.首先选择要烧录的Linux镜像文件的下载路径
b.然后选择TF卡的盘符
c.最后点击Flash就会开始烧录Linux镜像到TF卡中

成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出U盘插入到盒子的USB接口中使用了

tips:如果你要连接WiFi的话,你需要去BOOT分区去把boot1.img删了,在从mv100文件夹复制hi_kernel-mv100-0808.bin这个文件到BOOT分区根目录下,并重命名为boot1.img
Ubuntu,启动!
首先先把盒子下面的海绵垫取下来,再用螺丝刀把螺丝拧开
插入刷写好的U盘的盒子上
按图中的顺序,插入TTL的圆(可选)

用镊子短接CPU1、2针脚

打开电源,如果TTL出现以下输出,这代表着已经从U盘启动,此时可以放下镊子了
Bootrom start
Boot from eMMC
Entry usb bootstrap
Udisk(1):
Initializing DDR...
DDRSStart fastboot.bin
System startup
......
Welcome to Ubuntu 25.04!
......
此时,系统就开始启动了
这个镜像有两个用户
root和ubuntu,密码都是1234
为了安全,请在进系统后修改用户密码
关机请使用poweroff命令,亲测直接拔电源会导致rootfs分区出现问题
扩容和联网
默认情况下,烧写到U盘里的系统分区容量只有1.9GB,要让它使用U盘全部的容量,你需要按照下面的方法照做

实际操作中lsblk会报错,不管它,直接用fdisk命令修改
root@hi3798mv100 ~# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.40.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.
命令(输入 m 获取帮助): p
Disk /dev/sda:29.72 GiB,31914983424 字节,62333952 个扇区
Disk model: Storage Device
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa2c7918e
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 217087 215040 105M b W95 FAT32
/dev/sda2 217088 4194303 3977216 1.9G 83 Linux
命令(输入 m 获取帮助): d
分区号 (1,2, 默认 2):
分区 2 已删除。
命令(输入 m 获取帮助): n
分区类型
p 主分区 (1 primary, 0 extended, 3 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (2-4, 默认 2):
第一个扇区 (217088-62333951, 默认 217088):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (217088-62333951, 默认 62333951):
创建了一个新分区 2,类型为“Linux”,大小为 29.6 GiB。
分区 #2 包含一个 ext4 签名。
您想移除该签名吗? 是[Y]/否[N]: n
命令(输入 m 获取帮助): w
分区表已调整。
正在同步磁盘。
root@hi3798mv100 ~#
如果操作无误的话,你已经将它扩容到你U盘的容量了
免短接启动设置
每次启动Ubuntu时,你都要短接CPU针脚,如果你不想每次开机都要短接的话,你可以试试以下方法:
方法一:吹下emmc()
用热风枪直接吹下emmc(或nand),此方法适用于emmc(或nand)已经坏的人,比如我自己:(
此处不讲吹下emmc(或nand)的方法,如果要试的话,记得贴耐热胶带
方法二:清空emmc(或nand)的fastboot分区
1.进入系统后先备份盒子emmc里的fastboot分区 命令:
dd if=/dev/mmcblk0p1 of=/mnt/sda1/fastboot.bin.bak bs=1024
备份文件在U盘的BOOT分区根目录下 fastboot.bin.bak
推荐将原厂fastboot.bin.bak备份文件 替换成U盘里启动的fastboot.bin文件
2.免短接直接USB启动设置命令:
dd if=/dev/zero of=/dev/mmcblk0p1 bs=1024
此时盒子不需要短接就可以启动U盘上的Ubuntu了
3.恢复盒子emmc(或nand)启动命令
dd if=/mnt/sda1/fastboot.bin.bak of=/dev/mmcblk0p1 bs=1024
如何自定义有线网卡mac地址
MAC地址生成器 https://www.126126.xyz/net/gen_mac.htm
简单、粗暴、一键脚本,运行后,重启设备
echo "hwaddress ether 54:52:00:62:28:55" >> /etc/network/interfaces.d/eth0
更换内核的方法
在BOOT分区的根目录下,有5个文件和一个文件夹

其中的boot1.img就是要启动的内核
而mv110文件夹下存放着其它reg名称的fastboot文件和linux内核
而这些linux内核中,只有hi_kernel-mv100-0808.bin(linux 4.4内核)和hi_kernel-linux-6.9.0-rc6.bin(linux 6.9内核)是能驱动WiFi的
烧写完镜像后的内核默认是hi_kernel-linux-6.9.0-rc6.bin,而这个内核的WiFi驱动有问题,只能连接之前连接过的WiFi
要连接新的WiFi,你只能通过linux4.4内核连接
将mv110目录下的hi_kernel-mv100-0808.bin复制到根目录下,删除boot1.img文件,重命名hi_kernel-mv100-0808.bin为boot1.img,这样子你就将内核更换为linux4.4内核了
其它内核也一样
参考内容
Mac地址的修改:https://bbs.histb.com/d/318-mac
原版镜像的扩容教程:https://bbs.histb.com/d/491-u-ubuntu-nas
除非注明,否则均为天远日记原创文章,转载必须以链接形式标明本文链接
Comments NOTHING