Amlogic Releases Linux 3.14 Source Code for S905X, S905D, and S912 Processors, Has Started Working on Linux 4.4 / Android 7.0

Orange Pi Development Boards

Amlogic has just released buildroot with Linux 3.14 with support for Amlogic S905X (p212 board), S905D (p230 board), and S912 (Q200 board) processors, and the company appears to have started working on Linux 4.4 likely for future support for Android 7.0.

Amlogic_S912_Linux_BuildrootYou can check the source code as follows:

If you have the wrong toolchain the code won’t build (See comments section). So I installed several toolchains provided by Amlogic (all may not be needed) in /opt:

I also downloaded a shell script to add the toolchains to my path:

Once toolchains are setup, you can select one of three boards config (Q200 / S912 as example) and start building the code:

If you are interested in S905X or S905D instead, use respectively mesongxl_p212_release_defconfig or mesongxl_p230_release_defconfig.

I built both S912:

and S905X images successfully:

Separately, you can also find buildroot for Linux 4.4, but this is very likely very early work, and should be used together with Amlogic Android 7.0 SDK once it is released.

26 Replies to “Amlogic Releases Linux 3.14 Source Code for S905X, S905D, and S912 Processors, Has Started Working on Linux 4.4 / Android 7.0”

  1. Have they done anything to encourage Android updates for the S802, S805 S812 socs?

    It is also a shame they don’t use the 8 core GPU in their S905 line.

  2. They newer learn 🙁

    Dumping tarball with the code is NOT THE WAY to do it.

    The proper way is working with community to upstream all the changes. So what is needed is a series of patches send to [email protected] mailing list that add all missing support.

    In few months that 3.X or 4.X code dump will be old, with security holes and basically unusable for serious worketc. Upstreaming changes and maintaining these upstream is the only working way.

  3. @Ron
    I use Kodi from the Android store on my miniM8s S905 ( I replaced the installed Kodi my TV box came with )

    I just watch online content like Filmon as Kodi buffers video better on my real garbage broadband speed, 1.2 mb is a good day!

    So I am curious what are the Kodi problems you refer to?

    I do find some content needs MX player and stock media player when playing high end samples.

  4. @Theguyuk
    Apart from what Massimo wrote, this also concerns the video decoding.

    From what I know, this phenomena plagues most, if not all, Android TV boxes because of what SoC producers like Rockchip, AMLogic, Realtec (and all the rest) do – the way they act. I think that only nVidia is the only outstanding one in this matter.

    But there are other people here which could explain this issue much better than me, as my understanding of it is quite limited due to its technicality…

  5. Kodi use mediacodec (omx layer ) ,without it is impossible playback smooth any content.
    Without mediacodec support kodi is used at 0%.
    Amlogic codec are no more suport from kodi 16.

  6. Stane1983’s news is the best yet. Until they get the video stuff worked out, these boxes make terrific headless servers.

  7. Ron :
    When will AMLogic devices fully support the stock Kodi without modifications?

    Well open source allows Kodi project not be the only one to provide a Kodi version, so you can turn to Libreelec to get Kodi for amlogic devices.
    In fact their latest LE 8 alpha (Kodi Krypton), offers support for various amlogic chips and a bunch of patches already fix various kodi problems on amlogic in a stable LE 7 (kodi 16), like dynamic framerate or HD audio passthrough (s905 only i believe).

    So while amlogic still offers a very minimal linux support that definitely won’t help their cause, it will only delay the production of stable linux systems for those devices, as long as the community considers this hardware to be relevant of course.

  8. okay yeah i never really think about android.

    Well you can always dual boot, and the good thing with those powerful socs, is that they boot very fast.
    My s905 nexbox A95x (cold) boots android from the emmc in something like 20 seconds and LE from the sdcard in about 25sec.

    Also it’s not been mentioned here but will the new Wetek Play 2 s905H bring something new to the table, kodi or linux wise ?
    Although only Android 5.1 is listed on their specs sheet at the moment, i’ve not browsed their forums to see if a linux OS has been rumored.

    Or should i understand the s905H is not part of the source release ?

  9. After multiple attempts, and installed a Linaro toolchain for U-boot:

    It failed to build with the errors:

    and further below

    I’ve modified ./scp_remote.c, and it can carry on with the build, but further fails with:

  10. @Stane1983
    The one in arm-buildroot-2016-08-18-5aaca1b35f.tar.gz using mesongxm_q200_release_defconfig.
    Inside output/build/uboot-custom/Makefile it shows:

  11. @cnxsoft
    That is gxm_q200_v1_defconfig uboot defconfig. Try to build only that. If not working, use toolchains from (you also need arc-4.8 to build uboot).

    Here is my result:

    Creating “../fip/gxl/fip.bin”
    Firmware Image Package ToC:
    – SCP Firmware BL3-0: offset=0x4000, size=0xD400
    – EL3 Runtime Firmware BL3-1: offset=0x14000, size=0x140D0
    – Non-Trusted Firmware BL3-3: offset=0x2C000, size=0xA72E8
    ACS tool process done.
    11840+0 records in
    11840+0 records out
    11840 bytes (12 kB, 12 KiB) copied, 0.0128791 s, 919 kB/s
    5825+0 records in
    5825+0 records out
    5825 bytes (5.8 kB, 5.7 KiB) copied, 0.00590936 s, 986 kB/s
    ../fip/gxl/u-boot.bin build done!

  12. @Stane1983
    Toolchain issue. Removing gcc-arm-none-eabi fixed the issue:

    It failed in that BL3x thing that messes up with CPU freqs by the way… Evil thing that is 😉

  13. SSP support not available in this toolchain, please disable BR2_TOOLCHAIN_EXTERNAL_HAS_SSP
    package/ recipe for target ‘/home/ub/alinux/buildroot/output/build/toolchain-external-undefined/.stamp_configured’ failed
    make[1]: *** [/home/ub/alinux/buildroot/output/build/toolchain-external-undefined/.stamp_configured] Error 1
    Makefile:36: recipe for target ‘_all’ failed

    I’ve got this error after make
    Do you have any advice?

  14. Thanks for these instructions, I followed them and succesfuly built kernel, rootfs and u-boot. However I can’t find instructions to burn the resulting files to a working SD card. Amlogic instructions on their pdf seem to be wrong or incomplete. I have a S912 device.

    I’ve looked at what libreelec and armbian do and this is what I did:
    * Enable SD boot with balbes method form armbian
    * create a bootable SD from libreelec for s905
    * Kernel: create a fat partition and copy boot.img from buildroot renamed as kernel.img
    * DTB copy gxl_p230_2g.dtb from buildroot to fat partition renamed as dtb.img
    * expand second partition on SD card to full size and untar rootfs.tar from buildroot

    With this, I can see on the serial port, that I can boot my kernel, many devices are detected and configured correctly. But at some point it gets stuck with this message:
    /dev/cardblksd1 is not ready. Waited for 30 second
    Failed to switch root, dropping to a shell
    [ [email protected]] meson_uart c81004c0.serial: ttyS0 use xtal(8M) 24000000 change 115200 to 115200
    mount: mounting proc on /proc failed: Device or resource busy

    I’m sure I’m mixing u-boot, kernel, dtb configurations, but without any other instructions this is as far as I got. I think it should be able to boot as I got the libreelec booting correctly (usb and ethernet working) to command line (no kodi as expected because of lack of linux support for the S912 gpu).

    By the way, there is a new version of the buildroot on amlogic site , which I compiled correctly following these instruactions.

    Thanks in advance,

  15. Any news about those topic ? I just bought my h96 pro+ and I am willing to transform it into a headless server.

Leave a Reply

Your email address will not be published. Required fields are marked *