Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md
Armbian

Armbian

English Instructions | 中文说明 | 日本語説明

Armbian is a lightweight Linux distribution built specifically for ARM chips, based on Debian/Ubuntu. The Armbian system is lean, clean, and 100% compatible with Debian/Ubuntu, inheriting its functionality and rich software ecosystem. It runs securely and stably on TF/SD/USB storage and the device's eMMC. This project preserves the integrity of the official Armbian system while extending support for unofficially supported devices such as TV boxes, and adds a set of convenient management commands. You can now replace the Android TV system on your TV box with Armbian, transforming it into a powerful server.

This project relies on many contributors to build the Armbian system for Amlogic, Rockchip, and Allwinner devices. It supports writing to eMMC, kernel updates, and other features. For detailed usage, see the Armbian User Documentation. The latest Armbian system can be downloaded from Releases. Welcome to Fork and customize. If this project is helpful, please click the Star button in the upper right corner to show your support.

Default Information for Armbian System

System NameDefault UsernameDefault PasswordSSH PortIP Address
🐧 Armbian.OSroot123422Obtain from router
🐋 Armbian.Dockerroot123422Static MacVLAN IP

Supported Devices

⬆️ Models from each platform (Amlogic/Rockchip/Allwinner) are ranked by SoC performance from high to low.

SoCDeviceKernel
a311dKhadas-VIM3, WXY-OESstable
s922xBeelink-GT-King, Beelink-GT-King-Pro, Ugoos-AM6-Plus, ODROID-N2, X88-King, Ali-CT2000, WXY-OES-Plusstable
s905x3X96-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, TOX1, Khadas-VIM3Lstable
s905x2X96Max-4G, X96Max-2G, MECOOL-KM3-4G, Tanix-Tx5-Max, A95X-F2, HG680-FJstable
s905l3aE900V22C/D, CM311-1a-YST, M401A, M411A, UNT403A, UNT413A, ZTE-B863AV3.2-M, CM311-1a-CH, IP112H, B863AV3.1-M2stable
s905l3bCM201-1, CM211-1, CM311-1, E900V21D, E900V22D, E900V21E, E900V22E, M302A/M304A, Hisense-IP103H, TY1608, TY1608, MGV2000, B860AV-2.1M, UNT403A, RG020ET-CA, M411Astable
s905l3CM211-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, B860AV2.1-Astable
s912Tanix-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.2stable
s905dMECOOL-KI-Pro, Phicomm-N1, SML-5442TWstable
s905xHG680P, B860H, TBee-Box, T95, TX9, XiaoMI-3S, X96, Nexbox-a95x, BTV9stable
s905mbS65stable
s905lUNT402A, M201-S, MiBox-4, MiBox-4C, MG101, E900V21C, IP108H-53u1m, Tencent-Aurora-1s, B860AV2.1, B860AV2.1U, HM201, XiaoMI-4Cstable
s905l2MGV2000, MGV2000-K, MGV3000, Wojia-TV-IPBS9505, M301A, E900v21E, e900v21d, CM201-1, IP108H, MGV2000-CWstable
s905lbQ96-mini, BesTV-R3300L, SumaVision-Q7, MG101, s65, IPBS9505stable
s905wX96-Mini, TX3-Mini, W95, X96W/FunTV, MXQ-Pro-4K, MeCool-m8s-pro-Wstable
s905Beelink-Mini-MX-2G, Sunvell-T95M, MXQ-Pro+4K, SumaVision-Q5stable
rk3588(s)Radxa-Rock5B, Radxa-Rock5C, Orange-Pi-5-Plus, Orange-Pi-5-Pro, Orange-Pi-5-Ultra, Beelink-IPC-R, HLink-H88K, HLink-H88K-V3, NanoPC-T6, Smart-Am60, DC-A588, Orangepi-5B, CM3588-NAS, Rock-5-ITX, LZ-D3588, Boca-tcn100, Boca-tcn200, Firefly-ITX-3588J, Indiedroid-Nova, LubanCat-4, Seewo-SV50, EasePi-R2rk3588
rk3576NanoPi-m5, LCKFB-Taishan-Pi-3Mstable
rk3399EAIDK-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, NanoPi-SOM-RK3399rk35xx
stable
rk3568FastRhino-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, LubanCat-2, Rock-3B, EasePi-A2, Roceos-K40Pro, DG-Nas-Literk35xx
stable
rk3566Panther-X2, JP-TvBox, LCKFB-Taishan-Pi, WXY-OEC-turbo-4g, Station-M2, Orange-Pi-3B, X88Pro20, LubanCat-1, Rock-3C, Inspur-MD1000rk35xx
stable
rk3528HLink-H28K, Radxa-E20C, H96-Max-M2, HK1-Rbox-K8S, HT2, CD1000rk35xx
rk3328BeikeYun, Chainedbox-L1-Pro, Station-M1, Bqeel-MVR9, Renegade/Fireflyrk35xx
stable
rk3318RX3318-Boxstable
h6Vplus, Tanix-TX6, TX6-H, T95-max, TQC-A01stable
h618OrangePi-Zero3, H618-DevBoard(PCDN), Vontar-h618, BT-100M, BT-1000M, PaiNet-P3, X98Hstable

