Skip to content

00575/amlogic-armbian

Repository files navigation

Armbian for Amlogic TV Boxes / 晶晨·岸边

Armbian(中文名:岸边) 系统是基于 Debian/Ubuntu 而构建的专门用于 ARM 芯片的轻量级 Linux 系统。Armbian 系统精益、干净,并且 100% 兼容并继承了 Debian/Ubuntu 系统的功能和丰富的软件生态,可以安全稳定地运行在 TF/SD/USB 及设备的 eMMC 里。

现在你可以将使用 Amlogic 芯片的电视盒子的安卓 TV 系统更换为 Armbian 系统,让他成为一台功能强大的服务器。本项目为 Amlogic s9xxx 电视盒子构建 Armbian 系统。支持写入 EMMC 中使用,支持更新内核等功能。支持的 Amlogic S9xxx 系列型号有 a311d, s922x, s905x3, s905x2, s905l3a, s912, s905d, s905x, s905w, s905 等,例如 Belink GT-King, Belink GT-King Pro, UGOOS AM6 Plus, X96-Max+, HK1-Box, H96-Max-X3, Phicomm-N1, Octopus-Planet, Fiberhome HG680P, ZTE B860H 等盒子。使用方法详见Armbian 使用文档

Armbian 固件说明

芯片 设备 可选内核 Armbian 固件
a311d Khadas-VIM3 全部 armbian_aml_a311d_*.img
s922x Beelink-GT-King, Beelink-GT-King-Pro, Ugoos-AM6-Plus, ODROID-N2 全部 armbian_aml_s922x_*.img
s905x3 X96-Max+, HK1-Box, H96-Max-X3, Ugoos-X3, TX3, X96-Air, A95XF3-Air, Tencent-Aurora-3Pro 全部 armbian_aml_s905x3_*.img
s905x2 X96Max-4G, X96Max-2G, MECOOL-KM3-4G 全部 armbian_aml_s905x2_*.img
s912 Tanix-TX8-Max, Tanix-TX9-Pro, Tanix-TX92, Nexbox-A1, Nexbox-A95X-A2, A95X, H96-Pro-Plus, VORKE-Z6-Plus, Mecool-M8S-PRO-L, Vontar-X92, T95Z-Plus, Octopus-Planet 全部 armbian_aml_s912_*.img
s905d MECOOL-KI-Pro, Phicomm-N1 全部 armbian_aml_s905d_*.img
s905x HG680P, B860H, TBee-Box, T95 全部 armbian_aml_s905x_*.img
s905w X96-Mini, TX3-Mini, W95 5.4.y/5.15.y armbian_aml_s905w_*.img
s905 Beelink-Mini-MX-2G, MXQ-Pro+4K 全部 armbian_aml_s905_*.img
s905l3a E900V22C/D, CM311-1a-YST, M401A, M411A, UNT403A, UNT413A 全部 armbian_aml_s905l3a_*.img

💡提示:当前 s905w 系列的盒子只支持使用 5.4.y/5.15.y 内核,其他型号的盒子可任选内核版本使用。当前 s905 的盒子只能在 TF/SD/USB 中使用,其他型号的盒子同时支持写入 EMMC 中使用。每个盒子的 dtb 和 u-boot 请查阅说明

安装及升级 Armbian 的相关说明

选择和你的盒子型号对应的 Armbian 固件,使用 Rufus 或者 balenaEtcher 等工具将固件写入 USB 里,然后把写好固件的 USB 插入盒子。

  • 安装 Armbian 到 EMMC

登录 Armbian 系统 (默认用户: root, 默认密码: 1234) → 输入命令:

armbian-install

默认将安装主线 u-boot,以便支持 5.10 及以上内核的使用。如果选择不安装,请在第 1 个输入参数中指定,如 armbian-install no

  • 更新 Armbian 内核

登录 Armbian 系统 → 输入命令:

# 使用 root 用户运行 (sudo -i)
# 如果不指定参数,将更新为最新版本。
armbian-update

