The state of open ARM GPU support?

Graphics support on Linux has always been something of an “interesting” topic on Linux. On the x86 side of things over the last 15 years or so there’s been somewhat of a consolidation of GPU manufacturers found in most video cards. Now days you basically have a choice of Intel, ATI or NVIDIA chipsets. They are mostly pretty well supported in Linux whether it be by the vendors themselves or through community projects. I can remember back in the 90s when there was a lot more vendors. Anyone remember when around 1998 a Matrox g200 was the best card to get for Linux, or even earlier around 95/96 (when I first started using Linux) where a S3 ViRGE was always a good bet to get a working X? No, not a lot of people do! Maybe that’s not such a bad thing, I for one was not sad to see the end of modelines and xorg.conf files.

So having got involved in the ARM project one of the less nice things at this point in time is the complete lack of decent X drivers for 3D, and in most cases for 2D the best you can do is a FBdev driver. A few off us discussed the sorry state of drivers for ARM based devices at FUDCon Blacksburg.

So what is out there? Do we have the mass variety of GPUs like the older x86 days, or is it more like big three of today with a few minor players on the side? Most definitely the later. For the devices we’d like to support within Fedora ARM we have the following devices to contend with. Firstly ARM themselves make the MALI GPU, they’re used in Samsung, ST Ericsson and other platforms. Then we have the NVIDIA ULP GeoForce used in Tegra 2 an Tegra 3 systems, apparently its nothing like it’s older brothers. Next up is the Imagination Technologies PowerVR as included in, amongst others, the TI OMAP, Samsung Hummingbird, Apple Ax. Those three seem to be the major ones we encounter at the moment. There’s also the GPUs used in the Marvell, Freescale, Qualcomm Snapdragon, Broadcom, and what ever the many other ARM platforms use, I’m not exactly sure of all those details.

At the moment the state of accelerated drivers is very similar to the time when AdamW would rant about Poulsbo drivers. Basically you grab a download of a system that ships binary only drivers and attempt to make them work with the current Fedora X and hope that it works and is mostly stable. Not ideal!

A week ago at FUDCon the state seemed dark and horrible and not about to change at any time soon. A week later it seems there’s a ray of light poking its way over the horizon that may indicate the winter might be starting to thaw on the way to a warmer spring. So why do I think there’s light at the end of the tunnel?

Firstly there’s a FOSDEM talk entitled Liberating ARM’s Mali GPU by Luc Verhaegen. Having a Nouveau style driver for the MALI GPUs will be a massive improvement for Linux on ARM as this is the core that ARM develops themselves and companies can then license it to use without having to develop their own. I think we’ll see this GPU design in a lot of devices in the coming years.

Next up there’s hints from Arnd Bergmann, a kernel developer at IBM/Linaro (according to LinkedIn), that the traditionally frosty relationship NVIDIA has with Linux X drivers might change for the Tegra platform with the comment of “see them in the same boat as Intel and AMD regarding their support for free drivers in the near future”. Which while isn’t any form of guarantee it sort of indicates they might well be at least considering it.

Samsung has also had their Exynos 4210 DRM driver merged into kernel 3.2. It’s a basic, un-accelerated DRM driver which supports KMS. It’s some forward movement, although there’s no mention yet of what the user side driver will consist of. There’s also a project for an open S3C6410 driver which is a earlier gen Samsung SoC.

Texas Instruments is also working on it’s omapdrm driver which also provides a similar basic DRM/KMS functionality. There’s also a matching X.Org driver which in conjunction with omapdrm can provide a 2D DDX driver. No 3D yet though. Not really holding my breath on that one to be honest. The FSF has had PowerVR on it’s high priority list for quite some time and as the GPU in every generation of iDevice Imagination Technologies Group has no financial incentive to support any form of X based 3D driver as they’re already selling silicon hand over fist whether it’s iOS or Android based. The working 2D driver for the aforementioned SGX derived Poulsbo plus the OMAP bits might be enough for some smart hacker to glue bits together to at least get a decent general purpose 2D SGX driver though.

