Mainline Linux on 64-bit ARM Amlogic SoCs, and TV Boxes such as Wetek Hub / Player 2, NEXBOX A1 / A95X, etc…

We’ve already seen Neil Armstrong, part of BayLibre, worked on adding Amlogic SoC (S905/S905X/S912) to mainline Linux via our virtual schedule for the Embedded Linux Conference & OpenIoT Summit 2017. But at the time, although we could see some activity in Linux 4.10 including support for Nexbox A95X and Nexbox A1, they did provide that much details the work that had been done, but since then, ELC 2017 videos have been released, and BayLibre wrote a short post about 3D Graphics support in mainline Linux.

Click to Enlarge

We can see that I/Os, USB host, composite video output, Ethernet, eMMC/SDIO, and PSCI and SCPI features have already been added to Linux 4.10. but some important features have not yet including HDMI, Mali support, Audio, and high speed eMMC modes. HDMI is actually planned for Linux 4.12, which could be released in about 18 weeks if we keep the 10 weeks kernel release schedule we had in the past. WeTek Hub and Play 2 devices tree files have been submitted for Linux 4.11. Beside TV boxes, development boards such as ODROID-C2 and Khadas Vim will also be supported and benefit from this work.

While Mali is not supported in mainline Linux yet, the patchsets for Mali-450 GPU are available on github in order to enable 3D graphics acceleration in Amlogic S905, S905X and S905X. If you are interested to get more details, you may want to watch Neil Armstrong presentation at ELC 2017 which explains the status of Amlogic Linux before working on mainline, the work achieved, the work in progress, and an overview of the community.

You may also want to download the presentation slides for an overview of the talk, and check out linux-meson.com and BayLibre blog for future updates.

Thanks to Space Invader, theguyuk, and Harley for the tips.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

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

ROCK Pi 4C Plus

