If you have an old Android TV box lying around, especially one with an Amlogic S905, S905X, S912, or similar CPU, you can give it a second life by installing Linux on it. In this guide, we'll install Armbian onto an S905X Amlogic-based TV box and then flash it to the internal storage (eMMC).
This is based on the instructions from Armbian's TV box page and the TV box installation instructions thread.
What you'll need
- An Android TV box with an Amlogic S9xx CPU
- A microSD card (at least 8GB, fast cards are better)
- A Linux computer to flash the image onto the SD card
- Basic familiarity with Linux commands
1. Download the right Armbian image
Go to Armbian's download page for Amlogic S9xx TV boxes and download a supported image. TV Boxes are not officially supported by the Armbian project. These builds are maintained by community members, so they may lack quality control or contain bugs. Be aware of this before using them.
You can choose between Desktop, Server or Minimal/IOT. I don't recommend going with Desktop since these small TV boxes are underpowered and don't perform well with a graphical user interface and heavier desktop enviroenments. I went for a Server image for the use I have in mind, but you may also choose a more light-weight Minimal/IOT image, which has a very small footprint and comes only with essential packages and build-in systemd-networkd.
I chose the Server image with Armbian Linux v6.14, based on Ubuntu 24.10 (Oracular). You can download it by clicking on it or download a torrent by clicking on the icon on the right.
2. Flash the image onto an SD card
Use a tool like Balena Etcher to flash the .img.xz
file to your SD card. That's right, you don't have to extract the archive before selecting it in Balena Etcher, it will automatically handle the decompression for you before flashing the image to the selected SD card.
After flashing, don't eject the card yet. If Balena Etcher is configured to auto-eject the flashed drive, plug it back in, there are a few more steps before you can boot it.
3. Prepare for first boot
Before the first boot, you may need to modify the flashed SD card to match your specific TV box hardware.
First, mount the BOOT partition on your computer. From the /boot
folder, copy (note: copy not move or rename) the correct u-boot-*.ext
file for your CPU model (for example, u-boot-s905x-s912
for an S905X chip) to u-boot.ext
. You can do that with the following command once you open a terminal in the current /boot
folder:
cp u-boot-s905x-s912 u-boot.ext
Next, open the extlinux.conf
file in the extlinux
folder and edit it: you need to add or adjust the FDT line to point to the appropriate device tree file (.dtb
) for your hardware. Examples of .dtb
files are found in /boot/dtb/amlogic/
, and you may need to try a few until you find the one that works best with your box. In my case, the correct one was already selected for the S905X.
Once you have set the correct dtb
and u-boot.ext
, the SD card is ready for boot. Eject it from your computer and follow the next steps.
4. First boot
To activate multiboot on your TV box, use the "toothpick method":
- Insert the micro SD card
- Press and hold the hidden reset button (often inside the AV jack)
- Plug in the power jack while still holding the button, and wait until the box starts booting from the SD card. It is recommended to hold the reset button for at least 7 seconds after powering the box, then you can let go.
The first boot will take longer as Armbian resizes the filesystem to utilize the entire space on the SD card, so fast cards are recommended.
Once it is fully booted, it will greet you with some useful information about the device (like the DHCP given IP address, etc.). It will ask you to set a root password, then create a regular user and to set the language settings, localization options and timezone. You will be also asked to choose the default shell (bash
or zsh
) and to configure Wi-Fi if you don't have an Ethernet cable plugged in.
5. Flash Armbian to the internal eMMC
After verifying that everything works, and maybe updating the packages on the system, you can choose to install Armbian to the internal eMMC and remove the need for the SD card by using the install-aml.sh
script — but be aware that flashing eMMC carries a risk of bricking your device if anything goes wrong, so proceed with caution.
To execute the install-aml.sh
script, run the following commands (if you are not logged in as root):
sudo su
cd /root
./install-aml.sh
Then follow the instructions on the screen. This script will:
- Backup your existing bootloader
- Partition and format the eMMC
- Copy the Armbian system to internal storage
When you see:
*******************************************
Complete copy OS to eMMC
*******************************************
it means the installation succeeded. You can then power off the TV box with:
sudo poweroff
Now remove the SD card and boot it up again. Your TV box should now boot Armbian directly from the internal storage.
Note: Running armbian-install
manually is not needed if install-aml.sh
already copied the system successfully.
6. Post-install tips
Once running from eMMC, you may want to:
- Update the installed packages:
sudo apt update
sudo apt upgrade
- Set up zsh as your default shell (if it is not already the default):
chsh -s $(which zsh)
-
Enable password feedback to see asterisks when typing passwords (see my previous post: Enable Password Asterisks in Ubuntu Terminal)
-
Check your Ethernet speed with:
sudo ethtool eth0
If you see
Speed: 100Mb/s
, it means your Ethernet port is running at 100Mbps. Most cheap TV boxes don't support Gigabit Ethernet.
Conclusion
Installing Linux on an old Android TV box is a great way to recycle hardware that would otherwise sit unused or go to landfill. While not every TV box is fully supported yet, many Amlogic S9xx devices can run Armbian very well for tasks like lightweight servers, media centers, or home automation hubs. In terms of performance, the S905X SoC in my TV box is somewhere between a Raspberry Pi 3 and 4.
You can use these small Armbian TV boxes for:
- Home server — run Nextcloud, Plex, Jellyfin, or even a lightweight NAS.
- Docker host — deploy containers for little services (like Pi-hole, web servers, databases, etc.).
- Retro gaming machine — install RetroArch or Lakka to emulate older consoles.
- Media center — install Kodi or Jellyfin Media Player and output straight to a TV.
- IoT hub — run things like Home Assistant or Node-RED to manage smart devices.
- Programming sandbox — a cheap and efficient place to run Python, Node.js, etc.
- Network tools — make it a Pi-hole DNS sinkhole or a VPN server.
- Light desktop — if you install a minimal desktop environment like XFCE, you can use it for browsing, text editing, etc.
Give it a try — you might be surprised by what these little boxes can still do!