魔百和电视盒子安装Klipper

本文最后更新于:2025年6月8日 晚上

前言

偶尔在闲鱼捡到一款魔百和的电视盒子,型号为:CM201-1(YS),在网上搜寻一番后,发现可以烧录Linux系统,所以想着试试能不能安装Klipper来给3D打印机当上位机。

硬件信息

我手上这款电视盒子主板的硬件信息如下:
主芯片:晶晨S905-L3(GXLX2)
运行内存:三星K4B4G1646E-BCMA * 2 (1GB)
存储芯片:深圳佰维BWCMGSC11G08G(8GB)
无线网卡:瑞昱RLT8822BS

主板顶面

主板底面

观察主板顶面:可以看到在AV接口后面有一个按钮,后续线刷时会用到;
观察主板底面:有一个TTL接口(图中左下角焊线位置),以及未焊接的TF槽接口(图中是我自己焊了一个上去,但是系统好像无法识别,不清楚是不是需要修改固件才能正常读取)。

烧录底包

电视盒子运行的都是官方修改的Android系统,无法开启adb,也没有root,所以无法直接使用Linux系统,首先需要烧录一个合适的Android底包(自带root或者可以开启adb即可),然后通过升级操作来引导烧录Linux系统。

操作步骤:

  1. 焊接TTL接口
    先将主板的TTL接口使用导线引出来,通过串口线与电脑进行连接,打开MobaXterm软件,点击Session -> Serial,Serial port选择串口线的COM号,Speed选择115200,这样在每次上电以及后续刷机操作时都会输出对应的日志,便于分析。

  2. 下载工具
    下载晶晨芯片的烧录工具Amlogic USB Burning Tool( v2.2.4、v3.1.0)

  3. 下载Android底包
    各型号电视盒子适用的Android底包都被ophub收录于kernel-tools仓库,一般情况下,选择与电视盒子型号以及主芯片相同的Android底包即可,如果没有一一对应的底包,优先选择同芯片型号的Android底包进行尝试。

    本人的电视盒子型号是CM201-1(YS),芯片是晶晨S905-L3(GXLX2),首先下载:android_tv_cm201-1-ys_s905l3b.tar.xz,未能成功;后尝试:android_tv_cm201-1-6-ys_s905l3.tar.xz,只能烧录Android 4.4.2的底包,Android9的底包无法刷入,不知道是不是上传的版本有误?后再次尝试:android_tv_cm211-1_s905l3.tar.xz,成功烧录!

  4. 烧录Android底包
    打开USB_Burning_Tool软件,选择 文件 -> 导入烧录包,选择步骤3中解压出来的Android底包,取消勾选 擦除flash & 擦除bootloader,点击 开始 按钮;然后将电视盒子完全断电,将USB公对公数据线插入离网口座子距离较近的USB口,按住AV接口后方的按钮不松手,另一端接入电脑,听到电脑“嘀嘀”一声后松手,软件就会自动进行烧录,等待进度条走完,然后点击 停止 按钮,关闭软件并拔掉USB公对公数据线。
    USB_Burning_Tool主界面

  5. 启动底包系统
    给盒子插上网线,接入电源,观察MobaXterm软件TTL跑码信息,没有意外情况就顺利进入刷好的Android系统,且自动登录已获取root权限的adb界面,然后使用浏览器登录路由器后台查看电视盒子是否获取到IP地址(确认网口能否识别)。

烧录Linux

针对晶晨的芯片,找到2个优秀的开源Linux项目:amlogic-s9xxx-armbiandebian-on-amlogic,前者拥有大量已成功案例,支持的电视盒子型号众多,系统版本维护快,请优先选择该项目进行尝试烧录;而后者首次启动不会破坏原有的底包系统,而是通过升级操作引导进入U盘里的系统,后续成功启动后使用相应的命令将U盘里的Linux系统烧录到eMMC芯片。

amlogic-s9xxx-armbian

amlogic-s9xxx-armbian项目的Release里每种电视盒子型号的镜像会提供2种版本:
每种电视盒子会提供2种镜像文件

