Skip to content

Latest commit

 

History

History
320 lines (225 loc) · 40.5 KB

File metadata and controls

320 lines (225 loc) · 40.5 KB
Armbian

Armbian / 岸边

查看英文说明 | View English description

Armbian(中文名:岸边)是基于 Debian/Ubuntu 构建的专为 ARM 芯片设计的轻量级 Linux 发行版。Armbian 系统精简、清洁,100% 兼容并继承了 Debian/Ubuntu 的功能与丰富的软件生态,可以安全稳定地运行在 TF/SD/USB 及设备的 eMMC 存储中。本项目保留了 Armbian 官方系统的完整性,并进一步拓展了对电视盒子等非官方支持设备的适配,同时增加了一系列便捷操作指令。现在你可以将电视盒子的安卓 TV 系统替换为 Armbian,使其成为一台功能强大的服务器。

本项目依托众多贡献者的力量,为 AmlogicRockchipAllwinner 平台的设备构建 Armbian 系统,支持写入 eMMC 使用、更新内核等功能。详细使用方法请参见 Armbian 使用文档。最新的 Armbian 系统可在 Releases 中下载。欢迎 Fork 并进行个性化定制。如果对你有帮助,请点击仓库右上角的 Star 表示支持。

Armbian 系统默认信息

系统名称 默认账号 默认密码 SSH 端口 IP 地址
🐧 Armbian.OS root 1234 22 从路由器获取
🐋 Armbian.Docker root 1234 22 静态 MacVLAN IP

支持的设备列表

⬆️ 各平台(晶晨/瑞芯微/全志)型号均按 SoC 性能由高至低排列。

