使用到的工具软件与固件下载地址:
https://41ws38-my.sharepoint.com/:f:/g/personal/ddf_41ws38_onmicrosoft_com/EhgM458YouBBshliWJhjcDcBAU-F5Mu6HTIU8PeKJHZnZA?e=ZnJZa6
不能下载,帖子下面评论。
准备工作
- 设备 / 硬件:CM311-1a YST 电视盒子 + 电源适配器 + 遥控器、网线、HDMI 线、USB 公对公刷机线、个人电脑 PC、显示屏(可以买视频采集卡代替显示屏)、USB 键盘、U 盘、线刷工具(螺丝刀 + 短接工具)。
- 工具软件:USB Burning Tool V2.2.0、开心电视助手 V4.0、U盘镜像写入工具:balenaEtcher。
- 固件:安卓卡刷或线刷包、Armbian 系统镜像。
卡刷方法
买来的 CM311-1A 是原生系统,刷成第三方安卓操作系统,使用更方便。刷入的安卓系统最好默认开启了 ADB(未开启,可参见附录一),默认获取了 root 更好(没有也可以)。
1.下载卡刷包
卡刷包一般都有下图所示的三个文件。
2.卡刷包移到 U 盘
下载好后的卡刷包无需解压,直接原封不动的移到 U 盘根目录(卡刷包有几个文件就都移到 U 盘根目录下)。
3. 刷入卡刷包
CM311-1A 关机,将 U 盘插入靠近网口的一侧。然后开机,同时不停的按遥控器左键(上下左右的左键),出现正在安装系统更新进度条时马上关机,然后迅速开机,这样刷机包就会继续刷下去直到刷机成功。成功后会自动开机进入电视安卓系统,这时就可以拔掉 U 盘了。
一定要看准,只有下面这个图片才是进入到了卡刷模式,如果没有进入到卡刷模式,多试几次。第一次看到下面的图片时,马上关闭电源开关,然后迅速打开电源开关,第二次看到下面的图片时,耐心等待进度条走完就可以了。
4. 进系统正常使用
卡刷完成,会自动进入系统。如果要刷 Armbian 系统,请记下机顶盒的 IP 地址,用于从 U 盘启动(可选,也可使用附录一其他方法使机顶盒从 U 盘启动)。
线刷方法
一般情况下,插上 U 盘,重新插入电源,如果可以从 USB 中启动,只要重新安装即可,多试几次。
如果接入显示器后,屏幕是黑屏状态,且无法从 USB 启动,就需要进行盒子的短接初始化了。先将盒子恢复到原来的安卓系统,再重新刷入 Armbian 系统。首先下载 amlogic_usb_burning_tool 系统恢复工具并安装好。准备一条 USB 双公头数据线,准备一个曲别针。在盒子的主板上确认短接点(参见附录二)的位置,下载盒子对应的 Android TV 固件包。
amlogic_usb_burning_tool 系统恢复工具下载地址:https://github.com/ophub/kernel/releases/tag/tools
Android TV 固件包下载地址:https://github.com/ophub/kernel/releases/tag/tools
1. USB Burning Tool
打开刷机软件 USB Burning Tool。
文件 → 导入烧录包
[ 选择 ]:擦除 flash
[ 选择 ]:擦除 bootloader
点击 [ 开始 ] 按钮。
刷机时,线刷包文件名不要出现中文,否则线刷过程中会出现各种错误。
2. 电源适配器插电 + 短接
电源适配器插电,盒子接上电源线,不打开电源开关(有的盒子不接电源线也可以),
使用 [ 曲别针 ] 将盒子主板上的 [ 两个短接点进行短接连接 ],
并同时使用 [ USB 双公头数据线 ] 将 [ 盒子 ] 与 [ 电脑 ] 进行连接。
两选三接,两选是擦除 flash、擦除 bootloader;三接是插电源线、HDMI 免拆神器、USB 双公头数据线。
3. 开始线刷
打开电源开关。
当看到 [ 进度条开始走动 ] 后,拿走曲别针,不再短接;
当看到 [ 进度条 100% ],则刷机完成,盒子已经恢复成 Android TV 系统。
如果进度条没有走动,可以尝试插入电源。通长情况下不用电源支持供电,只 USB 双公头的供电即可满足刷机要求。
如果以上某个步骤失败,就再来一次,直至成功。
4. 进入 Android TV 系统
点击 [ 停止 ] 按钮,关闭 USB Burning Tool 软件,
然后拔掉 [ 盒子 ] 和 [ 电脑 ] 之间的 [ USB 双公头数据线 ] 。
关闭电源开关,并再次通电重启盒子 CM311-1A。
运行 Armbian 系统
一、制作 Armbian 启动盘
1. 下载自己盒子型号对应的固件
CM311-1A 选择文件名含有 s905l3a 的固件。( Jammy 是 Ubuntu 22.04 的代号;bullseye 是 Debian 11 的代号)
Armbian 系统下载地址:https://github.com/ophub/amlogic-s9xxx-armbian
2. 使用 balenaEtcher 将 Armbian 写到 U 盘
下载好后的压缩包解压,然后使用 balenaEtcher 将 Armbian 写到 U 盘。
balenaEtcher 下载地址:https://www.balena.io/etcher
二、机顶盒运行 Armbian 系统
1. 把制作好的启动盘插到机顶盒 USB 接口上
2. 修改机顶盒从 U 盘启动
使用开心电视助手,远程连接机顶盒。
点击【 调试 】 → 【 从 U 盘 / SD 卡启 】即可。(大佬可参见附录一,查看其他方式来设置从 U 盘启动。)
开心盒子助手下载地址:http://www.kaixindianshi.com/thread-2241-1-1.html
3. 进入 U 盘的 armbian 系统
然后显示器会出现突然花屏,然后再进入跑开机命令的页面,即是成功进入 U 盘的 armbian 系统。
4. 刷入系统到 eMMC(可选)
eMMC 可笼统的理解为硬盘,把操作系统写进 CM311-1A 的硬盘上,覆盖了原系统(实际上此表述不正确)。如果需要机顶盒的安卓系统的话,可以选择不刷入。(双系统:第三方系统刷在 U 盘里面,不插 u 盘启动机顶盒系统,插上 u 盘启动 u 盘系统,不会变砖。)
以下为刷入 eMMC 教程!!!
第三方系统直接写入 emmc,可以脱离 u 盘运行,有变砖风险,变砖后需要线刷恢复。建议备份现在的安卓系统。
等待差不多两分钟后,在路由器上查看机顶盒的 IP。使用 SSH 远程连接 Linux 系统,默认账号 root、密码 1234。然后需要你进行修改密码,输入两遍密码后,直接断开连接。
重新登录 Armbian 系统 → 输入命令:
armbian-install
这里首先要选择盒子型号,这里一定要看仔细,选择 CM311A-YST 版本,因为不同版本的 ARMBIAN 固件序号会有微调,在这一版本为305,就是 s905l3a 的选项。然后选择系统主要文件的存储格式,其中 1 为 ext4 格式、2 为 btrfs 格式,我这里选择了 ext4(常见),输入1。之后耐心等待写入完成。
完成后会有写入成功的提示文字。此时可以关闭电源,拔下 U 盘,并再次通电重启盒子。
最后一步很重要!!!(2022.11.26 的 armbian 不会出现此情况了)刷完系统到 EMMC 后的第一次盒子断电拔 U 盘重启会出现黑屏现象,别着急,第二次给盒子断电、插回 U 盘、通电操作盒子又会正常引导系统。系统引导完成后(盒子指示灯变绿),第三次给盒子断电拔下 U 盘再插电,盒子就能正常从 EMMC 引导并进入 armbian 系统了。
5. 网络设置(可选)
5.1 采用网线
网络配置文件在 /etc/network/interfaces
文件中。默认采用 DHCP 动态分配 IP 的策略(方法1),由 Armbian 所接入的网络路由器自动分配 IP。如果想改为静态 IP,可以把设置方法 1 禁用或删除,启用方法 2 的静态 IP 设置。
方法 1 参考:由 DHCP 动态分配 IP 地址
source /etc/network/interfaces.d/*
auto eth0
iface eth0 inet dhcp
方法 2 参考:手动设置静态 IP 地址
source /etc/network/interfaces.d/*
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
5.2 采用无线 WIFI
需要购买无线 USB 网卡,编译安装驱动。
5.2.1 通过 nmcli 连上 WIFI
nmcli
是一个命令行工具,用于控制 NetworkManager;还可以用来显示网络设备状态;创建、编辑、开启/关闭和删除网络连接 。Armbian 系统默认自带 nmcli
, 这里不介绍安装方法。
通过 nmcli
直接连上 WIFI 后,系统会记录已保存的 AP。下面是具体的连接方法:
- 查看设备状态
这里 wlp2s0 类型为 wifi,表示我们的无线网卡,状态为 disconnected,还没有连上 WIFI 热点。$ nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet connected Wired connection 1 wlp2s0 wifi disconnected -- lo loopback unmanaged --
- 检查 radio
$ nmcli radio WIFI-HW WIFI WWAN-HW WWAN enabled enabled enabled enabled
- 查看附近无线网络信号
第 5 列表示信号情况,信号越好的 AP,会越靠前。$ nmcli dev wifi list SSID MODE CHAN RATE SIGNAL BARS SECURITY MYSSID Infra 11 54 Mbit/s 100 ▂▄▆█ WPA2 MYSSID Infra 132 54 Mbit/s 100 ▂▄▆█ WPA2 SOMEOTHERSSID Infra 52 54 Mbit/s 49 ▂▄__ WPA2 MYSSID Infra 149 54 Mbit/s 45 ▂▄__ WPA2 MYSSID Infra 11 54 Mbit/s 42 ▂▄__ WPA2 SOMEOTHERSSID Infra 1 54 Mbit/s 27 ▂___ WPA2
- 连上 AP 热点
- 如果是无密码的 WIFI, 执行以下连接命令,SSID 就是我们所说的 WIFI 名。
$ nmcli device wifi connect <SSID|BSSID>
- 加密的 AP,使用以下命令。
执行命令没有报错后,再 Ping 下百度是否可达,能 Ping 通就表明已经连上 AP,可以正常上网。$ nmcli device wifi connect <SSID|BSSID> password <password>
- 如果是无密码的 WIFI, 执行以下连接命令,SSID 就是我们所说的 WIFI 名。
5.2.2 更新 WIFI 系统配置,连上 WIFI
更新 /etc/network/interfaces 文件
- 备份 interface :
cd /etc/network && cp interfaces interfaces.bak
- 更新 interface:
更新 /etc/wpa_supplicant/wpa_supplicant.conf# armbian-config created source /etc/network/interfaces.d/* # Local loopback auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
- 备份 wpa 配置文件:
cd /etc/wpa_supplicant/ && cp wpa_supplicant.conf wpa_supplicant.conf.bak
- 更新 wpa_supplicant.conf:
network={ ssid="网络 ID" psk="密码" }
- 重启网络,ping 百度试下是否连通,正常应该可以成功连网。
5.2.3 通过其他方法,连上 WIFI
Armbian 配置工具:终端中输入 armbian-config
。
网络管理 TUI:终端中输入 nmtui
。
使用 armbian-config 时,请先连接有线网络,因为 armbian-config 有几处需要通过网络获取一些数据。
常见问题
收录一些刷入 armbian 系统的问题及解决方法。
1. 如何恢复原安卓 TV 系统
通常使用 armbian-ddbr 备份恢复,或者使用 Amlogic 刷机工具恢复原安卓 TV 系统。
方法一:使用 armbian-ddbr 备份恢复
建议在全新的盒子里安装 Armbian 系统前,先对当前盒子自带的原安卓 TV 系统进行备份,以便在需要恢复系统时使用。请从 TF/SD/USB
启动 Armbian 系统,输入 armbian-ddbr
命令,然后根据提示输入 b
进行系统备份,备份文件的存放路径为 /ddbr/BACKUP-arm-64-emmc.img.gz
,请下载保存。在需要恢复安卓 TV 系统时,将之前备份的文件上传至 TF/SD/USB
设备的相同路径下,输入 armbian-ddbr
命令,然后根据提示输入 r
进行系统恢复。
方法二:使用 Amlogic 刷机工具恢复
参见线刷方法。
注意:方法一仅支持刷入的系统为 O 大( ophub )的 Armbian 系统。
2. SSH 连接不上解决方法
SSH 连接不上、写入 EMMC 后,22 端口默认关闭了、网卡不工作,几秒后就断开、SSH 运行一段时间后无法登录等。
amlogic-s9xxx-armbian/build-armbian/common-files/rootfs/etc/custom_service/start_service.sh
在 /etc/custom_service/start_service.sh 中,把 26、27 两行反向修改,有人是删除两行的 # 可以工作正常,有人是加上 # 注释了正常。我是删除 # 正常。这个问题是因为启动时没有生成 sshd 目录,但各盒子现象不一样。
# [[ -d "/var/run/sshd" ]] || mkdir -p -m0755 /var/run/sshd
# [[ -f "/etc/init.d/ssh" ]] && /etc/init.d/ssh start 2>/dev/null
# 这个脚本的作用是在启动的最后一步,会自动重启下 ssh 服务,确保 ssh 服务起来。(不放心可以添加以下命令)
[[ -f "/etc/init.d/ssh" ]] && sleep 5 && /etc/init.d/ssh restart 2>/dev/null
附录
附录一、设置盒子从 USB / TF / SD 中启动
方法一:命令版
- 把刷好固件的 USB/TF/SD 插入盒子。
- 开启开发者模式:设置 → 关于本机 → 版本号,在版本号上快速连击 5 次鼠标左键, 看到系统显示
开启开发者模式
的提示。 - 开启 USB 调试模式:系统 → 高级选选 → 开发者选项(设置
开启USB调试
为启用)。启用ADB
调试。 - 安装 ADB 工具:下载 adb 并解压,将
adb.exe
,AdbWinApi.dll
,AdbWinUsbApi.dll
三个文件拷⻉到c://windows/
目录下的system32
和syswow64
两个文件夹内,然后打开cmd
命令面板,使用adb --version
命令,如果有显示就表示可以使用了。 - 进入
cmd
命令模式。输入adb connect 192.168.1.102
命令(其中的 ip 根据你的盒子修改,可以到盒子所接入的路由器设备里查看),如果链接成功会显示connected to 192.168.1.102:5555
。 - 输入
adb shell reboot update
命令,盒子将重启并从你插入的 USB/TF/SD 启动,从浏览器访问固件的 IP 地址,或者 SSH 访问即可进入固件。
adb 下载地址:https://github.com/ophub/kernel/releases/tag/tools 或者
adb 下载地址:https://developer.android.google.cn/studio/releases/platform-tools?hl=zh-cn#downloads
方法二:Root 版
刷入的卡刷包带 ROOT。安装 Reboot to LibreELEC 1.1 Apk 到系统里面打开就会进入 recovery 模式。recovery 模式后系统会自动重启进入 u 盘启动。
Reboot to LibreELEC APK 下载地址:https://apkdownloadforandroid.com/download/1000534/2
方法三:软件版
开心电视助手。参见机顶盒运行 Armbian 系统这小节。
附录二、短接方法
拆机找到 4R32(就在主板四周边缘找),用导电体(如:镊子、钳子、曲别针、剪刀等)连接这两个点。也可以使用免拆机神器,插到 HDMI 接口上。