版本区别:
6.12.31版本内置一个u-boot.ext文件(其实就是U盘BOOT根目录里其中一个u-boot-xxx.bin文件改名而来,可以手动修改其他的bin文件进行尝试),该文件会在启动时接管系统自带的u-boot引导程序,但是这种接管操作往往比较看运气,因为新的u-boot引导程序不一定适用于当前的dtb系统分区,也存在eMMC芯片无法识别等情况而出现引导失败,所以如果该系统无法正常启动,请尝试使用6.1.140版本,和debian-on-amlogic项目原理一样,只使用原有的u-boot引导程序进入U盘里的Linux系统,待成功启动后使用命令将系统烧录到eMMC芯片中。

操作步骤:

  1. 制作Linux系统启动盘
    准备一个U盘,格式化为FAT32格式,将下载好的镜像文件(.img,gz)通过Raspberry Pi Imager软件写入即可。

  2. 启动底包系统
    在MobaXterm软件使用reboot update命令重启进行升级,在断电重启的那一刻,插入写好Linux系统的U盘(切记不可提前插入U盘,否则Andorid系统会修改部分文件的权限,导致引导失败)
    adb升级命令

  3. 查看网络信息
    成功引导进入U盘的Linux系统后,有一个初始化流程需要操作:新建root账户密码 -> 创建普通用户及密码 -> 系统语言 -> 地区 -> 时区,按照自己喜好设置即可,执行完操作后,在命令行后使用nmcli dev status命令查询网络硬件设备状态,以下是我的情况,自带的网络硬件设备基本都无法正常使用,后续只能通过USB免驱的无线网卡进行网络连接了:
    网络硬件设备状态

  4. 烧录Linux系统
    使用armbian-install命令进行烧录操作,需要输入对应DTB文件的ID,等待烧录完成后使用poweroff命令关机。
    以下是我尝试过的DTB情况:

    ID SOC MODEL DTB Flash eMMC Normal Startup
    115 s905l UNT402A,M201-S,MiBox-4C,IP108H,B860AV2.1 meson-gxl-s905l3b-m302a.dtb YES YES
    119 s905l2 MGV2000,MGV3000,M301A,CM201-1,IP108H meson-gxl-s905l2-x7-5g.dtb YES NO
    121 s905l2 Wojia-TV-IPBS9505 meson-gxl-s905l2-ipbs9505.dtb YES NO
    122 s905l3 CM311-1,HG680-LC,M401A,UNT402A,CM201-1-6-YS meson-gxl-s905l2-x7-5g.dtb YES NO
    127 s905l3b M302A,M304A,CM201-1,CM211-1,CM311-1 meson-gxl-s905l3b-m302a.dtb YES YES
  5. 启动eMMC系统
    拔掉U盘,插入USB免驱无线网卡,重新上电,等待系统启动后,使用root用户登录,输入nmcli dev status命令再次查看网络硬件信息,可以看到有一个wlan0设备,使用nmtui命令连接WIFI即可,这样就能成功访问互联网。
    成功连接WIFI

  6. 更好系统源
    默认源为官方源,国内访问不方便,所以以下替换为清华源(对于armbian系统,有多个源文件需要修改):

    • 编辑/etc/apt/sources.list.d/armbian.list,将http://apt.armbian.com替换为以下链接
    1
    https://mirrors.tuna.tsinghua.edu.cn/armbian
    • 编辑/etc/apt/sources.list.d/debian.sources,将其中的内容替换为以下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Types: deb
    URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
    Suites: bookworm bookworm-updates bookworm-backports
    Components: main contrib non-free non-free-firmware
    Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    # Types: deb-src
    # URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
    # Suites: bookworm bookworm-updates bookworm-backports
    # Components: main contrib non-free non-free-firmware
    # Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

    # 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
    Types: deb
    URIs: https://security.debian.org/debian-security
    Suites: bookworm-security
    Components: main contrib non-free non-free-firmware
    Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

    # Types: deb-src
    # URIs: https://security.debian.org/debian-security
    # Suites: bookworm-security
    # Components: main contrib non-free non-free-firmware
    # Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
  7. 更新软件
    执行以下apt-get update && upgarde命令即可。

    可能会存在NO_PUBKEY报错,附上解决方法:Fails to install (Neptune 4 Plus) due to no pubkey available

  8. 将sudo授权给普通用户

    1
    usermod -aG sudo newusername # newusername 为步骤3中初始化流程创建的普通用户名
  9. 切换用户

    1
    su newusername
  10. 安装所需软件

    1
    sudo apt-get install git python3 python3-pip usbutils -y
  11. 设置pip3以及系统代理

    1
    pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple
    1
    pip3 config set install.trusted-host mirrors.aliyun.com
    1
    2
    3
    export http_proxy=http://ip:port

    export https_proxy=http://ip:port
  12. 安装kiauh

    1
    cd ~ && git clone https://github.com/dw-0/kiauh.git

