查看英文说明 | View English description
Armbian(中文名:岸边) 系统是基于 Debian/Ubuntu 而构建的专门用于 ARM 芯片的轻量级 Linux 系统。Armbian 系统精益、干净,并且 100% 兼容并继承了 Debian/Ubuntu 系统的功能和丰富的软件生态,可以安全稳定地运行在 TF/SD/USB 及设备的 eMMC 里。
现在你可以将使用 Amlogic 芯片的电视盒子的安卓 TV 系统更换为 Armbian 系统,让他成为一台功能强大的服务器。本项目为 Amlogic s9xxx 和 Rockchip 盒子构建 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
等盒子。支持的 Rockship 有 贝壳云
,我家云
,电犀牛R66S/R68S
,瑞莎5B
等。使用方法详见Armbian 使用文档。
最新的 Armbian 固件可以在 Releases 中下载。欢迎 Fork
并进行个性化定制。如果对你有用,可以点仓库右上角的 Star
表示支持。
芯片 | 设备 | 可选内核 | 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, X96-Max+_A100, A95XF3-Air, Tencent-Aurora-3Pro(s905x3-b), X96-Max+Q1 | 全部 | armbian_aml_s905x3_*.img |
s905x2 | X96Max-4G, X96Max-2G, MECOOL-KM3-4G, Tanix-Tx5-Max, A95X-F2 | 全部 | armbian_aml_s905x2_*.img |
s912 | Tanix-TX8-Max, Tanix-TX9-Pro(3G), Tanix-TX9-Pro(2G), Tanix-TX92, Nexbox-A1, Nexbox-A95X-A2, A95X, H96-Pro-Plus, VORKE-Z6-Plus, Mecool-M8S-PRO-L, Vontar-X92, T95Z-Plus, Octopus-Planet, Phicomm-T1 | 全部 | armbian_aml_s912_*.img |
s905d | MECOOL-KI-Pro, Phicomm-N1 | 全部 | armbian_aml_s905d_*.img |
s905x | HG680P, B860H, TBee-Box, T95, TX9, Q96-mini(s905l-b) | 全部 | 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, Sunvell-T95M, MXQ-Pro+4K | 全部 | armbian_aml_s905_*.img |
s905l3a | E900V22C/D, CM311-1a-YST, M401A, M411A, UNT403A, UNT413A, ZTE-B863AV3.2-M | 全部 | armbian_aml_s905l3a_*.img |
s905l3b | M302A/M304A | 全部 | armbian_aml_s905l2_*.img |
s905l2/3 | MGV2000, Wojia-TV-IPBS9505, CM311-1(s905l3) | 全部 | armbian_aml_s905l2_*.img |
rk3588 | Radxa-Rock5B | rk3588 | armbian_rockchip_rock5b.img |
rk3568 | FastRhino-R66S, FastRhino-R68S | 6.0.y | armbian_rockchip_r66s.img armbian_rockchip_r68s.img |
rk3328 | beikeyun, l1pro | 全部 | armbian_rockchip_beikeyun.img armbian_rockchip_l1pro.img |
💡提示:当前 s905w
系列的盒子只支持使用 5.4.y/5.15.y
内核,其他型号的盒子可任选内核版本使用。当前 s905
的盒子只能在 TF/SD/USB
中使用,其他型号的盒子同时支持写入 EMMC
中使用。每个盒子的 dtb 和 u-boot 请查阅说明。
选择和你的盒子型号对应的 Armbian 固件,使用 Rufus 或者 balenaEtcher 等工具将固件写入 USB 里,然后把写好固件的 USB 插入盒子。
-
Rockchip
平台的安装方法请查看说明文档中的 8.2章节。 -
Amlogic
平台,登录 Armbian 系统 (默认用户: root, 默认密码: 1234) → 输入命令:
armbian-install
可选参数 | 默认值 | 选项 | 说明 |
---|---|---|---|
-m | no | yes/no | 使用 Mainline u-boot |
-a | yes | yes/no | 使用 ampart 分区表调整工具 |
-l | no | yes/no | List. 显示全部设备列表 |
举例: armbian-install -m yes -a no
登录 Armbian 系统 → 输入命令:
# 使用 root 用户运行 (sudo -i)
# 如果不指定参数,将更新为最新版本。
armbian-update
可选参数 | 默认值 | 选项 | 说明 |
---|---|---|---|
-k | auto latest | 内核名称 | 设置更新内核名称 |
-v | stable | stable/rk3588/dev | 指定内核版本分支 |
-m | no | yes/no | 使用主线 u-boot |
举例: armbian-update -k 5.15.50 -v dev -m yes
如果当前目录下有成套的内核文件,将使用当前目录的内核进行更新(更新需要的 4 个内核文件是 header-xxx.tar.gz
, boot-xxx.tar.gz
, dtb-amlogic-xxx.tar.gz
, modules-xxx.tar.gz
。其他内核文件不需要,如果同时存在也不影响更新,系统可以准确识别需要的内核文件)。如果当前目录没有内核文件,将从服务器查询并下载同系列的最新内核进行更新。在设备支持的可选内核里可以自由更新,如从 5.10.125 内核更新为 5.15.50 内核。
登录 Armbian 系统 → 输入命令:
armbian-software
使用 armbian-software -u
命令可以更新本地的软件中心列表。根据用户在 Issue 中的需求反馈,逐步整合常用软件,实现一键安装/更新/卸载等快捷操作。包括 docker 镜像
、桌面软件
、应用服务
等。详见更多说明。
登录 Armbian 系统 → 输入命令:
armbian-config
如果你在使用 docker
等内存占用较大的应用时,觉得当前盒子的内存不够使用,可以创建 swap
虚拟内存分区,将磁盘空间的一定容量虚拟成内存来使用。下面命令输入参数的单位是 GB
,默认为 1
。
登录 Armbian 系统 → 输入命令:
armbian-swap 1
登录 Armbian 系统 → 输入命令:
armbian-led
根据 LED 屏显示控制说明 进行调试。
激活 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! ] 后按 [ 回车 ] 保存退出,结束设置。
支持在 TF/SD/USB
中对盒子的 EMMC
分区进行备份/恢复。建议您在全新的盒子里安装 Armbian 系统前,先对当前盒子自带的安卓 TV 系统进行备份,以便日后在恢复电视系统等情况下使用。
请从 TF/SD/USB
启动 Armbian 系统 → 输入命令:
armbian-ddbr
根据提示输入 b
进行系统备份,输入 r
进行系统恢复。
在 Armbian 中编译内核的用法详见 编译内核 说明文档。登录 Armbian 系统 → 输入命令:
armbian-kernel -update
armbian-kernel -k 5.10.125
将本地系统中的全部服务脚本更新到最新版本,可以登录 Armbian 系统 → 输入命令:
armbian-sync
在 Armbian 的使用中,一些可能遇到的常见问题详见 documents
-
克隆仓库到本地
git clone --depth 1 https://github.com/ophub/amlogic-s9xxx-armbian.git
-
安装必要的软件包(脚本仅在 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)
-
进入
~/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 固件的名称。 -
进入
~/amlogic-s9xxx-armbian
根目录,然后运行sudo ./rebuild -b s905x3 -k 5.10.125
命令即可生成指定 board 的 Armbian 镜像文件。生成的文件保存在build/output/images
目录里。
参数 | 含义 | 说明 |
---|---|---|
-b | Board | 指定电视盒子型号,如 -b s905x3 . 多个型号使用 _ 进行连接,如 -b s905x3_s905d . 使用 all 表示全部型号。可以指定的型号有: a311d , s905x3 , s905x3-b , s905x2 , s905l3a , s905x , s905w , s905d , s905d-ki , s905l2 , s905 , s922x , s922x-n2 , s912 , s912-m8s 。说明:s922x-reva 是 s922x-gtking-pro-rev_a ,s922x-n2 是 s922x-odroid-n2 ,s912-m8s 是 s912-mecool-m8s-pro-l ,s905d-ki 是 s905d-mecool-ki-pro ,s905x2-km3 是 s905x2-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_rk3588 。指定的名称须与分支目录名称相同。默认使用 stable_rk3588 分支版本。 |
-r | KernelRepository | 指定内核仓库地址,如 -r https://github.com/ophub/kernel/tree/main/pub 。默认使用 ophub/kernel 的内核仓库。 |
-s | Size | 对固件的 ROOTFS 分区大小进行设置,默认大小为 2560MiB, 固件大小必须大于 2048MiB. 例如: -s 2560 |
-t | RootfsType | 对固件的 ROOTFS 分区的文件系统类型进行设置,默认为 ext4 类型,可选项为 ext4 或 btrfs 类型。例如: -t btrfs |
-n | CustomName | 设置固件名称中的签名部分。默认值为空。可根据需要添加签名如 _server ,_gnome_desktop 或 _ophub 等,设置自定义签名时请勿包含空格。 |
-g | GH_TOKEN | 可选项。设置 ${{ secrets.GH_TOKEN }},用于 api.github.com 查询。默认值:无 |
sudo ./rebuild
: 使用默认配置,对全部型号的电视盒子进行打包。sudo ./rebuild -b s905x3 -k 5.10.125
: 推荐使用. 使用默认配置进行相关内核打包。sudo ./rebuild -b s905x3_s905d -k 5.10.125_5.15.50
: 使用默认配置,进行多个内核同时打包。使用_
进行多内核参数连接。sudo ./rebuild -b s905x3 -k 5.10.125 -s 2560
: 使用默认配置,指定一个内核,一个型号进行打包,固件大小设定为2560MiB。sudo ./rebuild -b s905x3 -v dev -k 5.10.125
: 使用默认配置,指定型号,指定版本分支,指定内核进行打包。sudo ./rebuild -b s905x3_s905d
使用默认配置,对多个型号的电视盒子进行全部内核打包, 使用_
进行多型号连接。sudo ./rebuild -k 5.10.125_5.15.50
: 使用默认配置,指定多个内核,进行全部型号电视盒子进行打包, 内核包使用_
进行连接。sudo ./rebuild -k 5.10.125_5.15.50 -a true
: 使用默认配置,指定多个内核,进行全部型号电视盒子进行打包, 内核包使用_
进行连接。自动升级到同系列最新内核。sudo ./rebuild -t btrfs -s 2560 -k 5.10.125
: 使用默认配置,设置文件系统为 btrfs 格式,分区大小为 2560MiB, 并指定内核为 5.10.125 ,对全部型号电视盒子进行打包。
-
关于 Workflows 文件的配置在 .yml 文件里。可以设置需要编译的盒子的
board
等参数,具体详见Rebuild Armbian for amlogic s9xxx
节点。 -
全新编译:在 Actions 页面里选择
Build amlogic armbian
,根据 Armbian 官方支持的 OS 版本,可以选择 Ubuntu 系列:jammy
,或者 Debian 系列:bullseye
等。点击Run workflow
按钮即可编译。更多参数的设置方法可以在 Armbian 官方文档 里查阅。 -
再次编译:如果 Releases 中有已经编译好的
Armbian_.*-trunk_.*.img.gz
文件,你只是想再次制作其他不同 board 的盒子,可以跳过 Armbian 源文件的编译,直接进行二次制作。在 Actions 页面中选择Use Releases file to build armbian
,点击Run workflow
按钮即可二次编译。 -
使用其他 Armbian 固件,如 Armbian 官方固件下载网站 armbian.tnahosting.net 提供的 odroidn2 固件,仅在流程控制文件 .yml 中引入本仓库的脚本进行 Armbian 重构,即可适配 Amlogic S9xxx 系列盒子的使用。在 Actions 页面里选择
Rebuild amlogic 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_board: s905d_s905x3_s922x_s905x
armbian_kernel: 5.10.125_5.15.50
gh_token: ${{ secrets.GH_TOKEN }}
关于 GitHUB RELEASES_TOKEN 的相关设置可参考:RELEASES_TOKEN。相关参数与本地打包命令
相对应,请参考上面的说明。
参数 | 默认值 | 说明 |
---|---|---|
armbian_path | 无 | 设置原版 Armbian 文件的路径,支持使用当前工作流中的文件路径如 build/output/images/*.img ,也支持使用网络下载地址如: https://dl.armbian.com/*/Armbian_*.img.xz |
armbian_board | s905d_s905x3 | 设置打包盒子的 board ,功能参考 -b |
armbian_kernel | 5.10.125_5.15.50 | 设置内核 版本,功能参考 -k |
auto_kernel | true | 设置是否自动采用同系列最新版本内核,功能参考 -a |
version_branch | stable_rk3588 | 指定内核 版本分支 名称,功能参考 -v |
kernel_repo | ophub/kernel | 指定内核仓库地址,功能参考 -r |
armbian_size | 2560 | 设置固件 ROOTFS 分区的大小,功能参考 -s |
armbian_fstype | ext4 | 设置固件 ROOTFS 分区的文件系统类型,功能参考 -t |
armbian_sign | 无 | 设置固件名称中的签名部分,功能参考 -n |
gh_token | 无 | 可选项。设置 ${{ secrets.GH_TOKEN }}。功能参考 -g |
上传到 Releases
需要给仓库添加 ${{ secrets.GITHUB_TOKEN }}
和 ${{ secrets.GH_TOKEN }}
并设置 Workflow 读写权限
,详见使用说明。
参数 | 默认值 | 说明 |
---|---|---|
${{ env.PACKAGED_OUTPUTPATH }} | out | 打包后的固件所在文件夹的路径 |
${{ env.PACKAGED_OUTPUTDATE }} | 04.13.1058 | 打包日期(月.日.时分) |
${{ env.PACKAGED_STATUS }} | success | 打包状态:success / failure |
名称 | 值 |
---|---|
默认 IP | 从路由器获取 IP |
默认账号 | root |
默认密码 | 1234 |
内核的编译方法详见 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
首先感谢 150balbes 为在 Amlogic 盒子中使用 Armbian 所做出的杰出贡献和奠定的良好基础。这里编译的 armbian 系统直接使用了官方当前的最新源码进行实时编译。程序的开发思路来自 ebkso 等作者的教程。感谢各位的奉献和分享,让我们可以在 Amlogic s9xxx 盒子里使用 Armbian 系统。
本系统所使用的 kernel
/ u-boot
等资源主要从 unifreq/openwrt_packit 的项目中复制而来,部分文件由用户在 amlogic-s9xxx-openwrt / amlogic-s9xxx-armbian / luci-app-amlogic / kernel 等项目的 Pull 和 Issues 中提供分享。为感谢这些开拓者和分享者,从现在开始(本源代码库创建于2021-09-19),我统一在 CONTRIBUTORS.md 中进行了记录。再次感谢大家为盒子赋予了新的生命和意义。
- amlogic-s9xxx-openwrt 项目提供了在盒子中使用的
OpenWrt
系统,在支持 Armbian 的相关设备中同样适用。 - unifreq 为晶晨、瑞芯微和全志等更多盒子制作了
OpenWrt
系统,属于盒子圈的标杆,推荐使用。 - Scirese 在安卓电视盒子里测试了
Arch Linux ARM
/Manjaro
系统的制作、安装和使用,具体详见他仓库中的相关说明。 - 7Ji 在他的博客中发表了一些在 Amlogic 平台上的逆向工程和开发的文章,比如以 ArchLinux 的方式安装 ArchLinux ARM 系统,对 Amlogic 平台的启动机制的介绍等。在他的 ampart 项目中,提供了一款分区工具,能够读取并编辑 Amlogic 的 eMMC 分区表和 DTB 内分区,可以 100% 利用 eMMC 空间。在 amlogic-s9xxx-archlinuxarm 项目中提供了
Arch Linux ARM
系统的制作和使用方法。
The amlogic-s9xxx-armbian © OPHUB is licensed under GPL-2.0