Skip to content

Latest commit

 

History

History
304 lines (214 loc) · 36.7 KB

README.cn.md

File metadata and controls

304 lines (214 loc) · 36.7 KB

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 系统说明

芯片 设备 内核 Armbian
a311d Khadas-VIM3 全部 amlogic_a311d.img
s922x Beelink-GT-King, Beelink-GT-King-Pro, Ugoos-AM6-Plus, ODROID-N2, X88-King, Ali-CT2000 全部 amlogic_s922x.img
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 全部 amlogic_s905x3.img
s905x2 X96Max-4G, X96Max-2G, MECOOL-KM3-4G, Tanix-Tx5-Max, A95X-F2 全部 amlogic_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, TX3-Mini, OneCloudPro-V1.1_V1.2 全部 amlogic_s912.img
s905d MECOOL-KI-Pro, Phicomm-N1, SML-5442TW 全部 amlogic_s905d.img
s905x HG680P, B860H, TBee-Box, T95, TX9, XiaoMI-3S, X96 全部 amlogic_s905x.img
s905w X96-Mini, TX3-Mini, W95, X96W/FunTV, MXQ-Pro-4K 全部 amlogic_s905w.img
s905mb S65 全部 amlogic_s905mb.img
s905l UNT402A, M201-S, MiBox-4, MiBox-4C, MG101, E900V21C, IP108H-53u1m, Tencent-Aurora-1s, B860AV2.1, B860AV2.1U, HM201 全部 amlogic_s905l.img
s905l2 MGV2000, MGV2000-K, MGV3000, Wojia-TV-IPBS9505, M301A, E900v21E, e900v21d, CM201-1, IP108H, MGV2000-CW 全部 amlogic_s905l2.img
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 全部 amlogic_s905l3.img
s905l3a E900V22C/D, CM311-1a-YST, M401A, M411A, UNT403A, UNT413A, ZTE-B863AV3.2-M, CM311-1a-CH, IP112H, B863AV3.1-M2 全部 amlogic_s905l3a.img
s905l3b CM201-1, CM211-1, CM311-1, E900V21D, E900V22D, E900V21E, E900V22E, M302A/M304A, Hisense-IP103H, TY1608, TY1608, MGV2000, B860AV-2.1M, UNT403A, RG020ET-CA 全部 amlogic_s905l3b.img
s905lb Q96-mini, BesTV-R3300L, SumaVision-Q7, MG101, s65, IPBS9505 全部 amlogic_s905lb.img
s905 Beelink-Mini-MX-2G, Sunvell-T95M, MXQ-Pro+4K, SumaVision-Q5 全部 amlogic_s905.img
rk3588 Radxa-Rock5B, Radxa-Rock5C, Orange-Pi-5-Plus, Beelink-IPC-R, HLink-H88K, HLink-H88K-V3, NanoPC-T6 rk3588 rockchip_boxname.img
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 rk35xx
6.x.y
rockchip_boxname.img
rk3566 Panther-X2, JP-TvBox, LCKFB-Taishan-Pi rk35xx
6.x.y
rockchip_boxname.img
rk3528 HLink-H28K, Radxa-E20C, H96-Max-M2 rk35xx rockchip_boxname.img
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 6.x.y rockchip_boxname.img
rk3328 BeikeYun, Chainedbox-L1-Pro, Station-M1, Bqeel-MVR9, Renegade/Firefly rockchip_boxname.img
rk3318 RX3318-Box 6.x.y rockchip_boxname.img
h6 Vplus, Tanix-TX6, TQC-A01 6.x.y
h6
allwinner_boxname.img

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/dev/beta/rk3588/rk35xx/h6 设置使用的内核的 tags 后缀
-k 最新版 内核版本 设置内核版本
-b yes yes/no 更新内核时自动备份当前系统使用的内核
-m no yes/no 使用主线 u-boot
-s 无/磁盘名称 [SOS] 恢复 eMMC/NVMe/sdX 等磁盘中的系统内核
-h 查看使用帮助

举例: armbian-update -k 5.15.50 -u dev

通过 -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. 安装必要的软件包(脚本仅在 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 -b s905x3 -k 6.6.12 命令即可生成指定 board 的 Armbian 镜像文件。生成的文件保存在 build/output/images 目录里。

  • 本地化打包参数说明

参数 含义 说明
-b Board 指定电视盒子型号,如 -b s905x3 . 多个型号使用 _ 进行连接,如 -b s905x3_s905d . 使用 all 表示全部型号。型号代码详见 model_database.conf 中的 BOARD 设置。默认值:all
-r KernelRepo 指定 github.com 内核仓库的 <owner>/<repo>。默认值:ophub/kernel
-u kernelUsage 设置使用的内核的 tags 后缀,如 stable, flippy, dev, beta。默认值:stable
-k Kernel 指定 kernel 名称,如 -k 6.6.12 . 多个内核使用 _ 进行连接,如 -k 6.6.12_5.15.50 。通过 -k 参数自由指定的内核版本只对使用 stable/flippy/dev/beta 的内核有效。其他内核系列例如 rk3588 / rk35xx / h6 等只能使用特定内核。
-a AutoKernel 设置是否自动采用同系列最新版本内核。当为 true 时,将自动在内核库中查找在 -k 中指定的内核如 6.6.12 的同系列是否有更新的版本,如有 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 : 使用默认配置,指定一个内核,一个型号进行打包,系统大小设定为2560MiB。
  • 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 格式,分区大小为 2560MiB, 并指定内核为 6.6.12 ,对全部型号电视盒子进行打包。

使用 GitHub Actions 进行编译

  1. 关于 Workflows 文件的配置在 build-armbian.yml 文件里。

  2. 全新编译:在 Actions 页面里选择 Build armbian ,根据 Armbian 官方支持的 OS 版本,可以选择 Ubuntu 系列:jammy,或者 Debian 系列:bullseye 等。点击 Run workflow 按钮即可编译。更多参数的设置方法可以在 Armbian 官方文档 里查阅。

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

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

- name: Rebuild 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.1.y_5.15.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.1.y_5.15.y 设置内核 版本,功能参考 -k
auto_kernel true 设置是否自动采用同系列最新版本内核,功能参考 -a
armbian_fstype ext4 设置系统 ROOTFS 分区的文件系统类型,功能参考 -t
armbian_size 512/2560 设置系统 BOOTFS 和 ROOTFS 分区的大小,功能参考 -s
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 系统默认信息

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

使用 GitHub Actions 编译内核

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

- name: Compile the kernel
  uses: ophub/amlogic-s9xxx-armbian@main
  with:
    build_target: kernel
    kernel_version: 6.1.y_5.15.y
    kernel_auto: true
    kernel_sign: -yourname

Armbian 贡献者

首先感谢 150balbes 为在 Amlogic 电视盒子中使用 Armbian 所做出的杰出贡献和奠定的良好基础。这里编译的 Armbian 系统直接使用了官方当前的最新源码进行实时编译。程序的开发思路来自 ebkso 等作者的教程。感谢各位的奉献和分享,让我们可以在更多盒子里使用 Armbian 系统。

本系统所使用的 u-boot, kernel 等资源主要从 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 的相关设备中同样适用。
  • 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 系统的制作和使用方法。在 YAopenvfD 项目中提供了另一个 openvfd 守护进程。
  • 13584452567 是本仓库 Rockchip 系列设备的开拓者,因为他的分享而拓展了对 EAIDK-610, King3399, TN3399, Kylin3399, ZCube1-Max, tvi3315a, xiaobao 等众多 Rockchip 设备的支持,他也是 TQC-A01Allwinner 设备 专用内核 的维护者。他在 论坛问答区 里提供了大量的技术支持和解决方案,为盒子圈的发展做出了巨大的贡献。
  • cooip-jm 在他的 wiki 里分享了很多 Armbian,lxc,docker,AdGuard 等应用的使用方法,推荐学习。

链接

License

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