我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CM311-1A 卡刷 + 线刷、刷安卓与 Armbian 教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CM311-1A 卡刷 + 线刷、刷安卓与 Armbian 教程

使用到的工具软件与固件下载地址:
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 eth0iface eth0 inet dhcp

方法 2 参考:手动设置静态 IP 地址

source /etc/network/interfaces.d/*auto eth0allow-hotplug eth0iface eth0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 192.168.1.1

5.2 采用无线 WIFI

需要购买无线 USB 网卡,编译安装驱动。

5.2.1 通过 nmcli 连上 WIFI

nmcli 是一个命令行工具,用于控制 NetworkManager;还可以用来显示网络设备状态;创建、编辑、开启/关闭和删除网络连接 。Armbian 系统默认自带 nmcli, 这里不介绍安装方法。
通过 nmcli 直接连上 WIFI 后,系统会记录已保存的 AP。下面是具体的连接方法:

  1. 查看设备状态
    这里 wlp2s0 类型为 wifi,表示我们的无线网卡,状态为 disconnected,还没有连上 WIFI 热点。
    $ nmcli device statusDEVICE  TYPE      STATE         CONNECTIONenp1s0  ethernet  connected     Wired connection 1wlp2s0  wifi      disconnected  --lo      loopback  unmanaged     --
  2. 检查 radio
    $ nmcli radioWIFI-HW  WIFI     WWAN-HW  WWANenabled  enabled  enabled  enabled
  3. 查看附近无线网络信号
    第 5 列表示信号情况,信号越好的 AP,会越靠前。
    $ nmcli dev wifi listSSID                  MODE   CHAN  RATE       SIGNAL  BARS  SECURITYMYSSID         Infra  11    54 Mbit/s  100     ▂▄▆█  WPA2MYSSID         Infra  132   54 Mbit/s  100     ▂▄▆█  WPA2SOMEOTHERSSID  Infra  52    54 Mbit/s  49      ▂▄__  WPA2MYSSID         Infra  149   54 Mbit/s  45      ▂▄__  WPA2MYSSID         Infra  11    54 Mbit/s  42      ▂▄__  WPA2SOMEOTHERSSID  Infra  1     54 Mbit/s  27      ▂___  WPA2
  4. 连上 AP 热点
    • 如果是无密码的 WIFI, 执行以下连接命令,SSID 就是我们所说的 WIFI 名。
      $ nmcli device wifi connect 
    • 加密的 AP,使用以下命令。
      $ nmcli device wifi connect  password 
      执行命令没有报错后,再 Ping 下百度是否可达,能 Ping 通就表明已经连上 AP,可以正常上网。
5.2.2 更新 WIFI 系统配置,连上 WIFI

更新 /etc/network/interfaces 文件

  1. 备份 interface : cd /etc/network && cp interfaces interfaces.bak
  2. 更新 interface:
    # armbian-config createdsource /etc/network/interfaces.d/*# Local loopbackauto loiface lo inet loopbackauto eth0allow-hotplug eth0iface eth0 inet dhcpallow-hotplug wlan0iface wlan0 inet manualwpa-roam /etc/wpa_supplicant/wpa_supplicant.confiface default inet dhcp
    更新 /etc/wpa_supplicant/wpa_supplicant.conf
  3. 备份 wpa 配置文件: cd /etc/wpa_supplicant/ && cp wpa_supplicant.conf wpa_supplicant.conf.bak
  4. 更新 wpa_supplicant.conf:
    network={ssid="网络 ID"psk="密码"}
  5. 重启网络,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.exeAdbWinApi.dllAdbWinUsbApi.dll 三个文件拷⻉到 c://windows/ 目录下的 system32syswow64 两个文件夹内,然后打开 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 接口上。

来源地址:https://blog.csdn.net/weixin_46090266/article/details/128334147

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CM311-1A 卡刷 + 线刷、刷安卓与 Armbian 教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录