如果当前目录下有成套的内核文件,将使用当前目录的内核进行更新(更新需要的 4 个内核文件是 header-xxx.tar.gz, boot-xxx.tar.gz, dtb-amlogic-xxx.tar.gz, modules-xxx.tar.gz。其他内核文件不需要,如果同时存在也不影响更新,系统可以准确识别需要的内核文件)。如果当前目录没有内核文件,将从服务器查询并下载同系列的最新内核进行更新。你也可以查询可选内核版本,进行指定版本更新:armbian-update 5.10.125。在设备支持的可选内核里可以自由更新,如从 5.10.125 内核更新为 5.15.50 内核。内核更新时,默认从 stable 内核版本分支下载,如果下载其他 版本分支 的内核,请在第 2 个参数中根据分支文件夹名称指定,如 armbian-update 5.10.125 dev 。默认不安装主线 u-boot(部分设备安装后可以获得更好的支持),如果选择安装,请在第 3 个输入参数中指定,如 armbian-update 5.10.125 stable yes

  • 安装常用软件

登录 Armbian 系统 → 输入命令:

armbian-software

使用 armbian-software -u 命令可以更新本地的软件中心列表。根据用户在 Issue 中的需求反馈,逐步整合常用软件,实现一键安装/更新/卸载等快捷操作。包括 docker 镜像桌面软件应用服务 等。详见更多说明

  • 修改 Armbian 配置

登录 Armbian 系统 → 输入命令:

armbian-config
  • 为 Armbian 创建 swap

如果你在使用 docker 等内存占用较大的应用时,觉得当前盒子的内存不够使用,可以创建 swap 虚拟内存分区,将磁盘空间的一定容量虚拟成内存来使用。下面命令输入参数的单位是 GB,默认为 1

登录 Armbian 系统 → 输入命令:

armbian-swap 1
  • 控制 LED 显示

登录 Armbian 系统 → 输入命令:

armbian-led

根据 LED 屏显示控制说明 进行调试。

  • 在 TF/SD/USB 中使用 Armbian

激活 TF/SD/USB 的剩余空间,请登录 Armbian 系统 → 输入命令:

armbian-tf

根据提示输入 e 将剩余空间扩容至当前系统分区和文件系统,输入 c 将创建新的第 3 分区。

或者手动分配剩余空间
# 1. 根据空间大小确认 TF/SD/USB 的名称,TF/SD 为 [ mmcblk ],USB 为[ sd ]
在命令行中: 输入 [ fdisk -l | grep "sd" ] 查看卡的名称

# 2. 获取剩余空间的起始值,复制并保存,下面使用(例如:5382144)
在命令行中: 输入 [ fdisk -l | grep "sd" | sed -n '$p' | awk '{print $3}' | xargs -i expr {} + 1 ] 得到剩余空间起始值

# 3. 开始分配未使用的空间(例如:sda、mmcblk0 或 mmcblk1)
在命令行中: 输入 [ fdisk /dev/sda ] 开始分配剩余空间
在命令行中: 输入 [ n ] 创建新分区
在命令行中: 输入 [ p ] 指定分区类型为主分区
在命令行中: 将分区号设置为 [ 3 ]
在命令行中: 分区的起始值,输入第二步得到的值 [ 5382144 ]
在命令行中: 分区的结束值,按 [ 回车 ] 使用默认值
在命令行中: 如果提示是否删除签名?[Y]es/[N]o: 输入 [ Y ]
在命令行中: 输入 [ t ] 指定分区类型
在命令行中: 输入分区编号 [ 3 ]
在命令行中: 指定分区类型为 Linux,输入代码 [ 83 ]
在命令行中: 输入 [ w ] 保存结果
在命令行中: 输入 [ reboot ] 重启

# 4. 重新启动后,格式化新分区
在命令行中: 输入 [ mkfs.ext4 -F -L SHARED /dev/sda3 ] 格式新分区

# 5. 为新分区设置挂载目录
在命令行中: 输入 [ mkdir -p /mnt/share ] 创建新分区的挂载目录
在命令行中: 输入 [ mount -t ext4 /dev/sda3 /mnt/share ] 进行挂载

# 6. 添加开机自动挂载
在命令行中: [ vi /etc/fstab ]
# 按 [ i ] 进入编译模式,将下面的代码复制,黏贴到文件的末尾处
/dev/sda3 /mnt/share ext4 defaults 0 0
# 按 [ esc ] 键退出,输入 [ :wq! ] 后按 [ 回车 ] 保存退出,结束设置。
  • 备份/还原 EMMC 原系统

支持在 TF/SD/USB 中对盒子的 EMMC 分区进行备份/恢复。建议您在全新的盒子里安装 Armbian 系统前,先对当前盒子自带的安卓 TV 系统进行备份,以便日后在恢复电视系统等情况下使用。

请从 TF/SD/USB 启动 Armbian 系统 → 输入命令:

armbian-ddbr