SoC 设备 内核
a311d Khadas-VIM3, WXY-OES stable
s922x Beelink-GT-King, Beelink-GT-King-Pro, Ugoos-AM6-Plus, ODROID-N2, X88-King, Ali-CT2000, WXY-OES-Plus stable
s905x3 X96-Max+, HK1-Box, Vontar-X3, H96-Max-X3, Ugoos-X3, TX3(QZ), TX3(BZ), X96-Air, X96-Max+_A100, A95X-F3-Air, Tencent-Aurora-3Pro(s905x3-b), X96-Max+Q1, X96-Max+100W, X96-Max+_2101, Infinity-B32, Whale, X88-Pro-X3, X99-Max-Plus, Transpeed-X3-Plus stable
s905x2 X96Max-4G, X96Max-2G, MECOOL-KM3-4G, Tanix-Tx5-Max, A95X-F2, HG680-FJ stable
s905l3a E900V22C/D, CM311-1a-YST, M401A, M411A, UNT403A, UNT413A, ZTE-B863AV3.2-M, CM311-1a-CH, IP112H, B863AV3.1-M2 stable
s905l3b CM201-1, CM211-1, CM311-1, E900V21D, E900V22D, E900V21E, E900V22E, M302A/M304A, Hisense-IP103H, TY1608, TY1608, MGV2000, B860AV-2.1M, UNT403A, RG020ET-CA, M411A stable
s905l3 CM211-1, CM311-1, HG680-LC, M401A, UNT400G1, UNT400G, UNT402A, ZXV10-BV310, M411A, ZXV10-B860AV3.2-M, ZXV10-B860AV2.1-U, E900V22D-2, CM201-1-6-YS, IP108H, M301A stable
s912 Tanix-TX8-Max, Tanix-TX9-Pro(3G), Tanix-TX9-Pro(2G), Tanix-TX92, Tanix-TX9S, Nexbox-A1, Nexbox-A95X-A2, A95X, H96-Pro-Plus, VORKE-Z6-Plus, Mecool-M8S-PRO-L, Vontar-X92, T95Z-Plus, Octopus-Planet, Phicomm-T1, TX3-Mini, OneCloudPro-V1.1_V1.2 stable
s905d MECOOL-KI-Pro, Phicomm-N1, SML-5442TW stable
s905x HG680P, B860H, TBee-Box, T95, TX9, XiaoMI-3S, X96, Nexbox-a95x, BTV9 stable
s905mb S65 stable
s905l UNT402A, M201-S, MiBox-4, MiBox-4C, MG101, E900V21C, IP108H-53u1m, Tencent-Aurora-1s, B860AV2.1, B860AV2.1U, HM201 stable
s905l2 MGV2000, MGV2000-K, MGV3000, Wojia-TV-IPBS9505, M301A, E900v21E, e900v21d, CM201-1, IP108H, MGV2000-CW stable
s905lb Q96-mini, BesTV-R3300L, SumaVision-Q7, MG101, s65, IPBS9505 stable
s905w X96-Mini, TX3-Mini, W95, X96W/FunTV, MXQ-Pro-4K, MeCool-m8s-pro-W stable
s905 Beelink-Mini-MX-2G, Sunvell-T95M, MXQ-Pro+4K, SumaVision-Q5 stable
rk3588(s) Radxa-Rock5B, Radxa-Rock5C, Orange-Pi-5-Plus, Beelink-IPC-R, HLink-H88K, HLink-H88K-V3, NanoPC-T6, Smart-Am60, DC-A588, Orangepi-5B, CM3588-NAS, Rock-5-ITX, LZ-D3588 rk3588
rk3576 NanoPi-m5 stable
rk3399 EAIDK-610, King3399, TN3399, Kylin3399, ZCube1-Max, CRRC, SMART-AM40, SW799, ZYSJ, DG-3399, DLFR100, Emb3531, Leez-p710, tvi3315a, xiaobao, Fine3399, Firefly-RK3399, LX-R3S, Hugsun-x99, Tb-ls3399, Hisense-hs530r, Tpm312, ZK-rk39a, YSKJ, Fmx1-Pro, Fmx1-Pro-B, Sv-33a6x, Sv-33a6x(VPU), AIO-3399B, AIO-3399C, AIO-3399C(AI), TaraM, NanoPC-T4, Firefly-Core-3399-JD4, GEA-6319 rk35xx
stable
rk3568 FastRhino-R66S, FastRhino-R68S, Radxa-E25, NanoPi-R5S, NanoPi-R5C, HLink-H66K, HLink-H68K, HLink-H69K, Seewo-sv21, Mrkaio-m68s, Swan1-w28, Ruisen-box, DG-TN3568, Alark35-3500, MMBox-Anas3035, Wocyber-A3, Photonicat, NSY-G16-Plus, NSY-G68-Plus, BDY-G18-Pro, Gzpeite-P01, LZ-D3568, LZ-K3568, BDKJ-One, Station-P2, Lyt-t68m rk35xx
stable
rk3566 Panther-X2, JP-TvBox, LCKFB-Taishan-Pi, WXY-OEC-turbo-4g, Station-M2, Orange-Pi-3B rk35xx
stable
rk3528 HLink-H28K, Radxa-E20C, H96-Max-M2, HK1-Rbox-K8S, HT2 rk35xx
rk3328 BeikeYun, Chainedbox-L1-Pro, Station-M1, Bqeel-MVR9, Renegade/Firefly rk35xx
stable
rk3318 RX3318-Box stable
h6 Vplus, Tanix-TX6, TQC-A01 h6
stable
h618 OrangePi-Zero3 stable

Tip

目前 s905 的盒子仅支持在 TF/SD/USB 中使用,其他型号的盒子均支持写入 EMMC。更多信息请查阅 ✅支持的设备列表说明。添加新设备支持可参考说明文档 12.15 章节的方法:添加新的支持设备。使用前请先阅读 Armbian 使用文档,常见问题均已提供解决方案。

安装及升级 Armbian 的相关说明

请选择与你的设备型号对应的 Armbian 系统,不同设备的使用方法请参考对应的说明文档。

  • 安装 Armbian 到 EMMC

  1. Rockchip 平台的安装方法请查看说明文档中的 第 8 章节

  2. AmlogicAllwinner 平台,使用 Rufus 或者 balenaEtcher 等工具将系统写入 USB 里,然后把写好系统的 USB 插入盒子。登录 Armbian 系统 (默认用户: root, 默认密码: 1234) → 输入命令:

armbian-install
可选参数 默认值 选项 说明
-m no yes/no 使用主线 u-boot
-a yes yes/no 使用 ampart 分区表调整工具
-l no yes/no 显示全部设备列表

