查看英文说明 | View English description
为 Amlogic S9xxx 系列盒子编译 Armbian 系统。支持写入 EMMC 中使用,支持更新内核等功能。支持的 Amlogic S9xxx 系列型号有 s922x, s905x3, s905x2, s912, s905d, s905x, s905w
等,例如 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 固件可以在 Releases 中下载。欢迎 Fork
并进行个性化定制。如果对你有用,可以点仓库右上角的 Star
表示支持。
型号 | 盒子 | 可选内核 | Armbian 固件 |
---|---|---|---|
s922x | Belink, Belink-Pro, Ugoos-AM6-Plus, ODROID-N2 | 全部 | armbian_aml_s922x_*.img |
s905x3 | X96-Max+, HK1-Box, H96-Max-X3, Ugoos-X3, X96-Air, A95XF3-Air | 全部 | armbian_aml_s905x3_*.img |
s905x2 | X96Max-4G, X96Max-2G | 全部 | armbian_aml_s905x2_*.img |
s912 | H96-Pro-Plus, T95Z-Plus, Octopus-Planet | 全部 | armbian_aml_s912_*.img |
s905d | Phicomm-N1 | 全部 | armbian_aml_s905d_*.img |
s905x | HG680P, B860H | 5.4.* | armbian_aml_s905x_*.img |
s905w | X96-Mini, TX3-Mini | 5.4.* | armbian_aml_s905w_*.img |
选择和你的盒子型号对应的 Armbian 固件,使用 Rufus 或者 balenaEtcher 等工具将固件写入 USB 里,然后把写好固件的 USB 插入盒子。
登录 Armbian 系统 (默认用户: root, 默认密码: 1234) → 输入命令:
armbian-install
查询 可选内核 版本,登录 Armbian 系统 → 输入命令:
# 使用 root 用户运行 (sudo -i), 输入命令: armbian-update <内核版本>
armbian-update 5.4.160
如果当前目录下有成套的内核文件,可以运行 armbian-update
命令安装此内核。内核更新脚本会在开发中不断更新,可使用此命令同步更新本地的脚本:wget -O /usr/sbin/armbian-update git.io/armbian-update
。或者直接使用服务器端最新脚本进行内核更新:bash <(curl -fsSL git.io/armbian-update) 5.4.160
内核更新时,默认从 stable 内核版本分支下载,如果下载其他 版本分支 的内核,请在第 2
个参数中根据分支文件夹名称指定,如 armbian-update 5.7.19 beta
。默认自动安装主线 u-boot,可以更好的支持 5.10 及以上内核系列的使用。如果选择不安装,请在第 3
个输入参数中指定,如 armbian-update 5.4.160 stable no
内核中的 headers
文件默认安装在 /use/local/include
目录下。在编译应用程序的时候,在 GCC
的 CFLAG
参数中添加 -I /usr/local/include
即可找到头文件。
登录 Armbian 系统 → 输入命令:
armbian-docker
在安装 docker 结束后,可以选择是否安装 portainer
可视化管理面板。拟使用局域网 IP
进行管理的用户可选择(h
)安装 http://ip:9000
版本;拟使用域名
进行远程管理的用户可选择(s
)安装 https://domain:9000
域名证书版本(请把域名 SSL
证书命名为 portainer.crt
和 portainer.key
上传至 /etc/ssl/
目录下);不需要
安装的用户可选择(n
)结束安装。
登录 Armbian 系统 → 输入命令:
armbian-config
如果你在使用 docker
等内存占用较大的应用时,觉得当前盒子的内存不够使用,可以创建 swap
虚拟内存分区,将磁盘空间的一定容量虚拟成内存来使用。下面命令输入参数的单位是 GB
,默认为 1
。
登录 Armbian 系统 → 输入命令:
armbian-swap 1
激活 TF/USB 的剩余空间,请登录 Armbian 系统 → 输入命令:
armbian-tf
根据提示输入 e
将剩余空间扩容至当前系统分区和文件系统,输入 c
将创建新的第 3 分区。
或者手动分配剩余空间
查看 操作截图
# 1. 根据空间大小确认 TF/USB 的名称,TF卡为 [ 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 系统 → 输入命令:
ddbr
根据提示输入 b
进行系统备份,输入 r
进行系统恢复。
参数 | 含义 | 说明 |
---|---|---|
-d | Defaults | 使用默认配置 |
-b | Build | 指定机顶盒型号,如 -b s905x3 . 多个型号使用 _ 进行连接,如 -b s905x3_s905d . 可以指定的型号有: s905x3 , s905x2 , s905x , s905w , s905d , s922x , s922x-n2 , s912 , s912-t95z 。说明:s922x-n2 是 s922x-odroid-n2 ,s912-t95z 是 s912-t95z-plus |
-v | Version | 指定内核 版本分支 名称,如 -v stable 。指定的名称须与分支目录名称相同。默认使用 stable 分支版本。 |
-k | Kernel | 指定 kernel 名称,如 -k 5.4.160 . 多个内核使用 _ 进行连接,如 -k 5.10.80_5.4.160 |
-a | AutoKernel | 设置是否自动采用同系列最新版本内核。当为 true 时,将自动在内核库中查找在 -k 中指定的内核如 5.4.160 的 5.4 同系列是否有更新的版本,如有 5.4.160 之后的最新版本时,将自动更换为最新版。设置为 false 时将编译指定版本内核。默认值:true |
-s | Size | 对固件的大小进行设置,默认大小为 1024M, 固件大小必须大于 256M. 例如: -s 1024 |
sudo ./rebuild -d -b s905x3 -k 5.4.160
: 推荐使用. 使用默认配置进行相关内核打包。sudo ./rebuild -d -b s905x3_s905d -k 5.10.80_5.4.160
: 使用默认配置,进行多个内核同时打包。使用_
进行多内核参数连接。sudo ./rebuild -d
: 使用默认配置,对全部型号的机顶盒进行打包。sudo ./rebuild -d -b s905x3 -k 5.4.160 -s 1024
: 使用默认配置,指定一个内核,一个型号进行打包,固件大小设定为1024M。sudo ./rebuild -d -b s905x3 -v beta -k 5.7.19
: 使用默认配置,指定型号,指定版本分支,指定内核进行打包。sudo ./rebuild -d -b s905x3_s905d
使用默认配置,对多个型号的机顶盒进行全部内核打包, 使用_
进行多型号连接。sudo ./rebuild -d -k 5.10.80_5.4.160
: 使用默认配置,指定多个内核,进行全部型号机顶盒进行打包, 内核包使用_
进行连接。sudo ./rebuild -d -k 5.10.80_5.4.160 -a true
: 使用默认配置,指定多个内核,进行全部型号机顶盒进行打包, 内核包使用_
进行连接。自动升级到同系列最新内核。sudo ./rebuild -d -s 1024 -k 5.4.160
: 使用默认配置,设置固件大小为 1024M, 并指定内核为 5.4.160 ,对全部型号机顶盒进行打包。
💡提示:当前 s905x
和 s905w
系列的盒子只支持使用 5.4.*
内核,不能使用 5.10.* 或更高版本,请在编译时指定替换内核。其他型号的盒子可任选内核版本使用。
- 安装必要的软件包(如 Ubuntu 20.04 LTS 用户)
sudo apt-get update -y
sudo apt-get full-upgrade -y
sudo apt-get install -y $(curl -fsSL git.io/ubuntu-2004-server)
-
克隆仓库到本地
git clone --depth 1 https://github.com/ophub/amlogic-s9xxx-armbian.git
-
在根目录下创建文件夹
build/output/images
,并上传 Armbian 镜像文件 ( 如:Armbian_21.11.0-trunk_Lepotato_current_5.10.80.img
) 到~/amlogic-s9xxx-armbian/build/output/images
目录里。原版 Armbian 镜像文件名称中的发行版本号(如:21.11.0
)和内核版本号(如:5.10.80
)请保留,它将在重构后用作 Armbian 固件的名称。 -
进入
~/amlogic-s9xxx-armbian
根目录,然后运行sudo ./rebuild -d -b s905x3 -k 5.4.160
命令即可生成指定 soc 的 Armbian 镜像文件。生成的文件保存在build/output/images
目录里。
-
关于 Workflows 文件的配置在 .yml 文件里。可以设置需要编译的盒子的
SOC
等参数,具体详见Rebuild Armbian for amlogic s9xxx
节点。 -
全新编译:在 Action 页面里选择
Build armbian
,根据 Armbian 官方支持的 OS 版本,可在 RELEASE 里选择 Ubuntu 系列:bionic
/focal
/hirsute
,或者 Debian 系列:bullseye
/buster
/stretch
,在 BOARD 里可选lepotato
/odroidn2
等,点击Run workflow
按钮即可编译。 -
再次编译:如果 Releases 中有已经编译好的
Armbian_.*-trunk_.*.img.gz
文件,你只是想再次制作其他不同 soc 的盒子,可以跳过 Armbian 源文件的编译,直接进行二次制作。在 Action 页面中选择Use Releases file to build armbian
,点击Run workflow
按钮即可二次编译。
你可以使用其他方式构建 Armbian 固件。或者使用 Armbian 官方提供的 lepotato 等分支的固件,仅在流程控制文件 .yml 中引入本仓库的脚本进行 Armbian 重构,适配 Amlogic S9xxx 系列盒子的使用。在 Action 页面里选择 Rebuild armbian
,输入 Armbian 的网络下载地址如 https://dl.armbian.com/*/Armbian_*.img.xz
,或者在流程控制文件 .yml 中通过 armbian_path
参数设定重构文件的加载路径。代码如下:
- name: Rebuild Armbian for Amlogic s9xxx
uses: ophub/amlogic-s9xxx-armbian@main
with:
armbian_path: build/output/images/*.img
armbian_soc: s905d_s905x3_s922x_s905x
armbian_kernel: 5.10.80_5.4.160
- GitHub Action 输入参数说明
参数 | 默认值 | 说明 |
---|---|---|
armbian_path | no | 设置原版 Armbian 文件的路径,支持使用当前工作流中的文件路径如 build/output/images/*.img ,也支持使用网络下载地址如: https://dl.armbian.com/*/Armbian_*.img.xz |
armbian_soc | s905d_s905x3 | 设置打包盒子的 SOC ,可指定单个盒子如 s905x3 ,可选择多个盒子用_连接如 s905x3_s905d 。各盒子的SoC代码为:s905x3 , s905x2 , s905x , s905w , s905d , s922x , s922x-n2 , s912 。说明:s922x-n2 是 s922x-odroid-n2 |
version_branch | stable | 指定内核 版本分支 名称,如 stable 。指定的名称须与分支目录名称相同。默认使用 stable 分支版本。 |
armbian_kernel | 5.10.80_5.4.160 | 设置内核版本,kernel 库里收藏了众多 Flippy 的原版内核,可以查看并选择指定。 |
auto_kernel | true | 设置是否自动采用同系列最新版本内核。当为 true 时,将自动在内核库中查找在 amlogic_kernel 中指定的内核如 5.4.160 的 5.4 同系列是否有更新的版本,如有 5.4.160 之后的最新版本时,将自动更换为最新版。设置为 false 时将编译指定版本内核。默认值:true |
armbian_size | 2748 | 设置固件 ROOTFS 分区的大小。 |
- GitHub Action 输出变量说明
参数 | 默认值 | 说明 |
---|---|---|
${{ env.PACKAGED_OUTPUTPATH }} | ${PWD}/out | 打包后的固件所在文件夹的路径 |
${{ env.PACKAGED_OUTPUTDATE }} | 2021.04.21.1058 | 打包日期 |
${{ env.PACKAGED_STATUS }} | success / failure | 打包状态。成功 / 失败 |
自定义内核的编译方法详见 compile-kernel
编译的 armbian 系统直接使用了官方当前的最新源码进行实时编译。为不同的盒子制作专用的 Armbian 系统时采用了 flippy 为 amlogic s9xxx openwrt
制作的内核、脚本及 u-boot
等资源。程序的开发思路来自 ebkso 等作者的教程。感谢各位的奉献和分享,让我们可以在 Amlogic s9xxx 盒子里使用 Armbian 系统。
因为有不断的 创新与贡献者 ,我们才能在岁月的长河里,拥有盒子的陪伴。很多年后我们都长大了,但这个美好的回忆总会长久地留在记忆深处。从现在开始,把这些开创者们的成果记录起来,留给新加入盒子圈的新朋友们。
LICENSE © OPHUB