View Chinese description | 查看中文说明
The Armbian system is a lightweight Linux system based on Debian/Ubuntu built specifically for ARM chips. The Armbian system is lean, clean, and 100% compatible and inherits the functions and rich software ecosystem of the Debian/Ubuntu system. It can run safely and stably in TF/SD/USB and the eMMC of the device.
Now you can replace the Android TV system of the TV box with the Armbian system, making it a powerful server. This project builds Armbian system for Amlogic
, Rockchip
and Allwinner
boxes. including install to eMMC and update kernel related functions. Please refer to the Armbian Documentation for the usage method.
The latest version of the Armbian firmware can be downloaded in Releases. Welcome to Fork
and personalize it. If it is useful to you, you can click on the Star
in the upper right corner of the repository to show your support.
💡Tip: Currently s905 Boxes can only be used in TF/SD/USB
, Other models of boxes support writing to eMMC
for use. For more information, please refer to Description of Supported Device List.
Choose the corresponding firmware according to your box. See the corresponding instructions for the use of different devices.
-
For the installation method of the
Rockchip
platform, please refer to Section 8 in the documentation。 -
Amlogic
andAllwinner
platform,Then write the IMG file to the USB hard disk through software such as Rufus or balenaEtcher. Insert the USB hard disk into the box. Login in to armbian (default user: root, default password: 1234) → input command:
armbian-install
Optional | Default | Value | Description |
---|---|---|---|
-m | no | yes/no | Use Mainline u-boot |
-a | yes | yes/no | Use ampart tool |
-l | no | yes/no | List show all |
Example: armbian-install -m yes -a no
Login in to armbian → input command:
# Run as root user (sudo -i)
# If no parameter is specified, it will update to the latest version.
armbian-update
Optional | Default | Value | Description |
---|---|---|---|
-k | latest | kernel name | Set the kernel name |
-v | stable | stable/rk3588/dev | Set the kernel version branch |
-m | no | yes/no | Use Mainline u-boot |
-b | yes | yes/no | Automatically backup the current system kernel |
-r | "" | "" | [Rescue] Update eMMC with system kernel from USB |
Example: armbian-update -k 5.15.50 -v dev
When updating the kernel, the kernel used by the current system will be automatically backed up. The storage path is in the /ddbr/backup
directory, and the three recently used versions of the kernel will be preserved. If the newly installed kernel is unstable, the backed up kernel can be restored at any time. If the update fails and the system cannot be started, you can start any version of Armbian via USB to recover the system in eMMC. For more instructions, see the help documentation.
Login in to armbian → input command:
armbian-software
Use the armbian-software -u
command to update the local software center list. According to the user's demand feedback in the Issue, gradually integrate commonly used software to achieve one-click install/update/uninstall and other shortcut operations. Including docker images
, desktop software
, application services
, etc. See more Description.
Login in to armbian → input command:
armbian-config
If you feel that the memory of the current box is not enough when you are using applications with a large memory footprint such as docker
, you can create a swap
virtual memory partition, Change the disk space a certain capacity is virtualized into memory for use. The unit of the input parameter of the following command is GB
, and the default is 1
.
Login in to armbian → input command:
armbian-swap 1
Login in to armbian → input command:
armbian-openvfd
Debug according to LED screen display control instructions.
Amlogic
box needs to manually activate the remaining space of TF/SD/USB (Rockchip and Allwinner have been activated automatically), Login in to armbian → input command:
armbian-tf
According to the prompt, enter e
to expand the remaining space to the current system partition and file system, and enter c
to create a new third partition.
Or manually allocate the remaining space
View Operation screenshot
# 1. Confirm the name of the TF/SD/USB according to the size of the space. The TF/SD is [ `mmcblk` ], USB is [ `sd` ]
Command: Enter [ fdisk -l | grep "sd" ]
# 2. Get the starting value of the remaining space, Copy and save, used below (E.g: 5382144)
Command: Enter [ fdisk -l | grep "sd" | sed -n '$p' | awk '{print $3}' | xargs -i expr {} + 1 ]
# 3. Start allocating unused space (E.g: sda, mmcblk0 or mmcblk1)
Command: Enter [ fdisk /dev/sda ] Start allocating the remaining space
Command: Select [ n ] to create a partition
Command: Select [ p ] to specify the partition type as primary partition
Command: Set the partition number to [ 3 ]
Command: The start value of the partition, enter the value obtained in the second step, E.g: [ 5382144 ]
Command: End value, press [ Enter ] to use the default value
Command: If there is a hint: Do you want to remove the signature? [Y]es/[N]o: Enter [ Y ]
Command: Enter [ t ] to specify the partition type
Command: Enter Partition number [ 3 ]
Command: Enter Hex code (type L to list all codes): [ 83 ]
Command: Enter [ w ] to save
Command: Enter [ reboot ] to restart
# 4. After restarting, format the new partition
Command: Enter [ mkfs.ext4 -F -L SHARED /dev/sda3 ] to format the new partition
# 5. Set the mount directory for the new partition
Command: Enter [ mkdir -p /mnt/share ] to Create mount directory
Command: Enter [ mount -t ext4 /dev/sda3 /mnt/share ] to Mount the newly created partition to the directory
# 6. Add automatic mount at boot
Command: Enter [ vi /etc/fstab ]
# Press [ i ] to enter the input mode, copy the following values to the end of the file
/dev/sda3 /mnt/share ext4 defaults 0 0
# Press [ esc ] to exit, Input [ :wq! ] and [ Enter ] to Save, Finish.
Supports backup/restore of the box's EMMC
partition in TF/SD/USB
. It is recommended that you back up the Android TV system that comes with the current box before installing the Armbian system in a brand new box, so that you can use it in the future when restoring the TV system.
Please login in to armbian → input command:
armbian-ddbr
According to the prompt, enter b
to perform system backup, and enter r
to perform system recovery.
For the usage of compiling the kernel in Armbian, see the compile-kernel documentation. please login in to armbian → input command:
armbian-kernel -u
armbian-kernel -k 5.10.125
To update all service scripts in the local system to the latest version, you can login in to armbian → input command:
armbian-sync
In the use of Armbian, please refer to documents for some common problems that may be encountered.
-
Clone the repository to the local.
git clone --depth 1 https://github.com/ophub/amlogic-s9xxx-armbian.git
-
Install the necessary packages (The script has only been tested on 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)
-
Enter the
~/amlogic-s9xxx-armbian
root directory, and then create thebuild/output/images
folder, and upload the Armbian image ( Eg:Armbian_21.11.0-trunk_Odroidn2_current_5.15.50.img
) to this~/amlogic-s9xxx-armbian/build/output/images
directory. Please keep the release version number (e.g.21.11.0
) and kernel version number (e.g.5.15.50
) in the name of the original Armbian image file, It will be used as the name of the armbian firmware after rebuilding. -
Enter the
~/amlogic-s9xxx-armbian
root directory, and then run Eg:sudo ./rebuild -b s905x3 -k 5.10.125
to build armbian foramlogic s9xxx
. The generated Armbian image is in thebuild/output/images
directory under the root directory.
Optional | Meaning | Description |
---|---|---|
-b | Board | Specify the Build firmware type. Write the build firmware name individually, such as -b s905x3 . Multiple firmware use _ connect such as -b s905x3_s905d . Use all for all board models. The model code is detailed in the BOARD setting in model_database.conf file. |
-k | Kernel | Specify the kernel version, Such as -k 5.10.125 . Multiple kernel use _ connection such as -k 5.10.125_5.15.50 . The kernel version freely specified by the -k parameter is only valid for the kernel in the stable directory, and other kernels such as rk3588 are specified by the model_database.conf file. |
-a | AutoKernel | Set whether to automatically adopt the latest version of the kernel of the same series. When it is true , it will automatically find in the kernel library whether there is an updated version of the kernel specified in -k such as 5.10.125 version. If there is the latest version of same series, it will automatically Replace with the latest version. When set to false , the specified version of the kernel will be compiled. Default value: true |
-r | KernelRepo | Specify the name of the kernel repository, Such as -r https://github.com/ophub/kernel/tree/main/pub |
-s | Size | Specify the ROOTFS partition size for the firmware. The default is 2560MiB, and the specified size must be greater than 2048MiB. Such as -s 2560 |
-t | RootfsType | Set the file system type of the ROOTFS partition of the firmware, the default is ext4 type, and the options are ext4 or btrfs type. Such as -t btrfs |
-n | CustomName | Set the signature part of the firmware name. The default value is empty. You can add signatures such as _server , _gnome_desktop or _ophub as needed. Do not include spaces when setting custom signatures. |
-g | GH_TOKEN | Optional. Set ${{ secrets.GH_TOKEN }} for api.github.com query. Default: None |
sudo ./rebuild
: Use the default configuration to pack all TV Boxes.sudo ./rebuild -b s905x3 -k 5.10.125
: recommend. Use the default configuration, specify a kernel and a firmware for compilation.sudo ./rebuild -b s905x3_s905d -k 5.10.125_5.15.50
: Use the default configuration, specify multiple cores, and multiple firmware for compilation. use_
to connect.sudo ./rebuild -b s905x3 -k 5.10.125 -s 2560
: Use the default configuration, specify a kernel, a firmware, and set the partition size for compilation.sudo ./rebuild -b s905x3_s905d
: Use the default configuration, specify multiple firmware, use_
to connect. compile all kernels.sudo ./rebuild -k 5.10.125_5.15.50
: Use the default configuration. Specify multiple cores, use_
to connect.sudo ./rebuild -k 5.10.125_5.15.50 -a true
: Use the default configuration. Specify multiple cores, use_
to connect. Auto update to the latest kernel of the same series.sudo ./rebuild -t btrfs -s 2560 -k 5.10.125
: Use the default configuration, set the file system to btrfs format and the partition size to 2560MiB, and only compile the armbian firmware with the kernel version 5.10.125.
-
Workflows configuration in build-armbian.yml file.
-
New compilation: Select
Build armbian
on the Actions page, According to the OS version officially supported by Armbian, you can choose Ubuntu series:jammy
, or Debian series:bullseye
, etc., Click theRun workflow
button. More parameter setting methods can be found in the official document of Armbian. -
Compile again: If there is an
Armbian_.*-trunk_.*.img.gz
file in Releases, you do not need to compile it completely, you can directly use this file tobuild amlogic armbian
of different board. SelectUse Releases file to build armbian
on the Actions page. Click theRun workflow
button. -
Use other Armbian firmware, such as odroidn2 provided by the official Armbian firmware download site armbian.tnahosting.net, only by introducing the script of this repository in the process control file rebuild-armbian.yml for Armbian reconstruction, it can be adapted to the use of other TV Boxes. In the Actions page, select
Rebuild armbian
, and enter the Armbian network download url such ashttps://dl.armbian.com/*/Armbian_*.img.xz
, or in the process control file rebuild-armbian.yml, set the load path of the rebuild file through thearmbian_path
parameter. code show as below:
- 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: 5.10.125_5.15.50
gh_token: ${{ secrets.GH_TOKEN }}
For the related settings of GitHUB RELEASES_TOKEN, please refer to: RELEASES_TOKEN. The relevant parameters correspond to the local packaging command
, please refer to the above description.
Optional | Defaults | Description |
---|---|---|
armbian_path | None | Set the path of the original Armbian file, support the file path in the current workflow such as build/output/images/*.img , and also support the use of the network download address such as: https://dl.armbian.com/*/Armbian_*.img.xz |
armbian_board | all | Set the board of the packaged TV Boxes, function reference -b |
armbian_kernel | 6.1.1_5.15.1 | Set kernel version, function reference -k |
auto_kernel | true | Set whether to automatically use the latest version of the same series of kernels, function reference -a |
kernel_repo | ophub/kernel | Specify the name of the kernel Repository, function reference -r |
armbian_size | 2560 | Set the size of the firmware ROOTFS partition, function reference -s |
armbian_fstype | ext4 | Set the file system type of the firmware ROOTFS partition, function reference -t |
armbian_sign | None | Set the signature part of the firmware name, function reference -n |
gh_token | None | Optional. Set ${{ secrets.GH_TOKEN }}, function reference -g |
To upload to Releases
, you need to add ${{ secrets.GITHUB_TOKEN }}
and ${{ secrets.GH_TOKEN }}
to the repository and set Workflow read and write permissions
, see the instructions for details.
Parameter | For example | Description |
---|---|---|
${{ env.PACKAGED_OUTPUTPATH }} | out | OpenWrt firmware storage path |
${{ env.PACKAGED_OUTPUTDATE }} | 04.13.1058 | Packing date(month.day.hour.minute) |
${{ env.PACKAGED_STATUS }} | success | Package status: success / failure |
Name | Value |
---|---|
Default IP | Get IP from the router |
Default username | root |
Default password | 1234 |
For the compilation method of the kernel, see compile-kernel
- name: Compile the kernel
uses: ophub/amlogic-s9xxx-armbian@main
with:
build_target: kernel
kernel_version: 5.10.125_5.15.50
kernel_auto: true
kernel_sign: -yourname
First of all, I would like to thank 150balbes for his outstanding contributions and a good foundation for using Armbian in the Amlogic TV Boxes. The Armbian system compiled here directly uses the latest official source code for real-time compilation. The development idea of the program comes from the tutorials of authors such as ebkso. Thank you for your dedication and sharing, so that we can use the Armian system in more boxes.
The kernel
/ u-boot
and other resources used by this system are mainly copied from the project of unifreq/openwrt_packit, Some files are shared by users in Pull and Issues of amlogic-s9xxx-openwrt / amlogic-s9xxx-armbian / luci-app-amlogic / kernel and other projects. To thank these pioneers and sharers, From now on (This source code repository was created on 2021-09-19), I have recorded them in CONTRIBUTORS.md. Thanks again everyone for giving new life and meaning to the TV Boxes.
- The amlogic-s9xxx-openwrt project provides the
OpenWrt
system used in the box, which is also applicable to the relevant devices that support Armbian. - unifreq has made
OpenWrt
system for more boxes such asAmlogic
,Rockchip
andAllwinner
, which is a benchmark in the box circle and is recommended for use. - Scirese tested the production, installation and use of
Arch Linux ARM
/Manjaro
system in the Android TV boxes, please refer to the relevant instructions in his repository for details. - 7Ji published some articles on reverse engineering and development on the Amlogic platform in his blog, such as installing the ArchLinux ARM system in the way of ArchLinux, and introducing the startup mechanism of the Amlogic platform. In his ampart project, he provided a partitioning tool that supports reading and editing Amlogic's eMMC partition table and DTB partitions, and can make 100% use of the eMMC space. The method of making and using
Arch Linux ARM
is provided in amlogic-s9xxx-archlinuxarm project. Yet Another openvfd Daemon is provided in YAopenvfD project.
The amlogic-s9xxx-armbian © OPHUB is licensed under GPL-2.0