[!TIP] At present, the s905 box can only be used with TF/SD/USB; other box models support writing to EMMC. For more information, refer to the ✅ Supported Device List. To add new device support, see Section 12.15 of the documentation: Adding New Supported Devices. Please read the Armbian User Documentation before use, as it provides solutions to common issues.

Installation and Upgrade Instructions for Armbian

Choose the Armbian system that matches your device model. Refer to the corresponding documentation for device-specific usage instructions.

  • Install Armbian to EMMC

  1. For Rockchip platform devices, refer to Chapter 8 of the documentation.

  2. For Amlogic and Allwinner platform devices, use tools such as Rufus or balenaEtcher to write the system to a USB stick, then insert the USB stick into the device. Log in to the Armbian system (default user: root, default password: 1234) and enter the command:

armbian-install
OptionalDefaultOptionsDescription
-mnoyes/noUse mainline u-boot
-ayesyes/noUse ampart partition adjustment tool
-lnoyes/noShow full device list

Example: armbian-install -m yes -a no

  • Update Armbian Kernel

Log in to the Armbian system and enter the command:

# Run as root user (sudo -i)
# If no parameter is specified, it will be updated to the latest version.
armbian-update
OptionalDefaultOptionsDescription
-rophub/kernel<owner>/<repo>Set the repository for downloading kernels from github.com
-uAutomationstable/flippy/beta/rk3588/rk35xxSet the kernel tags suffix
-kLatest versionKernel versionSet the kernel version
-byesyes/noAutomatically back up the currently used kernel when updating
-ddebtar/debSet the preferred kernel package format. If unavailable, the script will automatically try the alternative format. The deb format is recommended for compiling custom drivers.
-mnoyes/noUse mainline u-boot
-sNoneNone/DiskName[SOS] Restore the system kernel on eMMC/NVMe/sdX or other disks
-hNoneNoneView help information

Example: armbian-update -k 5.15 -u stable -d deb

When specifying the kernel version via the -k parameter, you can provide an exact version number (e.g., armbian-update -k 5.15.50) or specify only the kernel series (e.g., armbian-update -k 5.15). When a series is specified, the latest version within that series will be used automatically.

During kernel updates, the currently running kernel is automatically backed up to the /ddbr/backup directory, retaining the 3 most recent versions. If the newly installed kernel proves unstable, you can restore a backup kernel at any time. If a kernel update renders the system unbootable, use armbian-update -s to restore the system kernel. For more details, see the Help Document.

  • Replace Armbian Sources

