Oliver Schinagl, a member of linux-sunxi community working on open source kernel and bootloader for AllWinner SoCs, has given a presentation of the community at FOSDEM 2014 to give an overview, and show what progress has been made to date. I’ll write a summary in this post, but if you want to watch the video and/or access the slides scroll down at the bottom of the post.
After explaining what sunxi is, and introducing himself, he gave some information about AllWinner and their SoCs:
- Founded in 2007 in Zhuhai, Chiang now with 550 employees including 450+ engineers
- 15% market share in 2013 for tablet SoCs, only behind Apple.
- Products: F-series SoC (2010), A10 (2011), A13, A10s (2012), and A20 (2013). (cnsoft He skipped A31(s) and A80 here as they are not really supported by the community).
- They list “Open Source Source” and “GPLv3” in their marketing materials although they clearly violate GPL in some part of the code. Progress is slowly being made however.
Sunxi community was born out of arm-netbook community working on EOMA68 boards in order to specifically target AllWinner SoCs, and now count over 600 mailing list subscribers (Google Group), 130 in IRC (#linux-sunxi), but only around 20 active developers.
Oliver then talks about the progress and status of different part of the software:
- Bootloader
- U-boot (lichee) NAND-only released by AllWinner, but requiring boot0/boot1 that were binary only until a source code release recently.
- U-boot (sunxi) MMC / SDCard only, developed by the community, and preferred bootloader as it boots from SD card.
- Barebox
- Initial work on Coreboot
- Operating Systems – Linux, FreeBSD, Tizen, Firefox OS and Minix (Interest only)
- Distributions:
- Fedora 18/19 maintained by a Red Hat employee in his spare time, and the best supported distro right now according to Oliver
- Others – Linaro ALIP, Arch / Gentoo, Debian / (X)Ubuntu, (Xen).
Interestingly one important OS is missing: Android. The main reason is because there’s no community around Android with sunxi, but there’s still minimal work being done on Replicant/CyanogenMod, and AllWinner SDK for Android has been released.
He then goes through the different Linux kernel and branches on linux-sunxi github repo:
- Lichee 3.0, 3.3 and 3.4 (with some 3.8 backport) from AllWinner. Some code in 3.4 version comes from sunxi linux work
- Sunxi 3.0 (deprecated), 3.4 (maintenance), experimental 3.10 (Long term support kernel, likely to be used by Android 5.0, with AllWinner SoC support in mainline, and features like KVM and CMA),
- Mainline kernel with two branches: sunxi-devel (latest code) and sunxi-next (with patches accepted into mainline). All mainline work has been done by the community, with no involvement from AllWinner. Currently CPU, interrupts, Timers, RTC, Watchdog (also used for reset), Ethernet and I2C are working, and you can boot a headless server. More info @ http://linux-sunxi.org/Linux_mainlining_effort.
He also talked of FEX files, the configuration files for AllWinner SoCs, that have a functionality similar to device tree, and in kernel 3.10 both device tree and fex files are supported. There’s also a tool called sunxi-babelfish that converts fex files into device tree files.
That’s all of the open source software part of the talk, and next is a list of hardware for playing around with AllWinner SoCs:
- Olimex LIME board, fully open source hardware
- Cubieboard 1 & 2, with schematics (PDF), but not all files to be fully open source hardware
- EOMA68 / Improv. Improv, the baseboard, is open source hardware, but EOMA68 is not yet, although it should become open source hardware once the company (QiMod) gets back its initial investment
- If you don’t have one of the three development platform above, you can also use one of the many tablets, media players, or HDMI TV stick available on the market.
AllWinner based device are unbrickable, as they can always to booted from a micro SD or SD card, and if no SD card is available, you can use FEL-mode to access the board via USB.
So all in all there’s currently good support for sun4i (A10), sun5i (A10s and A13) and sun7i (A20) SoCs, and it could even become FSF endorsable, but nothing is perfect, as the community is not really involved in A31, A31s and A80 development as these are based on PowerVR GPU, with no hope of ever getting open source GPU drivers in Linux, and there are binary blobs with Mali GPU (3D), GPS, and touchscreen drivers, and the Boot ROM (BROM) and CedarX libraries (APU/VPU) are only available in binary format. There’s however work on open source Mali GPU driver (Limare) which could be usable this year, and there’s reverse engineering work being done for video decoding.
Oliver shows a demo of hardware video playback with a 100% open source implementation, capable of even playing files not supporting by the official binary only version, and gets a around of applause when he announces the complete presentation was done on an AllWinner board.
The talks ends with detailing the different ways you can contribute to the community: editing the Wiki, adding new supported devices, helping porting AOSP, CyanogenMod, Ubuntu Touch or Firefox OS, and submitting kernel patches.
The presentation slides are available here.
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
Hmm – how long has it been now since the first of many “XBMC coming soon to A10”? Two years? How many half-baked solutions, AW statements of support and promising proof-of-concepts? Not that XBMC is the holy grail of computing, but it is a very good indicator of the state of things. I appreciate all the efforts and hard work many people have put into this (an other AW SoCs), but at some point it is probably best to switch horses. Without proper vendor backing, this is an uphill battle which nobody really deserves. Welcome to closed source, NDA hell. The hardware is actually quite nice. It is all so sad 🙁
@Bobby
I think it’s worse than that: either you go Qualcomm or straight to X86 if you want half-way decent hardware with drivers that actually work (open source ones in the case of Intel).
Oliver is missing Openwrt in the distro list.
Really sad that Allwinner as a company does not realize the opportunity of getting a open source community involved and fully collaborating, basically saying no to free labor, no to broader target audience, and no to a larger user base.
Very cool however that the FSF (Free Software Foundation) have put CedarX Audio and Video Hardware Accelerator on their list of “High Priority Reverse Engineering Projects”
http://www.fsf.org/campaigns/priority-projects/reverse-engineering
CedarX, the VPU used in all Allwinner A10, A13, and A20 SoC is even listed as second highest priority in order for FSF reverse engineering work.
But unfortunately so far all reverse engineering effort for CedarX still mostly rely on wrapping closed source binary blobs, or else the efforts are still way to immature or to limited for mainlining and broad “production” usage.
Hybrid wrapped Android libraries (using libhybris to load Allwinner’s closed source CedarX binaries) is today the only good workaround to get proper CedarX VPU support under Linux that will satisfy an end-user of example XBMC or VLC. Do not think that way is GPLv2 compatible which is why I believe libhybris method is yet not not in mainline XBMC or VLC
http://linux-sunxi.org/CedarX/libve
While the CedarX reverse engineering effort at least to us outside the project looks to have completely stalled
http://linux-sunxi.org/Reverse_Engineering/Cedar_Status
http://linux-sunxi.org/CedarX/Reverse_Engineering
“…and you can boot a headless server.”
By chance, anyone knows of a working A10 kernel based on the ‘sunxi-next’ branch??
Thanks.
Sadder still is how much effort and free labor people are giving a company that doesn’t really seem to give much of a shit.
Is there any effort into strategic engagement with these Chinese ARM licensees, being very deliberate about holding them accountable to promises, and rewarding good behavior, rather than ongoing bad behavior. Once the foundation is in place, they can be played against each other. Perhaps Intel’s slow progress in the low-cost low-power SoC space is enough to get their attention?
@Harley
I think the demo at FOSDEM 2013 was based on libvdpau-sunxi, with no binary blobs (CedarX) at all. http://www.cnx-software.com/2013/08/30/preliminary-reverse-engineered-vpu-driver-cedarx-for-allwinner-a10-plays-h-264-videos/
@Someone from the other side
I’ve hardly seen Qualcomm SoC in any devices other than smartphones and tablets, and I can’t remember seeing Linux run on their platforms.
I agree with the comments about there seemingly being a whole lot of wasted developer effort being put into these socs. I do like the idea of some sort of foundation rewarding good behaviour and directing development resources at those platforms, which in turn should broaden the userbase and sales.
I can only hope that things like the wibtek mini PC that cnxsoft chased down recently – http://www.wibtek.com/products/Mini-Box-PC/show/?pid=173 – or cheap dual/quad bay trail motherboards in an affordable enclosure start to steal a lot of the mindshare of the XBMC userbase.
In this case a USB stick is only needed for the install and there is no need for local storage or any more than 2GB ram to be used. Compare the cost of this kind of config against the various ARM based alternatives and the cost/benefit of the ARM solutions starts to be lacking.
If people see the ~$250 cost that was shown here for a bay trial config they start looking at the half baked arm solutions. Lets give people some options that are closer to the config of the arm solutions so that comparison is more real-world.
I’d really like to see arm based solutions succeed but the solutions we are getting so far have too many problems and there is not enough pressure being put on to get those issues solved.
I saw somewhere the other day that someone was suggesting a Minix ARM solution for peoples XBMC needs. Why would that solution make sense over say a lower specced Intel Bay trail NUC? The support will be way better on the Intel platform and the price would be pretty much the same.
With so many commenters being so clueless (have they even watched the video?), appears that it might be useful to have a separate article providing a recap of important events and covering the current open source hardware video decoding support status on Allwinner chips.
@Bobby
Saying that AW/sunxi is at it for 2 years bringing XBMC to the masses is a little unfair. A10 was released in 2011, so products where coming out later that year? We’re not 2 1/2 years later, in which sunxi was ‘formed’ and started to hack.
I would argue that this probably is the worst time to switch horses, and what horse would you bet on? A PowerVR one? Rockchip one? Who do you think has the biggest community? While being biased, I can tell you sunxi is one of the bigger ones. Also, who is the most opensource one.
The only alternative is X86 with intel/AMD UVD, which works pretty well, until you start to check the size or power usage.
@zoobab
I did indeed, sorry about that 😉
@harley
Yeah, well they do try, they have even offered us Optimus boards 🙂 As far as the FSF goes, yeah I knew it was a ‘top prio’ target, but their involvement has been limited I suppose. As to Video Decoding, there’s currently 4 ways to do it. Android with libcedarX.a (which does support android XBMC reasonably).
Linux with libcedarX.so, which is a horrible hack, but works a little bit
Linux with libhybris and libcedarX.a, basically the android lib, so support is equal to that
Linux with libvdpau-sunxi, the RE work you see in the video beeing demoed 🙂
@vlaero
We’re thinking of using some org to help us collect funding, right now we can’t. So that might make it possible to reward devs. As for XBMC needs, with vdpau support very slowly growing, there’s other bits needed, opengl (lima), KMS to get the vdpau/xbmc output going. Very roughly estimating, hopefully next FOSDEM, full opensource XBMC demo 😉