根据提示输入 b 进行系统备份,输入 r 进行系统恢复。

  • 在 Armbian 中编译内核

在 Armbian 中编译内核的用法详见 编译内核 说明文档。登录 Armbian 系统 → 输入命令:

armbian-kernel -update
armbian-kernel -d -k 5.10.125
  • 更多使用说明

将本地系统中的全部服务脚本更新到最新版本,可以登录 Armbian 系统 → 输入命令:

armbian-sync

在 Armbian 的使用中,一些可能遇到的常见问题详见 armbian-docs

本地化打包

  1. 克隆仓库到本地 git clone --depth 1 https://github.com/ophub/amlogic-s9xxx-armbian.git

  2. 安装必要的软件包(脚本仅在 x86_64 Ubuntu-20.04/22.04 下做过测试)

sudo apt-get update -y
sudo apt-get full-upgrade -y
# For Ubuntu-22.04
sudo apt-get install -y $(cat compile-kernel/tools/script/ubuntu2204-build-armbian-depends)
  1. 进入 ~/amlogic-s9xxx-armbian 根目录,在根目录下创建文件夹 build/output/images ,并上传 Armbian 镜像文件 ( 如:Armbian_21.11.0-trunk_Odroidn2_current_5.15.50.img ) 到 ~/amlogic-s9xxx-armbian/build/output/images 目录里。原版 Armbian 镜像文件名称中的发行版本号(如:21.11.0)和内核版本号(如:5.15.50)请保留,它将在重构后用作 Armbian 固件的名称。

  2. 进入 ~/amlogic-s9xxx-armbian 根目录,然后运行 sudo ./rebuild -d -b s905x3 -k 5.10.125 命令即可生成指定 soc 的 Armbian 镜像文件。生成的文件保存在 build/output/images 目录里。

  • 本地化打包参数说明

参数 含义 说明
-d Defaults 使用默认配置
-b BuildSoC 指定电视盒子型号,如 -b s905x3 . 多个型号使用 _ 进行连接,如 -b s905x3_s905d . 使用 all 表示全部型号。可以指定的型号有: a311d, s905x3, s905x2, s905l3a, s905x, s905w, s905d, s905d-ki, s905, s922x, s922x-n2, s912, s912-m8s 。说明:s922x-revas922x-gtking-pro-rev_as922x-n2s922x-odroid-n2s912-m8ss912-mecool-m8s-pro-ls905d-kis905d-mecool-ki-pros905x2-km3s905x2-mecool-km3
-k Kernel 指定 kernel 名称,如 -k 5.10.125 . 多个内核使用 _ 进行连接,如 -k 5.10.125_5.15.50
-a AutoKernel 设置是否自动采用同系列最新版本内核。当为 true 时,将自动在内核库中查找在 -k 中指定的内核如 5.10.125 的同系列是否有更新的版本,如有 5.10.125 之后的最新版本时,将自动更换为最新版。设置为 false 时将编译指定版本内核。默认值:true
-v Version 指定内核 版本分支 名称,如 -v stable 。指定的名称须与分支目录名称相同。默认使用 stable 分支版本。
-s Size 对固件的 ROOTFS 分区大小进行设置,默认大小为 2560MiB, 固件大小必须大于 2048MiB. 例如: -s 2560
-t RootfsType 对固件的 ROOTFS 分区的文件系统类型进行设置,默认为 ext4 类型,可选项为 ext4btrfs 类型。例如: -t btrfs
-n CustomName 设置固件名称中的签名部分。默认值为空。可根据需要添加签名如 _server_gnome_desktop_ophub 等,设置自定义签名时请勿包含空格。
  • sudo ./rebuild -d : 使用默认配置,对全部型号的电视盒子进行打包。
  • sudo ./rebuild -d -b s905x3 -k 5.10.125 : 推荐使用. 使用默认配置进行相关内核打包。
  • sudo ./rebuild -d -b s905x3_s905d -k 5.10.125_5.15.50 : 使用默认配置,进行多个内核同时打包。使用 _ 进行多内核参数连接。
  • sudo ./rebuild -d -b s905x3 -k 5.10.125 -s 2560 : 使用默认配置,指定一个内核,一个型号进行打包,固件大小设定为2560MiB。
  • sudo ./rebuild -d -b s905x3 -v dev -k 5.10.125 : 使用默认配置,指定型号,指定版本分支,指定内核进行打包。
  • sudo ./rebuild -d -b s905x3_s905d 使用默认配置,对多个型号的电视盒子进行全部内核打包, 使用 _ 进行多型号连接。
  • sudo ./rebuild -d -k 5.10.125_5.15.50 : 使用默认配置,指定多个内核,进行全部型号电视盒子进行打包, 内核包使用 _ 进行连接。
  • sudo ./rebuild -d -k 5.10.125_5.15.50 -a true : 使用默认配置,指定多个内核,进行全部型号电视盒子进行打包, 内核包使用 _ 进行连接。自动升级到同系列最新内核。
  • sudo ./rebuild -d -t btrfs -s 2560 -k 5.10.125 : 使用默认配置,设置文件系统为 btrfs 格式,分区大小为 2560MiB, 并指定内核为 5.10.125 ,对全部型号电视盒子进行打包。