Log in to the Armbian system and enter the command:

armbian-apt

Choosing the appropriate software source for your country or region can significantly improve download speeds. For more details, see the Help Document.

  • Install Common Software

Log in to the Armbian system and enter the command:

armbian-software

The command armbian-software -u updates the local software center list. Based on user feedback in Issues, commonly used software has been gradually integrated with one-click install/update/uninstall support. This includes Docker images, desktop software, application services, and more. See the detailed instructions.

  • Modify Armbian Configuration

Log in to the Armbian system and enter the command:

armbian-config
  • Create Swap for Armbian

If you find the device's memory insufficient when running memory-intensive applications such as Docker, you can create a swap virtual memory partition to use a portion of disk space as additional memory. The parameter unit is GB, with a default value of 1.

Log in to the Armbian system and enter the command:

armbian-swap 1
  • Control LED Display

Log in to the Armbian system and enter the command:

armbian-openvfd

Debug according to the LED Screen Display Control Instructions.

  • Backup/Restore EMMC Original System

Supports backing up and restoring the device's EMMC partition via TF/SD/USB. Before installing Armbian on a new device, it is recommended to back up the original Android TV system for future restoration if needed.

Boot the Armbian system from TF/SD/USB and enter the command:

armbian-ddbr

Enter b at the prompt to back up the system, or r to restore.

[!IMPORTANT] Alternatively, the Android system can be flashed directly into eMMC via USB cable. Android system images are available in Tools.

  • Compile the Kernel in Armbian

For kernel compilation instructions, see the Compile Kernel documentation. Log in to the Armbian system and enter the command:

armbian-kernel -u
armbian-kernel -k 6.6.12
  • More Usage Instructions

To update all service scripts in the system to the latest version, log in to the Armbian system and enter the command:

armbian-sync

For common issues and their solutions when using Armbian, see documents.

Local Packaging

  1. Clone the repository to local git clone --depth 1 https://github.com/ophub/amlogic-s9xxx-armbian.git

  2. Install the necessary software packages (using Ubuntu 24.04 as an example)

Enter the ~/amlogic-s9xxx-armbian root directory, then run the installation command:

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. Enter the ~/amlogic-s9xxx-armbian root directory, create the build/output/images folder, and upload the Armbian image file (e.g., Armbian_21.11.0-trunk_Odroidn2_current_5.15.50.img) to the ~/amlogic-s9xxx-armbian/build/output/images directory. Retain the release version number (e.g., 21.11.0) and kernel version number (e.g., 5.15.50) in the original filename, as they will be used for naming the rebuilt Armbian system.

  2. Enter the ~/amlogic-s9xxx-armbian root directory and run sudo ./rebuild -b s905x3 -k 6.6.12 to generate the Armbian image for the specified board. Output files are saved in the build/output/images directory.

  • Local Packaging Parameter Description