Well the open drivers on ARM aren’t great, but at least there’s a few upcoming improvements to look forward to. Maybe the smaller companies might realise that an open driver will at least allow them to sell some silicon designs where they can’t get their foot in the door with the likes of Apple. Maybe people like Luc will just hack them before they do and make it a mute point.

Fedora 15 ARM alpha rootfs

I meant to do this over the FUDCon weekend but completely ran out of time. So I’ve cut a minimal rootfs tarfile for both softfp and hardfp Fedora 15. They are little tested but I am running something very close to them and others have had success.

The hardfp image comes with kernels for OMAP (BeagleBoard/PandaBoard) and Tegra devices (primarily Trimslice) where as the softfp image comes with OMAP and Marvell (plug computers). The root password is fedoraarm and there’s various instructions for devices all over the place.

You can get the hardfp rootfs here and the softfp rootfs here.

This will likely be the only rootfs for Fedora 15. The GUI bits are coming along slowly but from here on pretty much everything that’s working will be installable using yum.

I’m not concentrating most of my time on getting ARM rawhide on the coat tails of mainline. More on that very soon 😉

FUDCon Blacksburg Day 2 & 3

Well day two of FUDCon started with the usual bits and pieces that people have reported about including BarCamp pitches and the FPL’s state of the union address.

Again most of my day revolved around ARM bits and pieces including the Secondary Arches session. We gave away vouchers for 20 Raspberry Pi’s for people to hack on when they are released. I’m looking forward to those 20 people getting involved in the ARM project and blogging about all the cool things they do with them.

In between all the ARM sessions and lots of random hallway discussions about ARM, OLPCs and just about anything Fedora I managed to sneak off and sit in on a Gluster session to have a break from ARM related stuff. In between all of that I was hacking on rawhide for ARM but that’s another blog post entirely so stay tuned.

FUDPub was a good opportunity to have a break from the laptop and discuss various things and catch up with various people I hadn’t managed to spend much time with and get to know them a little better. I was somewhat surprised that the beer ran out so quickly.

Sunday morning was a slower kick off and was some serious ARM hacking and some further discussions. Things started to slow down as people departed to head home. Mid after noon was the second board meeting. We discussed a number of things from SOPA/PIPA support options through to Christoph’s Fedora Council proposal. In ended up being quite a long but fairly productive meeting.

Overall as always I found FUDCon very useful, this time in particular it was good to get some high bandwidth discussions over ARM related stuff with people that I’ve been speaking with daily on IRC and telephone over the last couple of months. It was also good to get it some more attention in the wider Fedora community to give people opportunity to hear about the things that we’re doing, the things we’re aiming to do and to ask questions about things like aim to promote ARM to a primary architecture.

FUDCon Blacksburg Day 1

So day one was very busy. Most of the day was spent discussing and planning various components of the ARM secondary architecture. We ran a number of sessions from koji infrastructure planning and development, building rawhide on ARM, defining requirements to promote ARM to a primary architecture. There was a LOT of information to digest and a lot of discussion had. It was all very productive.

From 16:00 we had a Fedora Board meeting to discuss board goals and Fedora goals and the success and/or failure of the current goals. We also discussed board communications with the rest of the community and projects for the board for the comming year.

Other than that even the hallway discussions were fairly high bandwidth as well and it was a very busy. I very much enjoyed sitting down for a few beers in the evening to discuss some of the many things I do within Fedora and other side projects and hobbies.

Preparing for FUDCon Blacksburg

Well its almost time for FUDCon Blacksburg. In fact this time next week I will have already been in Blacksburg for over a day. I’m really looking forward to the event but I know it’s going to be very busy. So what have I got planned for my time in Blacksburg? The list in fact is pretty small:

  • Fedora Board Business: We have a open board meeting planned. There will no doubt be a numbner of things to discuss and there’s already a number of things on the list.
  • Fedora ARM and Secondary Architectures in general. There’s a lot of things to discuss with ARM from koji infrastructure, building rawhide, things we need to do to progress ARM to a Primary Architecture and a lot of other things from technical to procedural and process oriented. There will also be ARM based OLPC XO 1.75s and if the rumours are true possibly even a pre production Raspberry Pi