最后附上一张成功进入系统的截图:
amlogic-s9xxx-armbian系统

debian-on-amlogic

操作步骤:

  1. 制作Linux系统启动盘
    准备一个U盘,格式化为FAT32格式,将下载好的镜像文件(.img,gz)通过Raspberry Pi Imager软件写入即可。

  2. 启动底包系统
    在MobaXterm软件使用reboot update命令重启进行升级,在断电重启的那一刻,插入写入好Linux系统的U盘(切记不可提前插入U盘,否则Andorid系统会修改部分文件的权限,导致引导失败)
    adb升级命令

  3. 烧录Linux系统
    成功引导进入U盘的Linux系统后,使用默认账户登录系统:用户名:root,密码:tvbox,进入命令行后使用./aml-multiboot-setup.sh命令修改系统引导为从U盘启动,否则断电重启后会优先启动原来的Android系统,而且U盘里的文件也会被Android系统篡改,U盘里的Linux系统基本就废了;由于我这款主板执行该命令时无法成功识别eMMC芯片,所以无法修改引导…但是可以执行后续步骤浅尝一下。

  4. 更换系统源
    该系统为debian,可参考清华源修改方法即可。

  5. 安装sudo工具

    1
    apt-get install sudo -y
  6. 新建普通用户

    1
    adduser newusername

    后续步骤请参考amlogic-s9xxx-armbian中的步骤8~12即可。

最后附上一张成功进入系统的截图:
debian-on-amlogic系统

WIFI测速

手里刚好有2种USB无线网卡模块:MT7601(150Mbps),RTL8192CU(300Mbps),在amlogic-s9xxx-armbian系统里都是免驱动,即插即用,以下是对他们进行网速测试,仅供参考。

2种USB无线网卡模块实物对比

安装Speedtest® CLI网络测速工具(仅适用于Ubuntu/Debian):

1
2
3
4
5
6
7
8
9
10
11
12
## If migrating from prior bintray install instructions please first...
# sudo rm /etc/apt/sources.list.d/speedtest.list
# sudo apt-get update
# sudo apt-get remove speedtest
## Other non-official binaries will conflict with Speedtest CLI
# Example how to remove using apt-get
# sudo apt-get remove speedtest-cli
sudo apt-get install curl

curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash

sudo apt-get install speedtest

MT7601在Linxu系统下的测速结果

RTL8192CU在Linxu系统下的测速结果

嗯…上述测速结果看不出来个所以然,所以我用Windows10又测试了一遍,结果就简单明了,仅供参考。

MT7601在Windows系统下的测速结果

RTL8192CU在Windows系统下的测速结果

总结

国内电视盒子由于三大运营商的存在,再加上第三方品牌,几乎是百花齐放,哪怕外观类似,型号一样,主板的硬件差异也是各种各样的,所以能不能成功烧录对应的Linux系统,还是有点运气的成分在里面,本人也是几经波折才勉强成功,而且板载的HDMI、网口和无线网卡均不能正常使用,还需通过USB免驱无线网卡接入互联网,并使用kiauh脚本安装了Klipper以及相关的网页Web服务,但是系统的稳定性还有待考验,不建议轻易尝试。

附上一张晶晨S905L(左)和全志H616(右)的使用sysbench cpu --cpu-max-prime=20000 run命令测试的单核性能对比图,仅供参考:
S905L与H616单核性能对比

特别鸣谢

CM201-1-YS刷入成功,有线无线都连接成功
CM211-1 使用6.1内核,DTB使用m302a成功写入EMMC,网络正常
如何重新U盘安装armbian
天津联通机顶盒 中兴ZXV10 B860AV2.1 U 成功刷入
CM201-1-6 YS S905L3 EMMC成功刷入,成功获取有线网络IP
[s905l3]性价比神机mgv3000全网首拆,刷armbian实现更多价值!
提取Android盒子(CM201-1 YS)dtb文件


魔百和电视盒子安装Klipper
https://dongxunz.github.io/2025/06/01/3D打印/魔百和电视盒子安装Klipper/
作者
dongxunz
发布于
2025年6月1日
许可协议