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.

FUDCon Blacksburg Transit Day and can someone bring a spare Dell laptop charger to FUDCon

The flight was some what uneventful….. Immigration was WORSE than usual. It took 2 hours because for some reason they wouldn’t open more than four positoins at once, the queues were out the door. The there was the usual dicks that are the TSA with their terrible attitude that turns even worse if you decide to opt out of their useless scanners that will scan through everything and still require you to strip everything off.

I then discovered I’ve left my laptop charge behind in the early morning rush to get out of the house 🙁 So if anyone has a spare Dell Latitude E-Series or D-Series laptop charger they could throw in their bag I would be for ever grateful (my laptop is a E6410 but I’ve used all E and D series with it).

Repeat: Anyone coming to FUDCon that has a spare Dell charger I can borrow over FUDCon I will owe you beer (or what ever your fave beverage is!).

OLPC XO-3 and Fedora

For a lot of you its not been much of a secret that I’ve been working on various OLPC things for quite a number of years now in my own time. Its also not a shock to a lot of people that I’ve been spending a lot of my Fedora time on ARM related things in recent months! After all in both cases it’s been not unusal for me to bother you about dependency or build issues whether it be by email, bugzilla, or even in person 🙂

Most Fedora people would have seen the announcement of the XO-3 Tablet by One Laptop Per Child and Marvell Semiconductor. You’ve likely seen it in the media, its been reported all over the place. You might have even seen some of the cool press shots like this one..

XO-3 Tablet

or this one…

XO-3 Tablet

One of the things that you may not have realised is that the devices being demoed at CES were running Fedora 14 on ARM. Pretty cool huh? Sure it’s by no means currently as fast as it could be. Firstly it’s running “softfp” which doesn’t properly make use of the hardware floating point. It also doesn’t even begin to make use of Marvell’s equivilent of SSE/MMX let alone some of the other features. We’re aiming to make it scream, comparetively for a device that draws 2 watts! It will never be a super computer but it will be able to run an OS that is pretty close to the linked beast, and even be a little more rugged and portable to boot!

If you don’t believe me check some of the following photos (courtesy of Gizmodo) . Do any of them look familiar?

Yes, that’s Sugar

And GNOME 2.32, I’m working on GNOME 3… help wanted!

a close up.

Say CHEESE! Well say Record on Sugar actually.

More details can be found in Gizmodo’s OLPC XO 3.0 Hands On: The $100 Wonder Tablet article.

I think it’s very cool to have Fedora running on a device that is again so ground breaking in both cost and design right from the very beginning! No Android here, it’ll come later. I’ll have its big brother at FUDCon Blacksburg and I look forward to getting it running Fedora 17 very soon 🙂

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.