ParameterMeaningDescription
-bBoardSpecifies the target device codename (default is all). You can specify a single device (e.g., -b s905x3) or connect multiple codenames with underscores to compile them together (e.g., -b s905x3_s905d). The parameter also supports special keywords for batch compilation: all compiles every device in the database, first50 compiles the first 50 devices, range50_100 compiles devices from the 51st to the 100th (similarly for range100_150), and last20 compiles the last 20 devices. Additionally, you can compile by hardware platform (amlogic, rockchip, allwinner) to build all images for that specific platform, for example, -b amlogic. Appending numeric values to the platform name allows you to compile a specific range within that platform's support list; for example, -b amlogic50 builds the first 50 devices under the Amlogic platform, and -b amlogic50_100 builds the 51st to the 100th devices. For a complete list of supported device codenames, please refer to the BOARD configuration items in model_database.conf. Default: all
-rKernelRepoSpecify the <owner>/<repo> of the github.com kernel repository. Default value: ophub/kernel
-ukernelUsageSet the tags suffix of the kernel used, such as stable, flippy, beta. Default value: stable
-kKernelSpecify kernel name, such as -k 6.6.12. Connect multiple kernels with _, such as -k 6.6.12_5.15.50. The kernel version freely specified by the -k parameter is only valid for kernels using stable/flippy/beta. Other kernel series such as rk3588 / rk35xx can only use specific kernels.
-aAutoKernelSet whether to automatically use the latest kernel within the same series. When true, the kernel repository is checked for newer versions within the series specified by -k (e.g., 6.6.12), and if found, the latest version is used automatically. When false, the exact specified version is used. Default: true
-tRootfsTypeSet the file system type of the ROOTFS partition. Options: ext4 or btrfs. Example: -t btrfs. Default: ext4
-sSizeSet the image partition sizes. To set only the ROOTFS partition, specify a single value (e.g., -s 2560). To set both BOOTFS and ROOTFS, join them with / (e.g., -s 512/2560). Default: 512/2560
-nBuilderNameSet the Armbian system builder signature. Do not include spaces. Default: None
  • sudo ./rebuild: Use default configuration to package all device models.
  • sudo ./rebuild -b s905x3 -k 6.6.12: Recommended. Build with default configuration for the specified kernel.
  • sudo ./rebuild -b s905x3 -k 6.1.y: Build with default configuration, using the latest kernel in the 6.1.y series.
  • sudo ./rebuild -b s905x3_s905d -k 6.6.12_5.15.50: Build with default configuration for multiple kernels simultaneously. Use _ to join multiple kernels.
  • sudo ./rebuild -b s905x3 -k 6.6.12 -s 2560: Build a single kernel and model with default configuration; ROOTFS partition size set to 2560 MiB.
  • sudo ./rebuild -b s905x3_s905d: Build all kernels for multiple models with default configuration. Use _ to join multiple models.
  • sudo ./rebuild -k 6.6.12_5.15.50: Build all models with default configuration and multiple specified kernels. Use _ to join kernels.
  • sudo ./rebuild -k 6.6.12_5.15.50 -a true: Same as above, with automatic upgrade to the latest kernel within each series.
  • sudo ./rebuild -t btrfs -s 2560 -k 6.6.12: Build all models with btrfs filesystem, 2560 MiB ROOTFS, and kernel 6.6.12.

Use GitHub Actions for Compilation

  1. Workflow configuration files are located in the .github/workflows/ directory.

  2. Fresh Build: On the Actions page, select Build Armbian server image to use the build-armbian-arm64-server-image.yml workflow. You can choose from Ubuntu series (e.g., resolute) or Debian series (e.g., trixie). Click Run workflow to start the build.

  3. Rebuild: If Releases already contains compiled Armbian_.*-trunk_.*.img.gz files and you only need to repackage for other boards, skip the source compilation step and use build-armbian-using-releases-files.yml for secondary builds.

  4. To use other Armbian systems (e.g., the odroidn2 image from the official armbian.tnahosting.net download site), simply reference this repository's script in the workflow file build-armbian-using-official-image.yml for Armbian restructuring to support other devices. Example:

- 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 Input Parameter Description

These parameters correspond to the local packaging command options described above.

ParameterDefaultDescription
armbian_pathNoneSet the path of the original Armbian file. Supports workflow file paths (e.g., build/output/images/*.img) and network download URLs (e.g., https://dl.armbian.com/*/Armbian_*.img.xz).
armbian_boardallSet the board of the package box, refer to -b
kernel_repoophub/kernelSpecify <owner>/<repo> of the github.com kernel repository, refer to -r
kernel_usagestableSet the tags suffix of the used kernel. Refer to -u
armbian_kernel6.12.y_6.18.ySet the version of the kernel, refer to -k
auto_kerneltrueSet whether to automatically adopt the latest version of the same series kernel, refer to -a
armbian_fstypeext4Set the file system type of the system's ROOTFS partition, refer to -t
armbian_size512/2560Set the size of the system BOOTFS and ROOTFS partitions, function reference -s
armbian_filesfalseAdd custom Armbian files. When set, all files in this directory will be copied to common-files. The directory structure must mirror the Armbian root directory to ensure files are correctly overlaid (e.g., default configuration files should be placed under etc/default/).
builder_nameNoneSet the Armbian system builder signature, refer to -n
  • GitHub Actions Output Variable Description

