AMLogic Releases AML8726-MX Linux 3.0.8 Source Code

While doing a Google search to locate the open Linux page of AMLogic, I noticed another link reading “Amlogic AML8726-MX Linux kernel code released“. Interesting. So AMLogic appears to have released the kernel source code for their latest dual core Cortex A9 processor at the beginning of August and the tarball is available from their open source site:  kernel-common-2012-08-03-git-a63244fb9c.tar.gz.

A github user (fards) also imported the code to github, but he’s not affiliated with AMLogic, so don’t expect commits from AMLogic there. Let’s retrieve it:

AML8726-MX is codenamed MESON6 in the source code, and the code is in arch/arm/mach-meson6/, but let’s see if we can find a config file in arch/arm/configs. Yes! There are 4:

  • meson6_android_defconfig – Android config file (Single core)
  • meson6_defconfig – Linux config file (Single core) all Android config disabled.
  • meson6smp_android_defconfig – Android config file with smp (symmetric multiprocessing) support
  • meson6smp_defconfig – Config file with smp (symmetric multiprocessing) support, Android stuffs enabled, but no touchscreen support…

The descriptions are my guesses based on the file names and a quick look and the configs.

Since ARM8726-MX is a dual core processor, and it’s no fun using the single core version, let’s try  meson6smp_defconfig:

The warnings mean we won’t have access to some board config and drivers specific to AMLogic’s customer board, but we should still be able to build the kernel with one of AMLogic reference platforms.

There are 2 Meson6 boards available in menuconfig:

  • Meson6 socket board
  • Meson6 reference board

I have no idea what those are, so let’s carry on with the default setting (Meson6 socket board).

I first tried to build with Linaro toolchain, but this failed with :

arch/arm/mach-meson6/hotplug.c:18:20: error: inlining failed in call to always_inline âmeson_set_cpu_ctrl_regâ: function body not available

which appears to be a bug in gcc-4.7. So I’ve used the toolchain provided on (Code Sourcery G++) instead:

make ARCH=arm CROSS_COMPILE=~/amlogic/arm-2010q1/bin/arm-none-linux-gnueabi- -j 12 uImage
UIMAGE  arch/arm/boot/uImage
Image Name:   Linux-3.0.8-g42697c8
Created:      Sat Aug 18 18:14:00 2012
Image Type:   ARM Linux Kernel Image (lzma compressed)
Data Size:    2943441 Bytes = 2874.45 kB = 2.81 MB
Load Address: 80008000
Entry Point:  80008000
Image arch/arm/boot/uImage is ready

Great, the kernel builds fine. Let’s complete this by building and installing the modules:

make ARCH=arm CROSS_COMPILE=~/amlogic/arm-2010q1/bin/arm-none-linux-gnueabi- -j12 INSTALL_MOD_PATH=build_modules modules
make ARCH=arm CROSS_COMPILE=~/amlogic/arm-2010q1/bin/arm-none-linux-gnueabi- -j12 INSTALL_MOD_PATH=build_modules modules_install

Those last steps will build the Mali drivers (ump.ko and mali.ko), and “install” all modules in build_modules directory.

For AMLogic AM8726-MX set-top boxes such as Geniatech ATV1200 (See video), this code might be enough, but fads mentioned in a comment that lcd/ips code is missing and it might be more difficult to use this code on tablets such as Ainol Novo 7 Aurora II. He also started a developers thread in, join the discussion if you are a developer interested in this project.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard

38 Replies to “AMLogic Releases AML8726-MX Linux 3.0.8 Source Code”

  1. so that means soon or later we can expect a Linux distro for ainol elf2 which is a DualCore Amlogic8726-MX tablet saw somewhere selling at $99.
    LCD issue means display will work without touch or it wont show anything? I mean if display doesn’t give touch response, it’ll still remain usable with keyboard mouse.

  2. @max
    That means blank screen, but it should be possible to copy the binary LCD modules from your tablet.
    I’m also not sure the the touch support is there for your device. There are no touch modules, but touch screen support is enabled inside the kernel. If you really want to know you can follow the slatedroid link above.

  3. oky, Also an entirely different tangent but still somewhat relevant.
    Technically which SOC based tablet should give you a better performance especially for ‘web browsing and for longer battery life’.

    DualCore RK3066 based or DualCore Amlogic8726-MX6 based, given both got rest of the parameters same i.e 1gb ram /1024×600 /3700mAh etc.

  4. @LuckyKnight
    They are starting to appear on the Chinese OEM sites, but it’s better to wait for Pivos to release such a box for a number of reasons
    1) Your supporting Pivos and XBMC team by buying their box.
    2) Pivos will be building a linux/XBMC firmware for the box like they do for their 8726-M1 box.
    3) Actual technical support.
    4) You know what you will be getting, buying a box right now from the OEM’s may be a risk even if it has the same chipset unforeseen issues may pop up and you could get a bum deal from the OEM’s on the hardware being poor quality.

  5. can you please compile the module uinput.ko for the AML8726-MX Linux 3.0.8.

    many devices have this kernel and with this module we can use also DroidMote

  6. @io
    Sorry, I don’t have time right now. You could try it yourself

    amlogic. Other processor have support via external players (e.g. diceplayer), so the videos aren’t played within XBMC interface

  7. Hey guys,

    as noted the source that amlogic released is missing configs and drivers.
    its also designed to be built with a very old q2010 toolchain.

    its actually fairly close to the code for the ainol fire, there’s quite a lot of changes to the ainol elf-ii code.

    I was busy messing with the elf-ii code (it runs on gcc4.6 at least now and some of the earlier linaro 4.7 toolchains)

    that’s available here;

    and the fire code (needs updating when ainol finally decide to release patches for a bad touchscreen f/w bug)

    is here:

    hope this helps

  8. should also point out that the elf-ii code ootb uses an older Mali code sdk 10? the fire and main amlogic code uses sdk14, so I patched that one in to the elf.

    I’m keen on getting the arm r3po/r3p1 mali code working.

    my gits are messy, as I use them as a transfer for experiments between different build machines btw.. you have been warned 😀

  9. I have tried to compile the module joydev to have joystick support in my geniatech atv1200.

    I followed the instructions in the article, and I have generated the compiled module: joydev.ko.

    But when I’ve put in the geniatech atv1200, to execute the instruction to load the module (as root):

    I always get the same error:
    exec format error

    well, I check with the modinfo command the module has the same version of the kernel that my atv1200, but still fails also.

    any suggestions?
    or maybe just the device does not support this module?

    Besides, I run the command dmesg, but no joydev message to tell me what the problem is.

  10. after all the tests, I have not been able to create a module that is loaded correctly in the Mygica / Geniatech atv1200.

    this is what I did:
    kernel source code from :
    git clone git://

    possible configurations for atv1200 (I’ve tested with the latest):
    meson6_android_defconfig – Android config file (Single core)
    meson6_defconfig – Linux config file (Single core) Android all config disabled.
    meson6smp_android_defconfig – Android config File with smp (symmetric multiprocessing) support
    meson6smp_defconfig – Config File with smp (symmetric multiprocessing) support, enabled Android stuffs, but no touchscreen support …

    To create the module I am following this tutorial:

    although there are other items that can also come in handy:

    any suggestions?

  11. yes, same error 🙁

    When I run the modinfo instruction only see this small difference:

    3.0.8-g2847a5e SMP preempt mod_unload ARMv7

    3.0.8-g2847a5e SMP preempt mod_unload modversions ARMv7

  12. I meant this:
    rafa :
    yes, same error
    When I run the modinfo instruction only see this small difference:
    3.0.8-g2847a5e SMP preempt mod_unload ARMv7
    3.0.8-g2847a5e SMP preempt mod_unload modversions ARMv7

  13. I have managed to compile the module, now with the right modinfo:
    3.0.8-g2847a5e SMP preempt mod_unload modversions ARMv7

    but when I tried to load the móludo gave me the following error:
    “disagrees about version of symbol module_layout”

    then I read that could make a small modification of the file in hexadecimal:

    but after changing it, and try it, now I get the following error:
    [31526.067817@1] hid_sony: disagrees about version of symbol hid_unregister_driver
    [31526.069610@1] hid_sony: Unknown symbol hid_unregister_driver (err -22)
    [31526.076325@1] hid_sony: disagrees about version of symbol __hid_register_driver
    [31526.076337@1] hid_sony: Unknown symbol __hid_register_driver (err -22)
    [31526.076356@1] hid_sony: disagrees about version of symbol hid_connect
    [31526.076362@1] hid_sony: Unknown symbol hid_connect (err -22)
    [31526.076369@1] hid_sony: disagrees about version of symbol kmem_cache_alloc
    [31526.076375@1] hid_sony: Unknown symbol kmem_cache_alloc (err -22)
    [31526.076384@1] hid_sony: disagrees about version of symbol _dev_info
    [31526.076389@1] hid_sony: Unknown symbol _dev_info (err -22)
    [31526.076396@1] hid_sony: disagrees about version of symbol hid_disconnect
    [31526.076401@1] hid_sony: Unknown symbol hid_disconnect (err -22)
    [31526.076416@1] hid_sony: disagrees about version of symbol usb_control_msg
    [31526.076421@1] hid_sony: Unknown symbol usb_control_msg (err -22)
    [31526.076429@1] hid_sony: disagrees about version of symbol dev_err
    [31526.076435@1] hid_sony: Unknown symbol dev_err (err -22)
    [31526.076444@1] hid_sony: disagrees about version of symbol kmalloc_caches
    [31526.076449@1] hid_sony: Unknown symbol kmalloc_caches (err -22)

    any suggestions?

  14. @rafa
    Ideally you should try to build the kernel with the same version and kernel config as in the firmware in your device, and build the module against that.

    If it’s not possible, maybe the hack on stackoverflow may work.

  15. Hello, I am able to build a zImage but i can’t work out how to compile that to a boot.img for flashing via CWM can you please help me. I tried unmkbootimg and splitboot neither will extract existing boot.img so im not sure what to do now.

  16. @Fma965

    Why no edit button? Also uh i know im decompiling it correctly as i can decompile my xperia play kernel i just can’t decompile the boot.img for my crossflashed sumvision cyclone x2 to geniatech atv1200

  17. @Fma965
    I’m not sure how to do that. I have not played a lot with AMLogic. XBMC (Android) developers’ community should be able to help since they’ve spent a lot of time and efforts on the platform.

  18. Hopefully you guys can help me out, I’ve been trying for a few days to compile my own module for Geniatech ATV120 (same kernel as ATV1200), and its driving me CRAZY! I’ve gotten as far as compile the modules and first I got Exec Error, but after making the changes to get the exact kernel version I now get “disagrees about version of symbol module_layout” so I wanted to know how the hid-sony.ko made by fma965 since it works perfectly on my atv120, but fma965 has replied that he forgot how he did it and lost all files related to this 🙁

    so I did this:

    modinfo hid-sony.ko and I got this

    filename: hid-sony.ko
    license: GPL
    alias: hid:b0003v0000054Cp0000024B
    alias: hid:b0005v0000054Cp00000268
    alias: hid:b0003v0000054Cp0000042F
    alias: hid:b0003v0000054Cp00000268
    vermagic: 3.0.8-g525c782 SMP preempt mod_unload modversions ARMv7

    I did the same for my module

    filename: joydev.ko
    license: GPL
    description: Joystick device interfaces
    author: Vojtech Pavlik
    alias: input:b*v*p*e*-e*1,*k*2C0,*r*a*m*l*s*f*w*
    alias: input:b*v*p*e*-e*1,*k*130,*r*a*m*l*s*f*w*
    alias: input:b*v*p*e*-e*1,*k*120,*r*a*m*l*s*f*w*
    alias: input:b*v*p*e*-e*3,*k*r*a*6,*m*l*s*f*w*
    alias: input:b*v*p*e*-e*3,*k*r*a*8,*m*l*s*f*w*
    alias: input:b*v*p*e*-e*3,*k*r*a*0,*m*l*s*f*w*
    vermagic: 3.0.8-g525c782 SMP preempt mod_unload modversions ARMv7

    so everything seem correct, when to load it with insmod on my ATV120 and I got the “disagrees about version of symbol module_layout” error

    ok, back to ubuntu. ran this:

    modprobe –dump-modversions hid-sony.ko
    0x4e362f07 module_layout

    I noticed the module layout so I ran the same on my module
    modprobe –dump-modversions joydev.ko
    0x82bedd05 module_layout

    that seems to be my problem, I know nothing about module layouts, but doing some google research I found I need the same Module.symvers but for the life of me I just cannot get the same one, can anyone help me out building modules with this 0x4e362f07 module_layout ?

    I am using this source: git://
    I also tried with the 2013 source, but could not even get it to compile :S


Leave a Reply

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

Khadas VIM4 SBC
Khadas VIM4 SBC