Installation Instructions for TV Boxes with Amlogic CPUs


Recommended Posts

These instructions are for balbes150's builds supporting Amlogic CPUs for TV Boxes. 


Note1: As of October 14th, 2020 balbes150 is no longer supporting Amlogic CPUs (and no one else has yet stepped up to continue his efforts). Therefore if you install using these builds/instructions you will have a 5.9.0 linux kernel with no upgrade path for the kernel. You will get updates from your chosen distribution (debian or ubuntu) just no kernel updates, unless someone else in the community picks up the ball and begins building/maintaining amlogic kernels for TV Boxes.


Note2: If you have previously run other distributions on the box such as coreelec the below installation will not work.  You will need to restore the original android firmware before attemping the install.  coreelec changes the boot environment in ways that are incompatible with these armbian builds.


Download link:




In the downloads directory you will find builds for debian (buster and bullseye) and ubuntu (bionic and focal), with both desktop and non-desktop versions.


Once you download your chosen build (for example - ubuntu focal non-desktop build), you need to burn the image to an SD card.  Generally balenaEtcher is recommended as it does a verification of the burn.  Also be sure to use high quality SD cards.


Once you have the SD card with your chosen build, then you need to edit the boot configuration file on the SD card.  In the BOOT partition of the SD card there will be a file /boot/extlinux/extlinux.conf, that you need to edit. (In earlier builds this was done in the /boot/uEnv.txt file, so a lot of comments you may find in older threads talk about that file, but in later builds it was changed to the extlinux.conf file)


Your extlinux.conf file should look like:

LABEL Armbian
LINUX /zImage
INITRD /uInitrd

# aml s9xxx
#FDT /dtb/amlogic/meson-gxbb-p200.dtb
FDT /dtb/amlogic/meson-gxl-s905w-tx3-mini.dtb
#FDT /dtb/amlogic/meson-gxm-q200.dtb
#FDT /dtb/amlogic/meson-g12a-x96-max.dtb
#FDT /dtb/amlogic/meson-g12b-odroid-n2.dtb
APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes net.ifnames=0

Basically you need to have the correct dtb for your box and the correct boot command for your box, along with the top three environment variables set.  *Everything* else needs to either be deleted or commented out.  This is a common mistake where people uncomment out what they need, but leave other lines in the file not uncommented and thus they fail to boot.  The extlinux.conf file above is directly from my TX3 mini box.  Note that if you were using a different box than a TX3 mini, you would attempt to use different dtb files until you found the one that works the best for you boxes hardware (there are a bunch of dtb files in /boot/dtb/... to try depending on your cpu architecture and hardware).  It is unlikely that there will be a matching dtb file for your TV box.  The idea is to find the one that works best for your box.  This may mean that you try booting with different dtb files until you fine one that works good enough for your needs.  By searching the forums you will find information about what dtbs other users have found work best for different boxes.


Next you need to copy the correct uboot for your box.  This is needed for how these builds boot on amlogic boxes.  There are three different u-boot files located in the /boot directory:  u-boot-s905, u-boot-s905x-s912, u-boot-s905x2-s922

You need to copy (note copy not move) the u-boot file that matches your cpu to a new file named: u-boot.ext

So for example with a TX3 mini box that has an s905w cpu you would copy u-boot-s905x-s912 to u-boot.ext

Note that for x905[w,d,l], and other variants use u-boot-s905x-s912; for s905x3 use u-boot-s905x2-s922


Once you have your SD card prepared you need to enable multiboot on the box.  There are different ways documented to do this, but the most common is the "toothpick" method.  The "toothpick" method means to hold the reset button while applying power to the box.  The reset button is often hidden and located at the back of the audio/video jack connector.  By pressing that button with a toothpick or other such pointed device you can enable multiboot.  What you need to do is have the box unpluged, have your prepared sd card inserted, then press and hold the button while inserting the power connector.  Then after a bit of time you can release the button.  (I don't know exactly how long you need to hold the button after power is applied, but if it doesn't work the first time try again holding for longer or shorter times).


You should now be booting into armbian/linux.  Note that the first boot takes longer as it is enlarging the root filesystem to utilize the entire SD card.


After you are satisfied that your box is working correctly for your needs you can optionally copy the installation from the SD card to internal emmc storage (assuming your box has emmc).  You do this by running the appropriate shell script in /root, which is either /root/ for s905 cpus or /root/ for all others: s905[x,w,l,x2,x3],s912,s922.  Note that it is recommended that you make a backup of emmc first (use the ddbr tool that should be installed on your sd card).  Also be prepared if anything goes horribly wrong with your emmc install to reinstall the armbian firmware using the Amlogic USB Burning Tool to unbrick your device.  It is generally easy to find original android firmwares on the internet and you can generally recover a bricked box using the Amlogic tool and an original firmware file.




Link to post
Share on other sites
Armbian is a community driven open source project. Do you like to contribute your code?