Uploading to Releases requires Workflow read and write permissions for the repository. See the usage instructions for details.

ParameterDefaultDescription
${{ env.PACKAGED_OUTPUTPATH }}outArmbian system files output path
${{ env.PACKAGED_OUTPUTDATE }}04.13.1058Packaging date (month.day.hourminute)
${{ env.PACKAGED_STATUS }}successPackaging status: success / failure

Build Armbian Docker Image

For creating Docker images of the Armbian system, refer to the armbian_docker build script.

Compiling Kernel Using GitHub Actions

For kernel compilation instructions, see compile-kernel.

- 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 Contributors

First and foremost, thanks to 150balbes for the outstanding contributions and the solid foundation laid for running Armbian on Amlogic TV boxes. The Armbian system compiled here uses the latest official source code for real-time builds. The development approach is inspired by tutorials from authors such as ebkso. Thanks to everyone's dedication and sharing, enabling Armbian to run on an ever-growing range of devices.

The u-boot, kernel, and other resources used in this system are primarily sourced from the unifreq/openwrt_packit project. Some files have been contributed by users through Pull Requests and Issues in projects such as amlogic-s9xxx-openwrt, amlogic-s9xxx-armbian, luci-app-amlogic, u-boot, and kernel. To acknowledge these pioneers and contributors, all contributions since the repository's creation (2021-09-19) are recorded in CONTRIBUTORS.md. Thanks again to everyone for breathing new life and purpose into these devices.

Other Distributions

  • The amlogic-s9xxx-openwrt project provides the OpenWrt system for TV boxes, also applicable to Armbian-supported devices.
  • The fnnas project provides the FnNAS system for TV boxes, also applicable to Armbian-supported devices.
  • unifreq has created OpenWrt systems for a wide range of Amlogic, Rockchip, and Allwinner devices, serving as a benchmark project in the community. Highly recommended.
  • Scirese has tested the build, installation, and usage of Arch Linux ARM / Manjaro systems on Android TV boxes. See his repository for details.
  • 7Ji has published articles on reverse engineering and development for the Amlogic platform, covering topics such as installing ArchLinux ARM and analyzing the Amlogic boot mechanism. His ampart project provides a partition tool for reading and editing Amlogic eMMC partition tables and DTB partitions, enabling 100% utilization of eMMC space. The amlogic-s9xxx-archlinuxarm project provides build and usage instructions for Arch Linux ARM. The YAopenvfD project offers an alternative openvfd daemon implementation.
  • 13584452567 is the pioneer for Rockchip device support in this repository. Through his contributions, support was expanded for numerous Rockchip devices including EAIDK-610, King3399, TN3399, Kylin3399, ZCube1-Max, tvi3315a, xiaobao, and more. He also maintains specialized kernels for Allwinner devices such as TQC-A01, and has provided extensive technical support and solutions in Discussions and Issues, making significant contributions to the community.
  • cooip-jm shares many guides on Armbian, LXC, Docker, AdGuard, and other applications in his wiki. Recommended reading.

Links

License

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

关于 About

Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.
a311dallwinneramlogicarmbiandebianrockchips905s905ds905ws905xs905x2s905x3s912s922xubuntu

语言 Languages

Shell65.3%
Batchfile30.7%
Perl3.0%
C0.9%
Dockerfile0.1%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
551
Total Commits
峰值: 27次/周
Less
More

核心贡献者 Contributors