示例:armbian-install -m yes -a no

  • 更新 Armbian 内核

登录 Armbian 系统 → 输入命令:

# 使用 root 用户运行 (sudo -i)
# 如果不指定参数,将更新为最新版本。
armbian-update
可选参数 默认值 选项 说明
-r ophub/kernel <owner>/<repo> 设置从 github.com 下载内核的仓库
-u 自动识别 stable/flippy/beta/rk3588/rk35xx/h6 设置使用的内核的 tags 后缀
-k 最新版 内核版本 设置内核版本
-b yes yes/no 更新内核时自动备份当前使用的内核
-d deb tar/deb 设置首选的内核包格式。若指定格式不存在,脚本将自动尝试另一种格式。如需编译自定义驱动,推荐使用 deb 格式。
-m no yes/no 使用主线 u-boot
-s 无/磁盘名称 [SOS] 恢复 eMMC/NVMe/sdX 等磁盘中的系统内核
-h 查看帮助信息

示例:armbian-update -k 5.15 -u stable -d deb

通过 -k 参数指定内核版本时,可以精确指定具体版本号,例如:armbian-update -k 5.15.50;也可以模糊指定内核系列,例如:armbian-update -k 5.15。模糊指定时将自动使用该系列的最新版本。

更新内核时会自动备份当前使用的内核,备份存储在 /ddbr/backup 目录中,保留最近 3 个版本。若新安装的内核不稳定,可随时恢复到备份版本。若更新内核后系统无法启动,可通过 armbian-update -s 恢复系统内核。更多详情请参见帮助文档

  • 更换 Armbian 源

登录 Armbian 系统 → 输入命令:

armbian-apt

根据你所在的国家或地区选择合适的软件源,可以显著提升软件下载速度。更多说明详见帮助文档

  • 安装常用软件

登录 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-openvfd

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

  • 备份/还原 EMMC 原系统

支持在 TF/SD/USB 中对设备 EMMC 分区进行备份和恢复。建议在全新设备上安装 Armbian 系统之前,先对原始的安卓 TV 系统进行备份,以便日后需要恢复时使用。

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

armbian-ddbr

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

Important

除此之外,也可以通过线刷方式将安卓系统写入 eMMC。安卓系统的下载镜像可在 Tools 中查找。

  • 在 Armbian 中编译内核

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

armbian-kernel -u
armbian-kernel -k 6.6.12
  • 更多使用说明

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

armbian-sync

在 Armbian 的使用过程中,常见问题的解决方法详见 documents

本地化打包

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

  2. 安装必要的软件包(以 Ubuntu 24.04 为例)

进入 ~/amlogic-s9xxx-armbian 根目录,然后执行安装命令:

