Some thoughts on Amlogic

It’s been a while from my last post here. Today I saw they released new version of Buildroot. More info about it here. They managed to file size of 1.3 GB with this. In their release notes which you can see here they mentioned few things that comes with Linux SDK release 1.5:

Merge kernel 3.10&3.14 into one src code

Now, within this 1.3 GB you don’t get GIT history, no no. To be able to download their version of Buildroot from their GIT server, here is what they say:

You should have the permission to download the git, you can contact with the FAE for help.

That means basically that you cannot get access to it unless you are manufacturer who is utilizing their SoC-s.

So, from my perspective and content of tarball with provided we have this:

  • Buildroot itself which is v2016.11 (in time of writing this post there are versions 2016.11.1, 2016.11.2 and 2017.02 available)
  • Hardware folder with separate drivers for 3.10 and 3.14 kernel that includes Mali GPU, WiFi modules, touch drivers, NAND/eMMC drivers and TVIN drivers which I assume that are used by both 3.10 and 3.14 kernel
  • Kernel folder which contains 3.10.33 and 3.14.29 versions
  • Multimedia folder which includes some alsa plugins, gstreamer plugins, libplayer (part of libplayer is so called amffmpeg which is Amlogic’s version of ffmpeg and it seems to be stuck at version 0.8 – at least that’s what is written in version.h:
  • And finally toolchain folder which contains toolchains 😀

When it comes to whole package, it nicely says which are supported boards:

  • S905: p200 and p201
  • S905X: p212
  • S905D: p230
  • S802: k200b
  • S805: m201 and m200
  • S812: n200

In release notes (PDF document I linked above) they also wrote instructions on how to download whole package using their GIT server to which you don’t have access.

There is also written how to potentially make your system unstable by downloading, building and installing GNU MPC version 0.9 because their old modified U-Boot for Meson 8 platforms can’t see libmpc other than libmpc.so.2

More safe way to do this would be maybe to symlink existing libmpc.so.* to libmpc.so.2. In my case on Ubuntu 14.04:

And guess what, it works just fine. On Ubuntu 14.04, Debian, openSUSE Leap 42.2… I would characterize Amlogic’s approach as laziness.

Laziness is not just that. If you’re developer and you look a bit into their sources (kernel for example, doesn’t really matter which one), you will find something like this:

You will also find commented code all over their kernel drivers. There are also cases where void function returns integer for example and stuff like that. It’s just something that I cannot understand

Now, enough of laziness… Let’s see what else we have in that PDF:

They have listed all configurations they support by their build system (I said build system because in the end with all of their changes and structure of it, it doesn’t look like Buildroot as you know it). These configurations are:

After this we have some instructions on how to install built system to sdcard or Nand/eMMC and how to boot it.

We also have nice instructions on how to enable WiFi and how to test LibPlayer and GStreamer1.

Most interesting part for me is Appendix D in this PDF.

It contains few commands on how to enable display output and test OpenGL ES acceleration. Just to clarify here, Amlogic SoCs have Mali GPUs (Mali 450 on S802, S805, S812, S905, S905X, S905D and Mali T820 on S912).

What is interesting here is that you cannot perform any tests from Appendix D on Amlogic S912. Why? Because there are no Mali T820 userspace libraries (framebuffer or X11) available. From what I found out, fact is that Amlogic did not license Linux userspace libraries for Midgard Mali GPUs and they do not have any intentions to to that. I think S912 SoC is good chip, especially if implementation is right (and I’m fortunate to have ODM which makes great hardware) but fact is, when it comes to Linux you can make headless Linux server for…. something. NAS…. I don’t think so, they are still using USB 2.0 controller in their SoC-s. They don’t have native SATA interface, or any kind of expansion like mini PCIe.

And finally there are few notes I keep in my head…

  • After S912 which was available in Q2 2016, there are no new SoC-s announced or any rumors about it
  • Did they finally realized that they are far behind with their 28nm process and that they have to invent something new and are working on it
  • They do have Android 7.1.1 Nougat SDK for their S905X and S912 SoC-s, so if they don’t have new SoC to show up, they will try to survive on old ‘fame’ with ODMs buying 1 or 2 year old SoC-s but with Nougat preinstalled?
  • Xiaomi released their own SoC recently (and rumors were that Xiaomi and Amlogic are tightly connected). Coincidence? Maybe…

Well, if you reached that far in reading this post, congratulations, you just read 864 words 🙂

7 thoughts on “Some thoughts on Amlogic”

  1. thanks for writing this,
    i have Mini M8S with S905 and i have been thingking to get S912 because its Mali T820 and Wayland.
    but after reading this, i will not buy it.

Leave a Reply

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