上官泰
2025-8-13 20:32:48
摘要
介绍 Armbian 系统的基本知识;选择 Linux 内核和发行版本;下载和烧录系统镜像;开启电视盒子 ADB 功能;获取分区表和备份镜像;从 U 盘启动和安装 Armbian 系统;解决启动、安装、恢复系统过程中的问题;进行初次配置;说明 E900V22C TF 卡相关元器件的参数。
背景说明
Armbian 系统是基于 Debian/Ubuntu 而构建的专门用于 ARM 芯片的轻量级 Linux 系统。兼容并继承了 Debian/Ubuntu 系统的功能和丰富的软件生态,可以安全稳定地运行在 TF/SD/USB 及设备的 eMMC 里。
Armbian 系统支持在使用 TF/SD/USB 启动时对电视盒子的 eMMC 分区进行备份和恢复。
Ubuntu 软件包更新速度快,主流版本为 Jammy(22.04) 和 Noble(24.04)。
Debian 软件包相对更稳定,主流版本为 Bullseye(11) 和 Bookworm(12)。
操作步骤
烧录 Armbian 系统镜像
选择 Linux 内核
查看 Linux 内核的支持状态,访问 The Linux Kernel Archives 网页。
查看 Armbian 系统可用的 Linux 内核,访问 kernel/README.cn.md at main · ophub/kernel 网页。
查看 Armbian 发布的 Amlogic S9xx 电视盒子的服务器镜像,访问 Amlogic S9xx TV Box - Armbian 网页。
综合以上三个网页的信息,建议选择版本为 5.15 或 6.12 的内核。
下载 Armbian 镜像
前往发布 S9xxx 电视盒子 Armbian 系统的 Releases · ophub/amlogic-s9xxx-armbian 网页。
找到 Armbian_jammy 发行版,点击 Assets 。
搜索基于 amlogic_S905l3a 的系统镜像文件。
下载需要的系统镜像文件。建议使用加速源下载以加快下载速度。
烧录 Armbian 镜像
在电脑插入一个大于 8GB 的 U 盘。
将下载完成后的 .img.gz 格式的镜像文件解压为 .img 格式。
下载并打开 Rufus 软件。
在 设备 中选择要烧录镜像的目标 U 盘。
在 引导类型选择 中选择 镜像文件 ,点击 选择 按钮。
在弹出的 打开 对话框中选择要烧录的 .img 格式的镜像文件,点击 打开 按钮。
点击 开始 按钮,等待 Armbian 系统镜像烧录完成。
获取分区表并备份分区镜像
开启电视盒子 ADB 功能
将电源线和网线插入电视盒子,安装并打开 电视应用管家 软件。
选择 实验室 后按确认键。
选择 永久开启无线adb 或 临时开启无线adb 后按确认键。
通过 ADB 连接电视盒子
在电视盒子的 ADB 功能开启的情况下,在电脑打开 开心电视助手 软件。
在软件中点击 首页 面板,在 登录 功能区中的 设备 IP 地址 后的输入框中输入在路由器中查到的电视盒子的 IP 地址,端口保持默认,点击 连接 按钮。
获取安卓 TV 系统分区表
在电脑已通过 ADB 连接到电视盒子的情况下,在开心电视助手软件中点击 首页 面板,在 常用操作 功能区中点击 AdbShell 按钮,在弹出的窗口中执行命令。
显示块设备目录的目录内容列表以查看分区信息,执行 ls -al|grep 179|sort -t6 /dev/block 命令。块设备分区中需要关注的内容为 主设备号 和 子设备号 以及 分区名称 。其中的 grep 命令用于筛选匹配指定正则表达式的行;其中的 sort 命令用于对文本中所有的行进行排序。
如果需要进一步查看系统信息中的分区信息,可以执行以下命令。
对于 MTD 设备查看分区信息,执行 cat /proc/mtd 命令。信息项为 设备编号 、分区大小 、擦除大小 和 分区名称 。
对于 eMMC 设备查看分区信息,执行 cat /proc/emmc 命令。信息项为 设备编号 、分区大小 、擦除大小 和 分区名称 。
对于 MMC 设备查看分区信息,执行 cat /proc/partitions 命令。信息项为 主设备号 、子设备号 、分区大小 和 分区编号 。
如果需要查看 分区编号 和 分区名称 之间的对应关系,可以执行 ls -al /dev/block/by-name 命令。
备份电视盒子分区镜像
通过软件插件备份分区镜像。在电脑已通过 ADB 连接到电视盒子的情况下,在开心电视助手软件中点击 插件 面板,在 晶晨芯片 插件列表中双击 备份固件 插件。备份完成后,固件存放在开心电视助手软件根目录下的backup目录中。
通过手动操作备份分区镜像。其中 data 分区和 cache 分区无需备份。
在开心电视助手软件中点击 首页 面板,在 常用操作 功能区中点击 AdbShell 按钮,根据获取的分区表信息,在弹出的窗口中执行以下命令。dd if=/dev/block/bootloader of=/sdcard/backup/bootloader.imgdd if=/dev/block/reserved of=/sdcard/backup/reserved.imgdd if=/dev/block/env of=/sdcard/backup/env.imgdd if=/dev/block/logo of=/sdcard/backup/logo.imgdd if=/dev/block/recovery of=/sdcard/backup/recovery.imgdd if=/dev/block/misc of=/sdcard/backup/misc.imgdd if=/dev/block/dtbo of=/sdcard/backup/dtbo.imgdd if=/dev/block/cri_data of=/sdcard/backup/cri_data.imgdd if=/dev/block/param of=/sdcard/backup/param.imgdd if=/dev/block/boot of=/sdcard/backup/boot.imgdd if=/dev/block/rsv of=/sdcard/backup/rsv.imgdd if=/dev/block/metadata of=/sdcard/backup/metadata.imgdd if=/dev/block/vbmeta of=/sdcard/backup/vbmeta.imgdd if=/dev/block/tee of=/sdcard/backup/tee.imgdd if=/dev/block/odm of=/sdcard/backup/odm.imgdd if=/dev/block/product of=/sdcard/backup/product.imgdd if=/dev/block/vendor | busybox gzip -4 > /sdcard/backup/vendor.imgdd if=/dev/block/system | busybox gzip -4 > /sdcard/backup/system.img 复制代码 在开心电视助手软件中点击 管理 面板,在 下载文件到本地 功能区中,在 文件保存位置 后的输入框中,输入电脑保存电视盒子分区镜像的位置,在 要下载的文件 后的输入框中,输入 /sdcard/backup 目录,最后点击 下载 按钮。
获取分区表并备份全盘镜像
在电脑已通过 ADB 连接到电视盒子的情况下,将烧录好系统镜像的 U 盘插入电视盒子靠近电源接口侧的 USB 接口。
在开心电视助手软件中点击 调试 面板,在 晶晨芯片 功能区中点击 从U盘/SD卡启动 按钮。
通过 SSH 登录 Armbian 系统。打开终端连接工具软件,协议 选择 SSH2 ,主机名 为在路由器中查到的电视盒子的 IP 地址,端口 为默认的 22 ,点击 连接 按钮 。默认用户为 root,默认密码为 1234。
连接并登录电视盒子的 Armbian 系统后,重新设置 root 用户的密码,选择默认的系统命令 shell 为 bash ,按 Ctrl + C 键跳过创建新用户账户。
获取安卓 TV 系统分区信息,包括 DTB 分区信息和 eMMC 分区信息,执行 ampart /dev/mmcblk2 --mode webreport 2>/dev/null 命令。复制输出的链接到浏览器打开即可查看详细分区信息。
备份 eMMC 全盘镜像,执行 armbian-ddbr 命令。在之后的选项选择中输入 b 后按 Enter 键以备份系统镜像,等待电视盒子的安卓 TV 系统备份完成。
通过 SFTP 登录 Armbian 系统。打开文件传输工具软件,协议 选择 SFTP ,主机名 为在路由器中查到的电视盒子的 IP 地址,端口 为默认的 22 ,点击 连接 按钮 。用户名为默认用户 root,密码为新设置的密码。
连接并登录电视盒子的 Armbian 系统后,将 ddbr 目录下的 BACKUP-arm-64-emmc.img.gz 文件下载到电脑保存电视盒子 eMMC 镜像的位置。
写入 Armbian 系统到电视盒子
通过 SSH 连接并登录 Armbian 系统。
安装 Armbian 系统到电视盒子的 eMMC 块设备,执行 armbian-install 命令。在之后的选项选择中,输入 304 后按 Enter 键以选择对应的 DTB 文件,输入 1 后按 Enter 键以选择 ext4 文件系统类型,在此之后开始安装,等待安装完成。
如果系统镜像写入 eMMC 块设备时出现错误,则需要通过修改 dtb 文件来调整 eMMC 的工作速度和频率。
在 eMMC 中存在安卓 TV 系统时出现的错误信息。[ STEPS ] Successfully partitioned internal eMMC with amaprt.[ INFO ] Start create MBR and partittion.Error: Input/output error during write on /dev/mmcblk2Error: /dev/mmcblk2: unrecognised disk labelError: /dev/mmcblk2: unrecognised disk label[ ERROR ] Failed to partition internal eMMC using [ parted ]. 复制代码 在 eMMC 中存在 Armbian 系统时出现的错误信息。[ INFO ] Delete the existing [ 2 ] partitions.Error: Input/output error during write on /dev/mmcblk2[ ERROR ] Failed to delete partition [ 1 ]. Please try again. 复制代码
安装依赖,执行 apt-get install -y device-tree-compiler 命令。
切换到 Amlogic 芯片的 dtb 文件所在目录,执行 cd /boot/dtb/amlogic 命令。
反编译 dtb 文件(由 dtb 文件生成 dts 源码),执行下列命令。dtc -I dtb -O dts -o meson-g12a-s905l3a-e900v22c.dts meson-g12a-s905l3a-e900v22c.dtb 复制代码 通过 SFTP 连接并登录 Armbian 系统后,将 /boot/dtb/amlogic 目录下的 meson-g12a-s905l3a-e900v22c.dts 文件下载到电脑保存电视盒子相关文件的位置。
降低 MMC 块设备的工作频率。打开 meson-g12a-s905l3a-e900v22c.dts 文件,以 max-frequency 为关键词定位 MMC 块设备参数配置所在位置。
如果初次写入失败,将 mmc@ffe07000 中的 max-frequency 参数的值 0xbebc200 修改为 mmc@ffe05000 中的 max-frequency 参数的值 0x2faf080。
如果依旧写入失败,将 mmc@ffe07000 中的 max-frequency 参数的值 0x2faf080 修改为 mmc@ffe03000 中的 max-frequency 参数的值 0x5f5e100。
通过 SFTP 连接并登录 Armbian 系统后,将修改后的 meson-g12a-s905l3a-e900v22c.dts 文件上传到 /boot/dtb/amlogic 目录下。
编译 dts 文件(由 dts 源码生成 dtb 文件),执行下列命令。dtc -I dts -O dtb -o meson-g12a-s905l3a-e900v22c.dtb meson-g12a-s905l3a-e900v22c.dts 复制代码 保存数据并重启 Armbian 系统,执行 sync && reboot 命令。
通过 SSH 连接并登录 Armbian 系统后,执行 armbian-install 命令。
配置 Armbian 系统
更换 Armbian 系统的软件源,执行 armbian-apt 命令。在之后的选项选择中输入 1 后按 Enter 键以切换软件源为清华源。
更新 Armbian 系统的软件列表信息,执行 apt update 命令。
注意事项
对于已安装 Armbian 系统后无法从 U盘/TF/SD 启动的问题。
进入 eMMC 中的 Armbian 系统的 /boot 目录。
修改 boot.scr 文件的文件名。如改为 boot.scr.bak。
插入 U盘/TF/SD 后重新启动 Armbian 系统。
对于系统恢复时写入 eMMC 的速度极低的问题。
执行 armbian-install 命令以测试对 eMMC 块设备的写入是否正常。
如果写入出现错误,修改 dtb 文件。
重新执行 armbian-ddbr 命令和 r 选项以恢复系统。
对于型号为 E900V22C 的电视盒子,电路板上留有 TF 卡槽及其相关元器件的空位。补全 TF 卡相关电路的元器件后可以使用 TF 卡功能。其中的 33Ω 电阻和 4.7kΩ 电阻以及 10pF 电容为必须项。
一般 USB2.0 接口的 U 盘的实际写入速度上限为 10MB/s 左右,实际读取速度上限为 20MB/s 左右。在已加装 TF 卡座的情况下建议使用 TF 卡烧录镜像。
参考资料
E900V22C/D 等 S905L3A 机顶盒教程汇总
Armbian 说明 · ophub/amlogic-s9xxx-armbian
Armbian 构建及使用方法 · ophub/amlogic-s9xxx-armbian
查看MTD,EMMC,MMC三种设备的分区 | 码农网
Memory Technology Device (MTD) Subsystem for Linux.
Linux 系统目录结构 | 菜鸟教程
Linux命令手册-中文命令详解
版权声明:本文为「梦幻之心星」原创,依据 CC BY-NC-SA 4.0 许可证进行授权,转载请附上原文出处链接及本声明。
博客园地址:https://www.cnblogs.com/Sky-seeker
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除
相关推荐