sudo apt-get update -y
sudo apt-get full-upgrade -y
# For Ubuntu-24.04
sudo apt-get install -y $(cat compile-kernel/tools/script/ubuntu2404-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 -b s905x3 -k 6.6.12 命令即可生成指定 board 的 Armbian 镜像文件。生成的文件保存在 build/output/images 目录中。

  • 本地化打包参数说明

参数 含义 说明
-b Board 指定需要编译的设备代号。例如 -b s905x3 表示编译代号为 s905x3 的设备,多个设备可用下划线连接,如 -b s905x3_s905d。特殊值:all 表示编译全部设备,first50 表示设备库中的前 50 个,range50_100 表示第 51 至第 100 个,range100_150 表示第 101 至第 150 个,last20 表示最后 20 个。设备代号列表详见 model_database.conf 中的 BOARD 配置项。默认值:all
-r KernelRepo 指定 github.com 内核仓库的 <owner>/<repo>。默认值:ophub/kernel
-u kernelUsage 设置使用的内核的 tags 后缀,如 stable, flippy, beta。默认值:stable
-k Kernel 指定 kernel 名称,如 -k 6.6.12 。多个内核使用 _ 进行连接,如 -k 6.6.12_5.15.50 。通过 -k 参数自由指定的内核版本只对使用 stable/flippy/beta 的内核有效。其他内核系列例如 rk3588 / rk35xx / h6 等只能使用特定内核。
-a AutoKernel 设置是否自动采用同系列最新版本内核。当为 true 时,将自动在内核库中查找 -k 指定内核(如 6.6.12)的同系列是否有更新版本,若存在更新版本则自动替换。设置为 false 时将使用指定版本编译。默认值:true
-t RootfsType 设置系统 ROOTFS 分区的文件系统类型,可选 ext4btrfs。例如:-t btrfs。默认值:ext4
-s Size 设置系统镜像分区大小。仅设置 ROOTFS 分区大小时可只指定一个数值,例如:-s 2560;需同时设置 BOOTFS 和 ROOTFS 分区大小时,用 / 连接两个数值,例如:-s 512/2560。默认值:512/2560
-n BuilderName 设置 Armbian 系统构建者签名。签名中请勿包含空格。默认值:无
  • sudo ./rebuild : 使用默认配置,对全部型号的设备进行打包。
  • sudo ./rebuild -b s905x3 -k 6.6.12 : 推荐用法。使用默认配置编译指定内核。
  • sudo ./rebuild -b s905x3 -k 6.1.y : 使用默认配置编译,内核使用 6.1.y 系列的最新版。
  • sudo ./rebuild -b s905x3_s905d -k 6.6.12_5.15.50 : 使用默认配置,同时打包多个内核。多个内核用 _ 连接。
  • sudo ./rebuild -b s905x3 -k 6.6.12 -s 2560 : 使用默认配置,指定单个内核和单个型号进行打包,ROOTFS 分区大小设为 2560 MiB。
  • sudo ./rebuild -b s905x3_s905d 使用默认配置,对多个型号进行全部内核打包,多个型号用 _ 连接。
  • sudo ./rebuild -k 6.6.12_5.15.50 : 使用默认配置,指定多个内核,对全部型号进行打包。多个内核用 _ 连接。
  • sudo ./rebuild -k 6.6.12_5.15.50 -a true : 使用默认配置,指定多个内核,对全部型号进行打包,并自动升级到同系列最新内核。
  • sudo ./rebuild -t btrfs -s 2560 -k 6.6.12 : 使用默认配置,文件系统设为 btrfs,ROOTFS 分区大小为 2560 MiB,指定内核为 6.6.12,对全部型号进行打包。

使用 GitHub Actions 进行编译

  1. 关于 Workflows 文件的配置详见 .github/workflows/ 目录。

  2. 全新编译:在 Actions 页面中选择 Build Armbian server image,即可通过 build-armbian-arm64-server-image.yml 进行编译。可选择 Ubuntu 系列(如 jammy)或 Debian 系列(如 bullseye)等。点击 Run workflow 按钮即可开始编译。

  3. 二次编译:如果 Releases 中已有编译好的 Armbian_.*-trunk_.*.img.gz 文件,只需为其他 board 重新打包,可跳过源文件编译步骤,直接使用 build-armbian-using-releases-files.yml 进行二次制作。

  4. 使用其他 Armbian 系统(如 Armbian 官方下载站 armbian.tnahosting.net 提供的 odroidn2 系统),只需在工作流配置文件 build-armbian-using-official-image.yml 中引入本仓库的脚本进行 Armbian 重构,即可适配其他设备。示例代码如下:

- name: Build Armbian
  uses: ophub/amlogic-s9xxx-armbian@main
  with:
    build_target: armbian
    armbian_path: build/output/images/*.img
    armbian_board: s905d_s905x3_s922x_s905x
    armbian_kernel: 6.12.y_6.18.y
  • GitHub Actions 输入参数说明

相关参数与本地打包命令一一对应,详情请参考上述说明。

参数 默认值 说明
armbian_path 设置原版 Armbian 文件的路径。支持当前工作流中的文件路径(如 build/output/images/*.img),也支持网络下载地址(如 https://dl.armbian.com/*/Armbian_*.img.xz
armbian_board all 设置打包盒子的 board ,功能参考 -b
kernel_repo ophub/kernel 指定 github.com 内核仓库的 <owner>/<repo>,功能参考 -r
kernel_usage stable 设置使用的内核的 tags 后缀。功能参考 -u
armbian_kernel 6.12.y_6.18.y 设置内核 版本,功能参考 -k
auto_kernel true 设置是否自动采用同系列最新版本内核,功能参考 -a
armbian_fstype ext4 设置系统 ROOTFS 分区的文件系统类型,功能参考 -t
armbian_size 512/2560 设置系统 BOOTFS 和 ROOTFS 分区的大小,功能参考 -s
armbian_files false 添加自定义 Armbian 文件。设置后,该目录下的所有文件将被复制到 common-files 中。目录结构必须与 Armbian 根目录保持一致,以确保文件正确覆盖到固件中(例如:默认配置文件应存放于 etc/default/ 子目录下)。
builder_name 设置 Armbian 系统构建者签名,功能参考 -n
  • GitHub Actions 输出变量说明

上传到 Releases 需要为仓库设置 Workflow 读写权限,详见使用说明

参数 默认值 说明
${{ env.PACKAGED_OUTPUTPATH }} out Armbian 系统文件输出路径
${{ env.PACKAGED_OUTPUTDATE }} 04.13.1058 打包日期(月.日.时分)
${{ env.PACKAGED_STATUS }} success 打包状态:success / failure

制作 Armbian Docker 镜像

Armbian 系统 Docker 镜像的制作方法可参考 armbian_docker 制作脚本。

使用 GitHub Actions 编译内核

内核的编译方法详见编译内核

- name: Compile the kernel
  uses: ophub/amlogic-s9xxx-armbian@main
  with:
    build_target: kernel
    kernel_version: 6.12.y_6.18.y
    kernel_auto: true
    kernel_sign: -yourname

Armbian 贡献者

首先感谢 150balbes 为在 Amlogic 电视盒子上运行 Armbian 所做出的杰出贡献和奠定的坑实基础。本项目编译的 Armbian 系统直接使用官方当前的最新源码进行实时编译。程序的开发思路来源于 ebkso 等作者的教程。感谢各位的奉献与分享,让我们得以在更多设备上使用 Armbian 系统。

本系统所使用的 u-bootkernel 等资源主要来源于 unifreq/openwrt_packit 项目,部分文件由用户在 amlogic-s9xxx-openwrt / amlogic-s9xxx-armbian / luci-app-amlogic / kernel / u-boot 等项目的 PullIssues 中贡献分享。为感谢这些开拓者和分享者,自本仓库创建之日起(2021-09-19),已统一在 CONTRIBUTORS.md 中进行记录。再次感谢大家为设备赋予新的生命与价值。

其他发行版

  • amlogic-s9xxx-openwrt 项目提供了适用于盒子的 OpenWrt 系统,在支持 Armbian 的相关设备上同样适用。
  • fnnas 项目提供了适用于盒子的 FnNAS 系统,在支持 Armbian 的相关设备上同样适用。
  • unifreq 为晶晨、瑞芯微和全志等平台的更多设备制作了 OpenWrt 系统,是盒子生态的标杆项目,推荐使用。
  • Scirese 在安卓电视盒子上测试了 Arch Linux ARM / Manjaro 系统的制作、安装和使用,详情请参见其仓库说明。
  • 7Ji 在其博客中发表了多篇关于 Amlogic 平台逆向工程与开发的文章,涵盖以 ArchLinux 方式安装 ArchLinux ARM 系统、Amlogic 平台启动机制解析等内容。其 ampart 项目提供了一款分区工具,可读取并编辑 Amlogic eMMC 分区表和 DTB 内分区,实现 eMMC 空间 100% 利用。amlogic-s9xxx-archlinuxarm 项目提供了 Arch Linux ARM 系统的制作和使用方法。YAopenvfD 项目提供了另一个 openvfd 守护进程实现。
  • 13584452567 是本仓库 Rockchip 系列设备的开拓者。凭借其分享,本项目拓展了对 EAIDK-610King3399TN3399Kylin3399ZCube1-Maxtvi3315axiaobao 等众多 Rockchip 设备的支持。他还是 TQC-A01Allwinner 设备专用内核的维护者,并在论坛问答区中提供了大量技术支持和解决方案,为盒子生态的发展做出了巨大贡献。
  • cooip-jm 在其 wiki 中分享了许多关于 Armbian、LXC、Docker、AdGuard 等应用的使用方法,推荐参考学习。

链接

License

The amlogic-s9xxx-armbian © OPHUB is licensed under GPL-2.0