使用 GitHub Actions 进行编译

  1. 关于 Workflows 文件的配置在 .yml 文件里。可以设置需要编译的盒子的 SOC 等参数,具体详见 Rebuild Armbian for amlogic s9xxx 节点。

  2. 全新编译:在 Actions 页面里选择 Build armbian ,根据 Armbian 官方支持的 OS 版本,可在 RELEASE 里选择 Ubuntu 系列:jammy,或者 Debian 系列:bullseye 等。点击 Run workflow 按钮即可编译。

  3. 再次编译:如果 Releases 中有已经编译好的 Armbian_.*-trunk_.*.img.gz 文件,你只是想再次制作其他不同 soc 的盒子,可以跳过 Armbian 源文件的编译,直接进行二次制作。在 Actions 页面中选择 Use Releases file to build armbian ,点击 Run workflow 按钮即可二次编译。

  4. 使用其他 Armbian 固件,如 Armbian 官方固件下载网站 armbian.tnahosting.net 提供的 odroidn2 固件,仅在流程控制文件 .yml 中引入本仓库的脚本进行 Armbian 重构,即可适配 Amlogic S9xxx 系列盒子的使用。在 Actions 页面里选择 Rebuild armbian ,输入 Armbian 的网络下载地址如 https://dl.armbian.com/*/Armbian_*.img.xz ,或者在流程控制文件 .yml 中通过 armbian_path 参数设定重构文件的加载路径。代码如下:

- name: Rebuild the Armbian for Amlogic s9xxx
  uses: ophub/amlogic-s9xxx-armbian@main
  with:
    build_target: armbian
    armbian_path: build/output/images/*.img
    armbian_soc: s905d_s905x3_s922x_s905x
    armbian_kernel: 5.10.125_5.15.50
  • GitHub Actions 输入参数说明

关于 GitHUB RELEASES_TOKEN 的相关设置可参考:RELEASES_TOKEN。相关参数与本地打包命令相对应,请参考上面的说明。

参数 默认值 说明
armbian_path no 设置原版 Armbian 文件的路径,支持使用当前工作流中的文件路径如 build/output/images/*.img ,也支持使用网络下载地址如: https://dl.armbian.com/*/Armbian_*.img.xz
armbian_soc s905d_s905x3 设置打包盒子的 SOC ,功能参考 -b
armbian_kernel 5.10.125_5.15.50 设置内核 版本,功能参考 -k
auto_kernel true 设置是否自动采用同系列最新版本内核,功能参考 -a
version_branch stable 指定内核 版本分支 名称,功能参考 -v
armbian_size 2560 设置固件 ROOTFS 分区的大小,功能参考 -s
armbian_fstype ext4 设置固件 ROOTFS 分区的文件系统类型,功能参考 -t
armbian_sign no 设置固件名称中的签名部分,功能参考 -n
  • GitHub Actions 输出变量说明

上传到 Releases 需要给仓库添加 GITHUB_TOKENGH_TOKEN 并设置 Workflow 读写权限,详见使用说明

参数 默认值 说明
${{ env.PACKAGED_OUTPUTPATH }} out 打包后的固件所在文件夹的路径
${{ env.PACKAGED_OUTPUTDATE }} 04.13.1058 打包日期(月.日.时分)
${{ env.PACKAGED_STATUS }} success 打包状态:success / failure

Armbian 固件默认信息

名称
默认 IP 从路由器获取 IP
默认账号 root
默认密码 1234

使用 GitHub Actions 编译内核

内核的编译方法详见 compile-kernel

- name: Compile the kernel for Amlogic s9xxx
  uses: ophub/amlogic-s9xxx-armbian@main
  with:
    build_target: kernel
    kernel_version: 5.10.125_5.15.50
    kernel_auto: true
    kernel_sign: -ophub