That looks like a small list but it would be very easy to fill an entire week with those two topics on their own. If I get a spare session here and there I would also like to spend some time attending some of the Cloud SIG sessions as there’s going to be some great stuff happening there too!

My Fedora 2011 in review

Its been a some what mixed year for me personally and I certainly won’t be massively disappointed to see the end of 2011. In Fedora land the year has been completely full on!

The first major event that kicked off 2011 for me in Fedora was FUDCon Tempe which as always was brilliant. Its always awesome to catch up with a lot of Fedora Friends and to drive forward various bits of the project that are sometimes easier done face to face, whether it be in a session or at FUDPub over a beer or two! It was at Tempe that our fearless leader threw down his first challenge of the year to me… to blog about what I’m doing in the land of Fedora on a weekly basis. I didn’t quite meet this goal but have still averaged a post every fortnight.

From April a massive amount of my time was taken up with helping the Fedora ARM in particular getting Fedora 14 built for the XO 1.75 but also massively fixing packages upstream to build on ARM. With the F-14 release for the XO out I’ve been concentrating on F-15+ and later for both hard and soft floating point. The ARM project still continues to consume massive amounts of time and has basically covers a lot of the things I wanted to achieve as part of the Fedora Mobility SIG.

May saw me head off to the excellent Red Hat Summit for the second time. I was there for work and as always its very useful for the type of work I do for my $dayjob. I helped out on the Fedora booth and as always spent quite a bit of time with a number of Fedora contributors. It was there that our fearless leader convinced me that standing for The Fedora Board was also a good idea.

Fedora 15 was next up on the list, of course. A great release with gnome-3 and all sorts of other goodies. Not so good for Sugar on a Stick which had massively broken networking 🙁

October saw me attending FUDCon Milan which was a rather shorter than some FUDCons but great as always.

Fedora 16 was much more successful for Sugar on a Stick and we shipped probably the best release ever. In fact I think Fedora 16 was an awesome release.

I’m looking forward to 2012 greatly, both in the land of Fedora and in my personal life. I’m looking forward to seeing ARM progress onwards and upwards and hopefully make it to a primary architecture in the coming year. I’m not one for resolutions, I think ongoing reviews are much better so I look forward to working with all my Fedora friends throughout the coming year.

Fedora 14 RC1 rootfs for armv5tel

Its been a long while coming, I’ve been meaning on cutting a new F-14 rootfs for a while but I’ve not managed to get around to it.

So what’s new since the last one? Frankly a lot!

  • Kernel’s included for omap, tegra and qemu
  • All packages signed and using the mirrors
  • minimal and XFCE images
  • a lot more!

This release has been proven to be pretty stable and even reasonably fast, in fact its what basically makes up the OLPC XO 1.75 11.3.0 release that I’ve spent the best part of 6 months building 🙂

Downloads:
Fedora 14 RC1 armv5tel minimal rootfs
Fedora 14 RC1 armv5tel XFCE rootfs

Details about what to do with the rootfs can be found on the Fedora ARM wiki pages. Beware its not for the faint of heart.

Enjoy!

Fedora on a BeagleBoard

My BeagleBoard XM was the first ARM device I bought for running Fedora on ARM. I had it running for ages just fine but then I attempted to do something and ended up with a corrupted filesystem on the microSD card and it was gone. So I attempted to recover it and then re-install but I had no luck with a newer kernel and the dreaded u-boot. I had no luck and gave up and every now and again gave it a shot but achieved nothing more than some cussing and a loss of time. Last night I attacked it again with a F-14 rootfs and a 2.6.40.3 kernel and I had success!

So what did I do? The BeagleBoard likes to boot the kernel off a dos partitions so I partitioned the SD card into three: a 200Mb partition 1, a 1gb partition for swap with the remaining going to root.

mkfs.vfat -n bootfs /dev/sdb1
mkfs.ext3 -L rootfs /dev/sdb2

Mounted the roofs and then the dos partition under /boot, extracted the rootfs so the kernel was installed onto the dos partition:

mkdir /mnt/rootfs
mount /dev/sdb2 /mnt/rootfs
mkdir /mnt/rootfs/boot
mount /dev/sdb1 /mnt/rootfs/boot
cd /mnt/rootfs
tar xf /path/to/rootfs.tgz
cd boot
vi fedora_boot_cmd