30 Replies to “Mainline Linux on 64-bit ARM Amlogic SoCs, and TV Boxes such as Wetek Hub / Player 2, NEXBOX A1 / A95X, etc…”

  1. I browsed through the presentation-PDF: what an enormous amount of work.

    And that is done by BayLibre? That’s a French embedded Linux company. I really hope there is a sound business case behind all this work.
    And I hope Amlogic is positvely involved in all this work. Just like Intel and AMD hire people to make sure their chips are well supported in the Linux kernel.

    @cnxsoft: maybe an interview with or post by Neil Amstrong? French-French connection? 😉

  2. So i am thinking to use a S905/S905X/S912 box as headless server with mainline kernel. Is this already useable?
    Is there an alternative to the odroid c2 with 4x USB? I like that the boxes already come with a case & eMMC.

  3. Hi

    @manuel
    Hi, yes 4.10 is ready for an headless server, at least for S905 devices since it lacks USB for S905x and S912.

    You can find some S905 based boards wirh 4x USB2 like the Wetek Play 2.
    The Play2 provides the serial cable to hack the device !

    @Sander
    All work was done by BayLibre and some by enthusiasts, but BayLibre tests and validates all these changes and we test them on various board.

    @cnxsoft: Happy to see the news ! We hope all this work will be useful, but there still a lot to achieve ! Stay tuned !

  4. I ponder sometimes just how costly is it updating Linux or Android on older systems that can run newer versions. If not too extreme a cost, could we maybe, one day see crowd funding for the cost of updating popular older hardware software.

    But then sometimes is it easier to just replace the hardware?

    If I understand right, a stable Android 5.1 on older Allwinner H3 boards would mean you could also have Remix OS, in theory..

  5. @roel
    To be frank, the “old” 32bit SoCs are not our priority, but we try to architecture our code to make it easy to support them.
    Honestly, some work has been done and is waiting for cleanup, we could be in pair with the 64bit version quite easily.

    @Theguyuk
    It costs a lot of time, but in general there is a lot of community support to push these boards. In the AmLogic case their kernel is opensource and a lot a work has been done to make it work better, like the LibreELEC kernel or the Odroid one.
    But having a central maintained code upstream means we centralize all the work done and all patches are peer-reviewed to guarantee maintainability. And it will be useful for side-projects like Kodi and AmLogic internal work and future producst.

    @cnxsoft don’t hesitate if you need an article from BayLibre !

  6. The root reason companies don’t update their Linux/Android is because they never merged their initial release into mainline. Way too many companies are still practicing “port and forget”. Make a release for a CPU, then move that team to a new CPU and never touch the old one again. Moving the software team from chip to chip is a terrible management model. One the plus side, many tier one SOC vendors have abandoned the “port and forget model”. Second tier player don’t seem to have received the memo yet.

  7. Jon Smirl :
    On the plus side, many tier one SOC vendors have abandoned the “port and forget model”.

    Can you name those tier one SOC vendors?

  8. manuel :
    Is there an alternative to the odroid c2 with 4x USB

    Countless. Those Amlogic SoCs have only two USB 2.0 ports, one OTG and one real host port. So if you spot 2 or more USB type A receptacles on such a device it’s time to check schematic (good luck with TV boxes) whether there’s an internal USB hub used (GL852 on ODROID-C2) or an OTG port is exposed (both variants aren’t that good). Unfortunately the same crappy situation regarding laughable IO bandwidth applies to most if not all cheap ARM SoCs that are somewhat powerful CPU-wise.

    If I would want a cheap and crappy headless ARM server I would choose Allwinner’s H3 and now H5 for sure (4 real USB2 ports that do not have to share bandwidth, performant Gbit Ethernet and also appropriate memory bandwidth). But still hoping for more Marvell ARMADA 3700 designs to appear since here bandwidth isn’t an issue any more.

  9. I’ve compiled the Mainline 4.10 kernel with the utgard patch and booted it on the Beelink MiniMXIII using the p200 dtb file.
    I’ve used an Ubuntu 16.04 rootfs with no problems, I just wanted to know if someone compiled the X11 driver, there’s no clear instructions on how to do it, I know that is a headless system but I want to do the whole process. Thanks!!!

  10. They may not be all singing and dancing but services like http://www.mininodes.com, seem to be finding a market. So some folk find they meet a need.

    ” miniNodes are tiny dedicated servers that run Linux on ARM processors. miniNodes can perform the same functions as a regular server, at a fraction of the cost and power used by a normal server. Available with either 32 or 64-bit ARM processors similar to those in smartphones and tablets, ”

    Maybe some customer might give feedback?

  11. Thanks for all the answers. Only two USB host ports is a bummer. The Wetek boxes are nice, but at 100€/$ i can also buy a N3150 box, which is a lot faster, x86, and has good IO.
    H3/H5 is an option, and mainline kernel on my orange pi one (H3) is good enough for headless, but the H5 Orange Pi PC2 again has only 1GB Ram. Also i really would like _stable_ mainline. Seems like x86 is still the way to go and i have read, that the intel braswell, e.g. N3150, can be trimmed to 3W idle consumtion. For a little more than 100€ they come with PSU, case (which mounts a 2.5″ HD). But of course they are a little bit more expensive than i would like.

  12. Maybe waiting for the RK3399 is also worth it. It has GbE, 2x USB 3.0 and 4x PciE 2.1 lanes.
    Also mainline support might be good as this chipset is used in chromebooks.

  13. manuel :
    Only two USB host ports is a bummer

    if you’re still talking about Amlogic… it’s only one USB host port and one OTG (that’s important even if you can let OTG work in host mode since performance/caveats are implementation specific, I tested with some SBC where OTG in host mode is a lot slower, there are some where it makes almost no difference and then there are some that can turn the OTG port into a true host port with an own PHY by settings some magic bits — Pine64 for example).

    With S905 your best storage option is eMMC and if implemented properly (voltage switching needed, state of drivers) it really rocks. Always check this first since even if fast eMMC modules are used it depends on above features for the module to be able to perform as it could!

    For numbers/explanations you could search for the ‘Some storage benchmarks on SBCs’ mini review in Armbian forum: https://forum.armbian.com/index.php?/topic/1925-some-storage-benchmarks-on-sbcs/&do=findComment&comment=14802 (please note that testing happened with Hardkernel’s 3.10.x kernel back then and I’ve no idea how things might differ now with most probably new implementation in mainline kernel)

  14. @tkaiser: Ok, i didn’t know that a OTG port is worse than a normal one (SOC wise). I am not interested in the eMMC performance – it might as well be very slow. I only want reasonable transfer speeds from 2.5″ HDD over GbE and don’t care if they are connected over SATA or USB.

    @Theguyuk: Yeah, the S905 SOC hast only 1x normal 2.0 USB, 1x OTG. The S912 has 2x USB 2.0 + 1x OTG.

  15. manuel :
    i didn’t know that a OTG port is worse than a normal one (SOC wise)

    It depends on which IP block is used/licensed for the OTG controller. BTW and slightly off-topic: silly me just learned minutes ago that on other more recent Allwinner SoCs it’s also possible to switch the USB0 PHY used for OTG port between two controllers (musb is used for OTG normally and can also work somewhat broken in host mode but by manipulating a register the PHY can be connedted to a ‘real’ EHCI/OHCI controller pair instead). So with H3 and most probably H5 too devices are possible (and existent) that show 4 real USB2 host ports. With Allwinner SoCs and mainline kernel also UAS (USB Attached SCSI) is possible which slightly improves performance.

    Would be interesting what’s possible with Amlogic (especially S912) here both regarding dual-role OTG support and UAS.

  16. @Sander

    Use Google, there are various boards available for all of these chips. Also look at Nvidia Tegra. The difference is that these boards are $100-200 not $20. On the other hand these more expensive boards also have more features. But as prices exceed $100 you are usually better off just going with an x86 board. x86 by far has the best software.

    The best cheap board with good software support is the Raspberry Pi.

  17. can we hope to support mainline kernel s812-h for bylibre. Amlogic dont support her old cpu. minix 812-h plus rock device. How we can help this project.

  18. @Sander
    Odroid-XU4 has Samsung octa core SoC which runs Kernel 4.9 LTS very well. Its price tag shows only $59.
    It has a Gbit Ethernet and a couple of USB 3.0 ports as well as 2GByte 64bit DDR3 ram on board.

  19. @CNXSOFT

    Charbax has a video talking to Koen Kooi where he mentions their working on V4L2 ( Video 4 Linux 2 ) so Linux can have hardware video encode and decode without separate drivers for each SoC. Koen also makes comments on s905, s905x, and Kodi under Linux.

  20. following this up as there doesn’t appear to have been any headway made at all with Mali 450 acceleration for desktop use at all 🙁

  21. @gizmomelb
    I understand (most?) desktop OSes use OpenGL acceleration, but most ARM processors only support OpenGL ES, so even if there’s 3D support in ARM to does not automatically translate into better desktop performance
    There are different drivers for framebuffer and X11 too.

Leave a Reply

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

Khadas VIM4 SBC
Khadas VIM4 SBC