We’ve already written about Android 7.1 on Amlogic earlier with week with an overview of the system and SDK from a developer, and there were some issues and user interface inconsistencies. However, I’ve just seen GeekBuying is now taking order for Amlogic S912 powered Mecool KM8 P TV box running Android 7.1 for $38.99 and up.
- SoC – Amlogic S912 octa-core ARM Cortex A53 processor @ up to 1.5 GHz with ARM Mali-820MP3
- System Memory – 1 or 2GB DDR3
- Storage – 8 or 16GB eMMC flash and micro SD slot up to 32GB
- Video & Audio Output – HDMI 2.0a up to 4K @ 60Hz with CEC and HDR support, and 3.5mm AV port (composite + stereo audio)
- Connectivity – 10/100M Ethernet, WiFi 802.11 b/g/n
- USB – 2x USB 2.0 ports
- Misc – IR receiver, status and network LEDs
- Power Supply – 5V/2A
- Dimensions – 97 x 97 x 10 mm
The box ships with an IR remote control, a power adapter, a HDMI cable, and a user’s manual. It’s running Android 7.1 with Kodi 17.
I’m not convinced it will work as well as Android 6.0 right now, but OTA firmware updates may fix some of the bugs. The 1GB/8GB version is sold for $38.99, but if you prefer the system with 2GB RAM, you’ll have to spend $49.99, and for extra storage (16GB) with 2GB RAM, the price is $54.99. GeekBuying also offers bundles with various air mice.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
is it linuxable cnx?
@hex
As a Linux server most probably, but not for LibreELEC/OpenELEC. They are missing some drivers for S912 support.
If you want to install Linux, then you don’t really care about the version of Android, and you could buy one of the many other models based on S905/S905X.
@cnxsoft text for the article on the front page reads 1 or 2GB DDR3 Storage instead of RAM.
@sandbender
The excerpt code is not really pretty for lists on the main page. It actually shows “System Memory – 1 or 2GB DDR3 Storage – 8 or 16GB eMMC” without bullets.
@cnxsoft
I’m having trouble choosing between the available options. Could I get a recommendation?
What’s a good place to start?
I’ve been looking for an affordable ARM machine to run simple visuals and interactive displays. I’d also like to have a very simple system for playing around with writing NEON and OpenGL-ES code that I’ll later port to to Android (NDK). I don’t need anything fancy. I’m currently using a chromebook/crouton setup, but the hacked up mess that is crouton/chroot is a constant headache – so I’d like something a little simpler. The RPi and clones seem to have other limitations as well.
I saw the post about BayLibre’s work on the S905 – so it looks like there is some great support coming! When they talk about “supporting Mali” soon, do they mean opensource OpenGL-ES drivers for S905 powered TV-boxes? Is it already possible to have GPU support with non-open source options?
Sorry, I’m a little out of the loop with the terminology and not sure where to ask 🙂
(let me know if there is a better forum for these questions)
@cnxsoft Ah. Okay.
@geokon
Have you already looked at ODROID-C2 (S905) or Khadas VIM (S905X) boards? Both have decent support. The ODROID board might have slightly better support (TBC) since it’s been around for longer. But both companies provide good documentation.
GPU support normally comes with userspace and kernel drivers. The latter are always open source, but the former is not, and I don’t think it’s going to change. You’d still be able to run you own OpenGL ES app. One reader “blu” has done work on several boards with OpenGL, maybe he can comment here if he see my/your comment.
I know he’s played with ODROID-XU4 (Exynos) and BQ Reader Ubuntu tablet. He even wrote a guest post about the latter @ http://www.cnx-software.com/2017/01/15/self-hosted-opengl-es-development-on-ubuntu-touch/
Wow, so many vents!
@cnxsoft
Since GPU has been mentioned: some readers/contributors in ‘Armbian for Amlogic S912’ thread were very excited about S912 containing Mali T820MP3 (vs. old and boring 450MP3 on S905) since T820 also features ‘Vulcan’ and OpenCL 1.2 support. Didn’t follow closely (or at all) but I believe there the usual Mali problem is present too (no useable userspace BLOBs)
LibreELEC 8.0 alpha for Amlogic S912 (using libhybris): https://forum.libreelec.tv/thread-5848.html
@cnxsoft
Thanks for that link. Blu has an interesting setup, and in the same vein as what I’m interested in as well. I’m definitely keen on the Odroid, but I hear it takes forever to ship and it’s about 2-3x the price of the NEXBOX A95X – so I had to ask 🙂
(and I get that there is a bit of a “you get what you pay for” element going on here as well)
As for the OpenGL (I’m really trying to dive deeper into shader recently) when I read things like this:
http://baylibre.com/elc-2017-3d-mainline/
What are they really talking about then?
This isn’t really unlocking anything that wasn’t available already?
(For instance Odroid, it sounds like, already has 3D graphics support)
@tkaiser
(sorry if this is a naiive question)
So is the silicon completely unusable at the moment? Or there are drivers, but they only work with Android? Or is it just used for video decoding? ( I guess I’m trying to wrap my head around why it’s there is there is no way to interact with it! 🙂 )
@tkaiser
Mali-T820MP3 in S912 has only a marginally better performance compared to Mali-450MP4 used in S905/S905X, but it does support OpenGL ES 3.x.
Normally, Amlogic provided the framebuffer driver for the GPU drivers, which is useful for media players based on Linux, but can’t be used with X11, which requires an X11 GPU driver. That’s why image based on LibreELEC/OpenELEC used to come faster than Ubuntu images with GPU acceleration.
Now it seems Amlogic has stopped providing framebuffer drivers for S912, so LibreELEC developers are not so happy about it, but I’ve just seen @Peter mentions they’ve used librybris for Amlogic S912 LibreELEC (alpha), meaning using the Android GPU drivers with an API translation layer (libhybris) in order to use it in Linux.
@geokon
TV boxes are cheaper, but to get started I’d really get ODROID-C2 or Khadas VIM board, and once you are more comfortable/knowledgeable with the platform, you can try to run whatever you want on cheaper hardware. The main reason is that you won’t be alone on development boards to solve your issue, but on TV box, there will be some small differences in terms of drivers and device tree files, and you may be the only one really working on it.
Companies normally release userspace binaries that work with a given kernel version. For example, and I use random numbers here, GPU Mali userspace drivers r1p2 working with Linux 3.18. If you update to Linux 4.10, those drivers would not work anymore. So what BayLibre has done is to make 3D graphics work with mainline Linux, i.e. the very latest version of Linux.
@cnxsoft
I think you’re right and I should start with a more accessible system before diving into the rabbit-hole of TV boxes 🙂
So normally the framebuffer and X11 driver are separate from OpenGL, but with libhybris people are getting the android OpenGL drivers running and then getting X11 running over GLX. And so the BayLibre guys are rewriting the binaries (or adapting the old one?) to run on mainline linux
Am I correct in understanding that when you say “userspace binaries” these are what basically transform the OpenGL graphics pipeline and your GLSL into the hardware-specific assembly for that GPU?
thank you for your patience. I’ve learned so much from your website
@geokon
I have never developed for OpenGL (ES) myself, so everything I say if from a higher level perspective, i.e. I don’t know the implementation details, using what I’ve read over the years.
All drivers implement OpenGL, but the “glue” (API) is different whether the content is rendered in Android, X11, or the framebuffer. All those are close-source binaries, and cannot be modified. In an ideal world, you’d get Linux drivers, but in the real world, many devices are only sold with Android, and companies don’t want to spend resources to develop Linux specific drivers. BayLibre is working directly with Amlogic so that’s probably why they could implement 3D graphics with mainline. I don’t know the details about the implementation.
Libhybris library adds a layer making the Android drivers appear if they were framebuffer or X11 drivers to the system. So if the app sends OpenGL commands using a X11 API call it will be converted to an Android API by lihybris, with command handled by the drivers.
I don’t know exactly what the userspace binaries are doing, but I just know you must have them for 3D graphics to work. It should work like that: “App -> userspace drivers -> kernel drivers -> hardware”.
Yeah, I know. Same problem with other SoCs that rely on Mali and where only one variant is available but not the other 🙂
To be honest: I don’t care that much or at all about ‘Mali and X11’ or TV box use cases but based on my understanding Kodi/LibreELEC need ‘Mali acceleration’ here only to draw parts of the UI since video acceleration is still something differently?
Anyway: I wasn’t referring to 3D performance (how fast are tea pots or horses rotating, I always have to laugh when I look at this OpenGL bench) but features. IIRC some people were exited to be able to use Mali for GPGPU programming due to OpenCL support.
Hmm… I stumbled accross a rant by someone mentioning an impressive ‘GPU downgrade’ when comparing S812 with S905 (Mali-450MP6 vs. Mali-450MP3). The MP number is the count of shader cores? Mali450 seems to allow variable clockspeed and Amlogic claims 750MHz with S905, is this number confirmed (as with their CPU cores 😉 )?
@tkaiser
I now avoid adding a number after MP… 😉 But I broke that rule.
Some GPU has unified cores, but ARM Mali GPUs have shader cores (aka fragment cores) and vertex cores. It’s unclear from their naming convention how it works. For ARM Mali-450 I could see diagram with a single Vertex core and up to 8 shader cores as shown on the diagram @ https://www.arm.com/mali-450-chip-diagram-LG.png
But in other documents from ARM I can see a dotted line inside the Vertex core like if there was two.
So the number in name must be the number of shader cores, which excludes the vertex core(s).
Documentation is clear that Amlogic S905 has a penta-core Mali-450MP GPU, but I’m not sure if it is with one vertex core and 4 shader core, or 2 vertex cores and 3 shader cores. Mali-450MP GPU inside S812 is an octa-core, and I think it’s 6+2.
According to ODROID-C2 FAQ,
ARM Mali-450MP3
In fact there are 5 GPU cores.
3 fragment(pixel) processors and 2 vertex shader(geometric) processors.
But normally we are counting the number of fragment processors only in this industry.
U2+ is another model with Android 7.1, but powered by Amlogic S905X processor -> https://www.aliexpress.com/item/Quad-core-4k-1080p-HD-digital-Android-7-0-Internet-receiver-smart-set-top-TV-box/32800531067.html
Looks cool, might get it from geekbuying.