Add the following:

setenv bootargs 'console=ttyO2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait selinux=0'
mmc init; fatload mmc 0:1 0x80000000 uImage-2.6.40.3-0.fc14.armv7l.omap ; fatload mmc 0:1 0x81600000 uInitrd-2.6.40.3-0.fc14.armv7l.omap; bootm 0x80000000 0x81600000

Then run the following command:

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Beagleboard-xM boot script" -d fedora_boot_cmd boot.scr

From there you should be able to put the microSD card into you BeagleBoard and boot away. You can get one of the current rootfs tar files from the Fedora ARM wiki page. The current images are a little incomplete but I plan on publishing a new F-14 image soon and before long we should start to have newer images available.

New release for OLPC XO laptops

So yesterday the 11.3.0 release of the XO-OS went gold. Its the first release to support the ARM based XO-1.75 and as a result the XO-1.75 is also the first commercial product to be based on Fedora ARM! This is the culmination of over eight months of solid work for me.

There’s a number of interesting points of these releases that the Fedora community might not be aware of. The 11.x releases of the OS have been derived from Fedora 14. Pretty much the entire release is built from mainline Fedora with very few differences, and most of those are patches to the kernel including build related stuff, and a few patches to the Sugar UX to assist with deployments. I strongly suspect that the 11.x releases are the largest deployment of Fedora 14 anywhere 🙂 and probably also of the gnome desktop and its components too.

Moving forward from this release we’re investigating moving the OS release process to mirror rawhide. We’re aiming for the XO-OS 12.1.0 release to be based on Fedora 17 and be released around a month after the main Fedora 17 release. Its going to be a massive release as its encompassing a move of the Sugar UX to gtk3 and gobject-introspection and associated underlying changes as well as jumping to other newer technologies like systemd and NetworkManger 0.9. I’ll be doing a release of Fedora 16 on XO for the XO-1 and XO-1.5 with the latest sugar 0.95.x development release for olpc/sugar developers and others that are interested in testing. I’ll also be doing regular snapshots from rawhide throughout the release process.

One of the advantages I see in moving to rawhide is that we’ll be testing the functionality the OLPC uses and depends upon as its being pushed to rawhide which means we can catch all breakages as early as possible and file bugs or generally bother people while its fresh in their minds rather than trying to get fixes for things that broke in the dev cycle two releases ago and that the developer likely doesn’t have any interest in any longer.

So for all Fedora people out there with various releases of OLPC XO hardware gathering dust now is the time to dust it off and play again as there’s new stable releases on F-14 and soon to be various releases on the latest and greatest Fedora releases. I announce all releases to the Fedora OLPC list. The XO-1 is even getting faster with each new Fedora release so there really is no excuse 😀

The Rumor Of My Demise Has Been Greatly Exaggerated!

So it’s been a long time since I’ve blogged! At the beginning of the year I was aiming to post regularly. Jared challenged me to blog about my Fedora happenings weekly at FUDCon Tempe, that seemed to go OK until around June. For a while there I was actually quite a bit ahead, now I’m about 10 posts behind my goal 🙁

So what has this slacker been up to? Well quite a lot actually!

  • I’ve started my tenure on the Fedora Board. I’m some what into the groove now but I need to start blogging more about it too.
  • Fedora 14 on ARM. As part of the OLPC XO 1.75 I’ve been rebuilding the entirety of Fedora 14 on ARM. Its been somewhat daunting and I think to some people it must look like I’m on a quest to get a ChangeLog entry in every package in the distro :-/
  • My $DAYJOB has been manic! Lots of interesting RHEL 6 bit but also massive amounts of VMWare vSphere stuff. I’m off the VMWorld in Vegas this week so if there’s any Fedora people about at VMWorld or Vegas and you want to catch up get in touch with me

I’ve also been going through the final bits of my naturalisation process in the UK and attempting to sail regularly with my crew. Last week we won 2 races and came second in two races in the Sussex Regatta which gave us an overall win 😀

There’s all sorts of other things going on but I think that’s the biggies. Hopefully I’ll be able to start blogging more in the coming weeks!