Jump to content

Installation Instructions for TV Boxes with Amlogic CPUs


Recommended Posts

These instructions are for Amlogic CPUs for TV Boxes. 


Note: 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 attempting the install.  coreelec changes the boot environment in ways that are incompatible with these Armbian builds.


Download links:

    Stable Builds: https://redirect.armbian.com/aml-s9xx-box/archive

    Weekly Development Builds:  https://github.com/armbian/community (aml-s9xx-box)

    or build your own image using the Armbian build framework


Once you download your chosen 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.


Your extlinux.conf file should look like:

LABEL Armbian
LINUX /uImage
INITRD /uInitrd

#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

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.  A common mistake is for people to uncomment the dtb file needed, but leave other dtb lines in the file not uncommented and thus they fail to boot.  You may need to attempt to use different dtb files until you find the one that works the best for your box's hardware (there are a bunch of dtb files in /boot/dtb/amlogic/... 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

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 unplugged, 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). (Note: Installing to emmc has some risks of bricking your box.  Don't do this unless you feel you understand how to reinstall your box's android firmware)  You install armbian to emmc by running the shell script in the /root directory: install-aml.sh. Note: It is not possible to install into emmc on boxes with the s905 cpu (s905x, s905w, s905x2, etc however should all be supported).  It is recommended that you make a backup of emmc first.  Also be prepared if anything goes horribly wrong with your emmc install to reinstall the android firmware using the Amlogic USB Burning Tool to unbrick your device.  If you have or can find an original android firmware on the internet and you can generally (but not always) recover a bricked box using the Amlogic tool and the original firmware file.



Mapping from uboot to CPU and dtb:



s905 - gxbb



S905X - gxl

S905W - gxl

S905D - gxl

S905L - gxl

S805X - gxl

S912 - gxm

A311D - gxm



S905X2 - g12a

S922 - g12b

S905X3 - sm1


Not supported or not tested

S805 -

S905W2 -

S905X4 -

S805X2 - s4

A113D - axg

A113X - axg




Note: Followup posts in this thread should be limited to comments to improve or better understand these instructions.  Other issues should be posted as new questions in the Amlogic CPU Boxes sub-forum.

Link to comment
Share on other sites

Donate your old hardware to community. Start a giveaway Raffle!

Posted (edited)

"Note: It is not possible to install into emmc on boxes with the s905 cpu"


CoreElec installed just fine to the eMMC on a 905 box.. why is Armbian different?

Edited by Black6spdZ
Link to comment
Share on other sites

A quick note on enabling multi-boot using the 'toothpick' method, following on from Steeman's original post above.


The process I have used successfully on a number of S905x3 based devices is as follows:


Power up with the SD card installed and the switch depressed as outlined in Steeman's post.

Keep the switch depressed for a period of 15 seconds, then release it.

The device may display the Android splash screen, but not boot to the SD card. 

After a further period of 15 seconds, power off the device.

Then power on the device and it should boot to Armbian from the SD card. Be patient, this can take a while for the first boot.


Subsequent power up cycles will simply start Armbian from SD card if it is installed, and Android from eMMC if not.



Link to comment
Share on other sites

If anyone wants to have kernel headers simply downgrade to the latest stable available kernel "currently it's 6.1.11" in "armbian-config --> system --> other"

Then install linux-headers-current-meson64 with apt.

But keep a backup image of the sdcard with the original kernel just in case something goes wrong.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines