Fedora 18 on ARM retrospective

It’s been a while since I’ve done a general update on Fedora 18 on ARM. Post release always tends to be a good have a look at what’s been achieved, where we are and what we have planned for the next release. At the beginning of last year I was trying to blog weekly on my Fedora involvement, or at least tech involvement that’s related to Linux, I need to get back into that habit, if for no other reason than to stop people bothering me ;-). As a result this is a bit of a mammoth post at around 1500 words!

Overall Fedora 18 was a reasonably standard release process for ARM. We had the usual package build issues with lots people scrambling to help us get things fixed even if some took longer than hoped, kernel issues also featured but that’s not unusual as there’s been a lot of upstream ARM churn! The extended release process wasn’t as bad for ARM as it was for some of the other teams as it allowed us to fix up some more bits and get them landed in the release. So what were the major achievements of this cycle?

  • Supported Devices: The number of devices we support has actually gone down due to the Efika devices not being updated to run on the newer kernels and then being completely dropped for the 3.7 cycle due to lack of DeviceTree support. That being said the number of devices that work with only little intervention is on the way up and this should increase dramatically over the Fedora 18 life cycle due to the unified kernel. People are also starting to play with remixes for devices and I have some ideas to support this better (see kernel section).
  • Packaging: The number of packages that didn’t build out of the total of 12,614 packages in the final F-18 GOLD release was a rather small 280 at mainline release. This has actually gone down since as we’ve had a couple of packages that were blocking a lot more land in the post F-18 updates flurry and more are on the cusp of landing too. I’m working through the remaining packages to document the remaining hold outs and classify them as 1) non ARM arch 2) simple fixes required 3) complex fixes required 4) language bootstrap required 5) unknown or 6) dependent on another package from 1-5.

    We’re also working on improving and optimising packages for ARM. Over this release cycle I’ve pushed a number of fixes to improve performance and operation of packages. I expect this to continue for a number of cycles to come as well as enabling more HW device support like UCM support for sound devices in F-19.

  • Kernels: I’ve spent an inordinate amount of time this release doing kernel work. I would never consider myself a kernel hacker but clearly I’m able to fool people as I was asked by a kernel developer if my employment by Red Hat was to become the ARM kernel maintainer, while chuffed at the complement I’m really not a kernel hacker!

    So what have we achieved in the kernel this cycle? Well we’ve landed the first iteration of the 3.7 “unified” ARM kernel which allows us to boot a single kernel on multiple devices. We have two devices currently supported in 3.7 with the qemu based Versatile Express emulation and Calxeda Highbank being the first candidates that have been tested to work, we have the Marvell mvebu support enabled in 3.7 too but there’s not enough driver support for it to work on real devices. The 3.8 kernel expands this out by adding IMX (yet to be enabled), SunXI (also known as AllWinner A1x) and some other devices. The A1x support is similar to the mvebu in 3.7 in that it’s just core SoC support so not really useful as yet. The unified kernel has allowed us to collapse a number of our kernels into one which has reduced our build times dramatically (one of the bullet points needed for primary arch) but it’s not all completely rosy. The unified kernel is still problematic and I don’t believe this is helped by its current lack of use. This is especially disappointing when Linaro don’t even build unified kernels for testing. It appears Fedora is leading here and I get to feel the pain 🙁

    Moving forward I’m starting to hack about on a new kernel idea to enable easier support and “Remixes” for non mainline ARM devices. Basically I want to do a remote clone of the Fedora kernel tree and setup a branch for each device we wish to support. From there I plan on pulling in the patches/trees needed to support the device. It’s not going to be pretty as some still use the 3.4 kernel etc but the planned outcome is an automated yum repo with a series of kernels enabling people to build their own install images for a much larger range of devices, a long with a central repo so that when/if the support goes mainline it’s easier for us to merge the changes in. Once this is working I hope for people to be able to submit new platforms via git pull requests. I’ll blog about this more as I get more bits working. I need to upshift my git skills and I suspect this will be an interesting challenge!

  • FUDCon and FOSDEM: Unfortunately due to personal commitments I was unable to attend FUDCon NA this year. I was some what amazed at the number of people that contacted me to ask why I wasn’t there and if everything was OK or just to express their disappointment at not catching up with me. Believe me it was unavoidable and I wasn’t just trying to avoid you all! From everything I’ve heard it was a great event with lots achieved both around the ARM and non ARM stuff but others have reported on this so I won’t bore you!

    On the plus side I did make it to FOSDEM this year! And what an excellent event it was! It’s an event I’ve been wanting to attend for 5 years or so. I was even recorded in a podcast by the excellent EMEA Cloud Guy talking about ARM, OLPC, all sorts of cloud computing tech as well as other things that I do in my day job. So if you really did miss my voice at FUDCon or are just having problems sleeping you can have a 30 minute odd fix there 😉

    There was a lot of things covered on the ARM side from ARM64 (or aarch64) through to the varying state of GPU support. I plan to write up more about this in other posts but it’s certainly going to be an exciting year for ARM development! You can mark my words 😀

  • Awareness: I’m constantly surprised about the people that get in contact with me about Fedora ARM support. It’s amazing and exciting the places people are looking to use and actually are starting to use it, it’s nice to know that the thousands of hours I and others are putting into Fedora on ARM aren’t going to waste. The awareness of the project both inside the Fedora community and in the wider Fedora ecosystem is expanding rapidly and that can only be a good thing! For example OLPC announced the XO-4 Touch at CES and it’s running Fedora 18 on ARM to boot.
  • Build platform: We’ve finally got enterprise hardware on it’s way. I was kind of hoping we would have made the switch a month a go but any moment now we’ll be moving the koji instance used for ARM builds over to a unified set of enterprise builders based on the Calxeda EnergyCore platform. This is in preparation for a push to promote ARMv7 to primary architecture. I must say, primary or otherwise, I’m really looking forward to having a unified set of builders running on enterprise storage and networking. While the existing platform has served us well it’s really starting to bulge around the edges while building for the three Fedora releases on two architectures. Look for the announcement Real Soon Now or just listen out to me celebrating!
  • Dropping armv5tel: We’ve decided to drop ARMv5tel support as of Fedora 19. Both Fedora 17 and 18 will continue to be supported for the entire mainline life cycle. The fact is that ARM themselves, with the introduction of the Cortex-A5, have stated that all cost points and use cases are now covered by the ARMv7 Cortex-A* series of designs and as the memory supported by the v5 series of chips is only DDR1 the devices were getting expensive to make. While there are a number of plug devices out there still the fact is there’s probably less devices there as there were PPC devices when it was decided to drop PPC so I don’t see it as a major issue. The Raspberry Pi is going to be supported by Seneca in a separate ARMv6 secondary arch effort so isn’t going to be left out.
  • Anniversary and statistics: Stats are always fun and I noticed the other day that it was in fact my two year anniversary of working on Fedora ARM builds, although like a typical male in a relationship I did forget it! In my defence I have also forgotten my own birthday in the past too 😐

    I pushed my first build on January 9th, 2011 and since then I’ve done a mere 82,876 builds via a lot of tasks (koji times out on that query!). I’ve also submitted well over 300 updates for F-17 and at a little over 125 not quite as many for F-18 putting me on the top of the updates list (sorry!) for both releases. They weren’t all for ARM though but I’m very glad F-18 is, currently, a lot less than F-17 which means that we’ve made progress on fixing ARM issues 🙂

Look for some more specific, less wordy, ARM related posts soon.

Fedora ARM on the Google Chromebook

I’ve been asked numerous times about Fedora ARM’s plans to support the Samsung Chromebook so I thought I would do a quick blog post to outline our plans. In short “ABSOLUTELY” and “As soon as possible” are the answers 🙂

So of course we plan to support it. As a device the Samsung device is what we’ve all been waiting for in an ARM device in that it’s cheap, nice looking, has relatively decent specs and is all nicely packaged.

Unfortunately initially we’re going to need to support it as a Fedora Remix as there’s some bits that haven’t landed upstream that will require us to fork things and in particular the kernel. So in the short term we’ll do a remix and hope to have a usable version of that out soon and a more stable one not too far behind the Fedora 18 mainline release.

So what is there to be done I hear you ask? That’s a difficult answer but it breaks down roughly as follows:

  • uBoot / DevMode and how best to support it (and if we’ll be able to remove the horrible 30 second boot message)
  • Kernel support, both initially a fork and then as mainline.
  • Xorg / GPU support. We have the basics of this already in Fedora 18 but we want it to go as fast as possible 😀
  • Sound. Be aware that at the moment you’re likely to fry your speakers if you try to use it now. We don’t want that. It means we’re going to need to deal with UCM and associated support bits. It’s something I’ve only just found out about and I’m researching what we’re missing. It will be useful for all ARM platforms (and x86 too).
  • Improved HW support – basically make sure everything works as expected whether it be HDMI or WiFi.

That’s basically it (and it’s no small amount of work) but most of the rest of Fedora ARM hardfp should run just fine and dandy on it so all of that hard work is done. There’ll likely be some optimisations that can be made so it runs even faster but we should soon be able to support another stunning little device with Fedora ARM 🙂

Watch this space

GNOME 3 fall back mode

I’ve been aware of the possibility of gnome fallback mode being dropped for quite some time. I wasn’t aware a decision had been made to definitely do so.

This is somewhat disappointing to me as I know of a lot of users of it. For starters there’s the 2.5 million OLPC XOs that were in the field as of January 2012 (I’m led to believe there’s around 1.5 million more to add from this year) and there’s a lot of ARM devices that have no 3D support because it’s pretty much impossible to use ESGL with gnome-shell at the moment (yes I know there’s plans to refactor mesa and friends to cope with this but that’s not now).

This isn’t designed to be a Federico style rant and if it was it would be aimed as much at the MATE Desktop as the GNOME team. I personally believe MATE would have been better off targeting their resources at properly fixing the GNOME 3 fall back mode to do the things they miss from GNOME 2 as attempting to glue together the GNOME 2 desktop as at least all the core apps are not duplicated and they get to keep the newer code which ultimately will be a lot more maintainable moving forward through the shared development of code. I’m not sure why they went the other route.

Oh well ultimately I believe it will be yet another net loss for GNOME as possibly eventually losing 4+ million odd young users from OLPC deployments (and all the other people such as families that use the devices) when they leave school I think would be a loss for the community moving forward and then add to that the users of it on ARM devices and other old computers in the developing world I think they’re not even aware of the users they have.

N.B. As always the words and thoughts are those of my own and don’t represent anyone else’s opinions.

A long overdue status update of Fedora on ARM

Well I’ve been meaning on doing a status update on ARM as well as a number of blog posts for quite sometime but I’ve had some personal changes I’ve been settling into (more on that sometime soon).

So first and foremost we’ve announced (a slightly delayed) Fedora 18 ARM alpha. There’s a some of images there for supported devices but if there’s an image you’d like that’s not there feel free to come and help out to make it happen.

We’re looking pretty good for Fedora 18. We’ve got even more packages built than what we had for Fedora 17 and we’ve fixed and improved a lot of issues. I’ve spent a lot of time massaging the kernel into better shape with the help of the Fedora Kernel team and jwb in particular. We have people polishing desktop environments like XFCE and KDE with thanks to some of the XO 1.75s that people received as part of The Fedora Summer of Fun and I look forward to seeing more of the 50 people that received one coming and helping out. Not everything was quite so rosy though as the anaconda newui work has delayed more than just the main Fedora release. We do still have a lot of work to as while the vast majority of packages build and a lot of them even run there’s a lot of testing and optimisation to do.

But it’s not all about Fedora 18 as we’re already working on Fedora 19 (that is after all the reason we branch just prior to Alpha release)! The big thing to note to date is I’ve now landed the first support for a unified kernel. We should be able to boot around 4 different SoC platforms with the 3.7 kernel but expect this to expand rapidly in the 3.8 kernel and by the time Fedora 19 is released with what will probably be the 3.9 kernel I’m hoping we should be able to much easier support a lot more devices with just a couple of kernels.

The last couple of weeks has also been quite mammoth in general ARM news. In the shipping now news the first of the new ARM Cortex-A15 chips has made it to a great and cheap device. We hope to get it running a Fedora Remix soon. It’s the first device and the Samsung SoC based on the A15 and it’s the first of many we’ll see over the next couple of months.

In other not so shipping news it’s been mega ARMv8 / arm64 announcements week. It start with Andrew Haleyannoucing Red Hat is working on openjdk for ARM64. This was followed by Linaro announcing a ARMv8 image based on Open Embedded. Then it was AMD announcing ARMv8 chips and it’s working with Red Hat on them. And then finally today was the announcement of Linaro Enterprise Group. LEG for short (I’m already sick of the puns!). This is great news! And there should be the first starts of the Fedora bring up being available soon and a lot of work to do over the next year too!

Overall it’s been a busy six months in ARM and for me personally. I’ve known about a number of the announcements and it’s finally great to have the cat out of the bag. The soon to be released (hopefully sooner rather than later!) Fedora 18 is another pretty big step forward for ARM on Fedora. The next year is going to be a fun ride!

So one of the things that people often ask me is how do I get involved in ARM stuff. Most of the boring things like builds are mostly automated so I usually recommend to get a device and start using it, hacking on it and testing it. Even the qemu image is a good way to get started. There’s almost 12,000 source packages in Fedora so it’s impossible for us to test all use cases. There’s also a lot of bits of hardware even on the supported devices like the panda boards we don’t have time or the ability to test from GPIO to various sensors etc. So that sort of stuff is a good way to begin!

Using Fedora on your shiny new OLPC XO

So you’ve just received your shiny new OLPC XO 1.75 as part of the awesome Fedora Open Hardware Summer of fun! or you have an existing OLPC XO that you haven’t used for a while and it’s gathering dust. While it’s running Fedora it doesn’t seem to act completely like Fedora and what’s more it’s likely running an ancient Fedora 14 based release and that’s not really cool is it?

Well the first thing to do is to update it to a newer release. There’s XO releases based on both Fedora 17 (stable 12.1.0 release) and devel releases based on Fedora 18 (development 13.1.0 releases). For a XO-1.5 or XO-1.75 the update process is identical. The process I mention here re-images the machine so if there’s anything you need to save back it up first!

It’s relatively straight forward. You basically get the appropriate .zd file, put it on a USB key and away we go. The Fedora 18 based 13.1 images can be found here. You just need the latest .zd (and it’s good practice to grab the .zd.md5 file too) so for 13.1.0 os3 we’d download this file or for F-17 we’d use this one and pop it on a usb key. From there we make sure our XO has battery juice and is plugged into the power. We power it on and instantly hit ESC to get the OFW OK prompt. Plug in the usb key and run the command “fs-update u:\31003o2.zd“. The screen should change to a grid and slowly go all green. Once we’re back at the OK prompt we can type “reboot”. It will take a while to boot the first time as it will update the Open Firmware and do a few other bits but you should eventually be greeted with a Sugar prompt to enter your name. More detailed instructions including for the XO-1 can be found on the OLPC WIKI.

If you wish to move from the Sugar UX to the more familiar GNOME UX you can right click on the little man in the middle, select “My Settings” to get the Control Panel and there’s a icon “Switch to GNOME”. It will ask you to restart X. There’s a matching App in the GNOME menus to switch back.

Next up we want to unblock all updates from the Fedora repositories. The OLPC releases have a specific package NVR set for stability and release just selected updates rather than the usual firehose from Fedora. We generally want all updates available. The one exception to that at the moment is the kernel. So we do the following which removes the OLPC excludes and excludes just the kernel:
vi /etc/yum.repos.d/fedora*
delete this line
include=file:///etc/yum/olpc-exclude
add this line
exclude=kernel

Of course the first thing you want to do now is “yum update” to get the latest and greatest :-D!

Next up is enabling the standard GDM login. This is as simple as yum install gdm and then updating which display manager starts with the following:
rm /etc/systemd/system/display-manager.service
ln -s /usr/lib/systemd/system/gdm.service /etc/systemd/system/display-manager.service
reboot

Finally I suggest joining the Fedora OLPC mailing list. It’s a pretty quiet list but it’s where we copy any release announcements and also a spot to ask XO specific Fedora questions.

So that should get you to something a little more standard and allow you to install some of your favourite bits. Next up of course is getting more involved in both OLPC and ARM things happening in the Fedora community. I look forward to hearing about what works and what doesn’t on the Fedora planet and mailing lists 🙂

Also note that the above isn’t just restricted to the ARM based XO 1.75, even the original XO-1 runs Fedora 17 and 18 well so if you have an old XO lying around now is a good time to dust it off.

Allwinner ARM SoCs

Allwinner ARM Systems on a Chip is a cheap SoC producing some cheap and interesting devices. The SoCs themselves are made in China by a company that licensed the Cortex-A8 reference design from ARM, it was one of the earlier ARMv7 chips so isn’t bleeding edge but it is ARMv7 so fully hardfp compatible. They currently produce two widely available chips the Allwinner A10 and A13.

The Allwinner chips are something I’ve been interested in supporting in some form or another on Fedora ARM for a while as they simply have a lot of cheap hardware available that is of reasonable specs. There’s a few things that have stopped me to date. Firstly it doesn’t appear that all their kernel code is upstream as yet so we’d be in a similar situation as we are with the Raspberry Pi. I’ve also not had a lot of time of late (as can be seen by my lack of blog posts recently!) as I’ve had other more pressing things non Fedora ARM things on my plate. Lastly I’ve been concentrating on ensuring Fedora 18 and rawhide remains in reasonable shape, the kernels of the devices we support keep moving forward and I’ve also got some other boards that have upstream kernel support I would like to see being usable on Fedora. Simply put… there’s just not enough hours in the day.

The other day I noticed that the company behind the Allwinner SoC (or some other company) had decided the create a cheap development board similar to that of the Pi, BeagleBoard or some of the other devices on the market. It’s called the CubieBoard.

It’s an interesting board. It’s some what higher speced than the Pi being an 1Ghz ARMv7 Cortex-A8 processor with 1Gb of RAM (or 512Mb), 4Gb of NAND Flash, 100Mb ethernet, most of the usual peripherals and interestingly a onboard SATA port. All for $49.

I contacted the CubieBoard team to see what their plans were for Fedora support and offered my assistance. I’ve since got an email back saying they’ll send me a board to enable us to get it working with Fedora. So once I’m back from holidays I should have a Allwinner A10 board waiting for me which I can start investigating what is required to support the Allwinner devices in Fedora. It seems they’re moving to get the kernel support upstream, there’s also a project to write an open source X driver for the MALI 200 and 400 GPUs. So with luck before long we might have another class of cheap ARM devices for people to play with Fedora on.

Failure to build

Having done two complete OS builds of Fedora on ARM. First with Fedora 14 and now with Fedora 17 on both hardfp and softfp flavours of ARM is never ceases to amaze me how many packages won’t build on mainline Fedora. Now days if I get a build failure on ARM the very first thing I do is a scratch build on mainline so I can be sure whether the problem is ARM specific or a general failure, in a lot of cases sadly it’s the later.

What’s more it’s surprising to see how many packages are FTBFS post mass rebuilds even though it’s advertised that packagers need to fix their build failures post mass rebuild. In fact post F-17 mass rebuild there’s still nearly 300 packages that are FTBFS in F-17 and that’s just doing a basic grep against the latest f-17 tagged packages so it doesn’t take into account packages that were built in the f17-build prior to gcc 4.7 landing but are FBTFS with gcc 4.7.0, ruby or some of the other F-17 features.

I know of the last 3-4 months I’ve personally fixed into the 100s of broken packages, and I know spot fixes a lot too but it still amazes me that maintainers don’t fix the build failures for their packages. A lot of fixes, especially for the older build packages, are basic things like patch fuzz so shouldn’t be hard to fix!

A list of the current < f17 packages currently tagged into F-17 stable (sorry if there's already a fix in the works via updates-testing): Mayavi-3.4.0-2.fc15 Panini-0.71.103-5.fc15 PyKDE-3.16.6-7.fc15 Temperature.app-1.5-8.fc16 UnihanDb-5.1.0-7.fc15.3 alacarte-0.13.2-3.fc16 alevt-1.6.2-16.fc15 amanda-3.3.0-2.fc16 apache-commons-fileupload-1.2.2-2.fc15 apache-commons-jxpath-1.3-6.fc15 apache-commons-launcher-1.1-7.20100521svn936225.fc15 ape-1.1.0-3.fc15 aplus-fsf-4.22.4-21.fc16 async-http-client-1.6.1-1.fc16 audtty-0.1.12-3.fc15 autoarchive-0.2.0-3.fc15 ax25-apps-0.0.6-8.fc16 barcode-0.98-17.fc15 base64coder-20101219-2.fc16 blahtexml-0.8-3.fc16 boolstuff-0.1.13-2.fc15 bwa-0.5.9-1.fc16 cargo-parent-4.7-1.fc15 chronojump-0.8.14-1.fc12 cmucl-20b-1.fc15 cobertura-1.9.3-3.fc15 compat-flex-2.5.4a-6.fc12 coredumper-1.2.1-10.fc12 crossvc-1.5.2-7.fc12 ctemplate-0.97-1.fc14 dhcp-forwarder-0.9-1501.fc15 diveintopython-5.4-19.fc16 driftnet-0.1.6-21.20040426cvs.fc15 dvipdfm-0.13.2d-42.fc15 eboard-1.1.1-7.fc15 eclipse-anyedit-2.3.3-2.fc15 eclipse-collabnet-merge-2.2.1-2.fc15 eclipse-emf-query-1.4.0-2.fc15 eclipse-emf-transaction-1.4.0-2.fc15 eclipse-emf-validation-1.4.0-2.fc15 eclipse-m2m-qvtoml-3.0.0-2.fc15 eclipse-mdt-ocl-3.0.0-2.fc15 eclipse-mdt-uml2-3.1.0-2.fc15 eclipse-mercurial-1.8.2-1.fc16 emacs-common-proofgeneral-3.7.1-5.fc15 email2trac-0.13-6.fc12 erlang-ebloom-1.0.2-5.fc15 erlang-js-0.5.0-3.fc16 esc-1.1.0-14.fc15 ext3grep-0.10.2-2.fc15 ezmorph-1.0.6-3.fc15 fbdesk-1.4.1-7.fc15 fbida-2.07-8.fc15 fedora-idm-console-1.1.3-3.fc15 felix-parent-1.2.1-6.fc16 felix-shell-1.4.2-3.fc15 fillmore-lombard-0.1.0-5.fc15 flickcurl-1.18-2.fc15 freenx-client-0.9-11.fc15 fuse-emulator-1.0.0.1-1.fc16 fvwm-2.5.30-4.fc16 fwbuilder-4.1.2-1.fc15 g-wrap-1.9.11-4.fc12 gant-1.8.1-5.fc15 gconf-cleaner-0.0.3-2.fc15 gdmap-0.8.1-8.fc15 gengetopt-2.22.3-1.fc13 gforth-0.7.0-5.fc16 gimmix-0.5.7.1-2.fc15 gmpc-0.20.0-4.fc15 gnaughty-1.2.4-2.fc15 gnofract4d-3.13-2.fc15 gnome-do-docklets-0.8.2-4.fc15 gnome-speech-0.4.25-5.fc15 gok-2.30.1-1.fc15 goldendict-1.0.1-4.fc16 gooddata-cl-1.1.9-2.fc15 google-gson-1.7.1-3.fc16 grace-5.1.22-9.fc16 gshutdown-0.2-8.fc16 gtkglextmm-1.2.0-10.fc12 gtkmm-utils-0.4.1-3.fc15 gtksourceview-1.8.5-8.fc15 gtksourceview-sharp-2.0.12-14.fc16 gtksourceview2-sharp-1.0-10.svn89788.fc16 gtksourceviewmm-2.10.2-2.fc16 gwget-1.0.4-5.fc15 hardinfo-0.5.1-3.fc15 healpix-2.13a-2.fc14 ibus-table-cangjie-1.2.0.20100210-18.fc15 ibus-table-cantonese-1.2.0.20100305-3.fc15 ibus-table-code-1.2.0.20100305-8.fc15 ibus-table-others-1.3.0.20100907-6.fc15 ibus-table-xingma-1.2.0.20100305-3.fc15 ibus-table-yinma-1.2.0.20100305-7.fc15 icewm-1.3.7-1.fc16 ini4j-0.5.1-1.fc16 ipe-6.0-0.32.pre32patch1.fc12 jaffl-0.5.9-1.fc16 jgraph-5.13.0.0-2.fc13 jmol-12.0.41-1.fc16 jpoker-1.0.16-2.fc15 json-lib-2.3-5.fc15 kadu-0.6.5.4-5.fc15 kaffeine-1.2.2-1.fc16 kismet-0.0.2011.03.R2-1600.fc16 komparator-0.9-5.fc15 krecipes-1.0-0.2.beta2.fc15 ksplice-0.9.9-2.fc15 latexila-2.3.0-1.fc16 lekhonee-gnome-0.11-4.fc15 libAfterImage-1.20-2.fc15 libbsr-0.2-4.fc12 libcrystalhd-3.5.1-1.fc14 libfc14audiodecoder-1.0.2-3.fc17 libfwbuilder-4.1.2-1.fc15 libgdbus-0.2-6.fc15 libgdiplus-2.10-2.fc16 libgtkhotkey-0.2.1-4.fc15 libgtksourceviewmm-0.3.1-7.fc15 libharu-2.1.0-3.fc15 libhid-0.2.17-6.fc15 libinfinity-0.5.0-2.fc15 libkml-0.6.1-8.fc15 libmnetutil-0.8.0-0.3.20100629svn3775.fc15 libofx-0.9.4-1.fc16 libopensync-plugin-opie-0.22-5.fc15 libpano12-2.8.6-5.fc15 libqttracker-6.11.0-2.fc15 libsoup22-2.2.105-9.fc15 libvpd-2.1.1-2.fc15 licq-1.3.5-10.fc15 links-2.2-13.fc15 lsvpd-1.6.8-3.fc15 maven-changelog-plugin-2.2-7.fc16 maven-changes-plugin-2.6-2.fc16 maven-invoker-plugin-1.5-5.fc16 maven-license-plugin-1.8.0-5.fc16 maven-plugin-cobertura-2.5.1-1.fc16 maven-stage-plugin-1.0-0.3.alpha2.fc16 mercury-1.0-0.4.alpha6.fc16 metapixel-1.0.2-7.fc15 mimetic-0.9.6-2.fc15 mod_scgi-1.13-5.fc15 mod_security-2.5.12-4.fc15 moksha-0.5.0-5.fc15 munipack-1.2.10-2.fc15 nagios-plugins-rhev-1.0.0-2.fc16 natus-0.1.5-2.fc15 ndesk-dbus-0.6.1b-1.fc13 node-0.3.2-8.fc15 notify-sharp-0.4.0-0.14.20100411svn.fc15 ntfs-config-1.0.1-13.fc15 numptyphysics-0.3-0.6.20080925svn.fc15 ocaml-augeas-0.4-9.fc15 ooo2gd-3.0.0-1.fc16 openoffice.org-diafilter-1.7.0-6.fc15 openvrml-0.18.8-2.fc16 ovaldi-5.9.1-1.fc16 parole-0.2.0.2-6.fc15 perl-Config-Augeas-0.701-5.fc16 perl-Crypt-CBC-2.29-8.fc16 perl-Log-Any-0.11-6.fc16 perl-MD5-2.03-10.fc16 perl-Module-Starter-Plugin-CGIApp-0.30-6.fc16 perl-Test-Refcount-0.07-1.fc16 perl-XML-Filter-XInclude-1.0-9.fc16 pgp-tools-1.1.3-4.fc16 php-ezc-Authentication-1.3.1-2.fc15 php-pear-File-Find-1.3.1-1.fc15 php-pear-Payment-Process-0.6.6-7.fc16 pianobooster-0.6.4b-3.fc15 piccolo2d-1.3-9.fc16 pino-0.3-0.3.20101112hg.fc15 pioneers-0.12.3-3.fc15 pki-java-tools-1.3.1-1.fc14 plexus-sec-dispatcher-1.4-4.fc16 pmd-4.2.5-11.fc16 pngcrush-1.6.10-7.fc15 pngnq-1.1-1.fc16 pnmixer-0.3-1.fc16 polyxmass-bin-0.9.8-2.fc12 postgresql-odbcng-0.99.101-0.5.test1.fc15 postgresql-pgpoolAdmin-2.2-2.fc12 postgresql_autodoc-1.40-2.fc14 printoxx-2.8.1-2.fc15 professor-is-missing-0.1-6.fc15 putty-0.60-7.20100910svn.fc15 pxe-kexec-0.2.3-3.fc15 pysvn-1.7.5-1.fc16 python-GeoIP-1.2.5-0.4.20090931cvs.fc15 python-HTMLgen-2.2.2-14.fc14 python-bitarray-0.3.5-4.fc15 python-blinker-1.1-1.fc16 python-blist-1.3.4-1.fc16 python-catwalk-2.0.2-4.fc15 python-cclib-1.0.1-1.fc16 python-cement-0.8.18-2.fc16 python-cerealizer-0.7-3.fc15 python-cherrypy2-2.3.0-15.fc15 python-cherrytemplate-1.0.0-12.fc15 python-chm-0.8.4-10.fc15 python-clientform-0.2.10-2.fc15 python-cloudservers-1.2-3.fc16 python-coffin-0.3.5-2.fc16 python-compositor-0.2b-4.fc15 python-configobj-4.7.2-3.fc15 python-couchdb-0.6.1-4.fc15 python-cpio-0.1-12.fc15 python-cssutils-0.9.7-2.fc15 python-ctags-1.0.5-4.fc15 python-daap-0.7.1-7.fc15 python-daemon-1.6-1.fc16 python-dialog-2.7-14.fc15 python-dictclient-1.0.1-6.fc14 python-dmidecode-3.10.13-3.fc15 python-dns-1.9.4-1.fc16 python-dotconf-0.2.1-12.fc15 python-dpkt-1.7-2.fc15 python-drizzle-0.08.2-7.fc15 python-dtopt-0.1-8.fc15 python-durus-3.9-2.fc14 python-empy-3.3-7.fc15 python-enum-0.4.4-3.fc15 python-epdb-0.11-6.fc15 python-exif-1.0.8-6.fc15 python-formencode-1.2.2-4.fc15 python-modjkapi-0.1.2.28-7.fc15 python-mpmath-0.17-2.fc15 python-pywt-0.2.0-3.fc15 python-unidecode-0.04.7-4.fc16 qalculate-kde-0.9.7-3.fc15 qbrew-0.4.1-7.fc15 qtparted-0.4.5-26.fc15 quesoglc-0.7.2-2.fc15 qwtplot3d-0.2.7-10.fc15 ragel-6.6-3.fc15 raul-0.8.0-2.fc15 rinputd-1.0.4-1.fc16 rmic-maven-plugin-1.1-7.fc16 rpmdepsize-1.0-7.fc15 scite-2.22-2.fc15 selenium-core-1.0.2-0.5.20100324svn.fc15 selenium-remote-control-1.0.3-8.20100318svn.fc15 sinjdoc-0.5-10.fc15 snoopy-1.8.0-1.fc16 sofsip-cli-0.16-3.fc15 specto-0.3.1-3.fc15 sphinx-0.9.9-6.fc16 spor-1.0-4.fc15 sshfp-1.2.0-1.fc16 stardict-3.0.2-2.fc16 stratagus-2.2.4-9.fc15 subcommander-2.0-0.7.fc15.7 surf-0.4.1-3.fc15 svnkit-1.3.4-2.fc15 symkey-1.3.0-4.fc13 synapse-0.2.6-1.fc16 synfigstudio-0.62.02-1.fc15 tesseract-3.00-2.fc15 testng-6.0.1-1.fc16 tilda-0.9.6-6.fc16 tomoe-0.6.0-19.fc15 tucnak2-2.31-1.fc13 txmpp-0.0.2-3.fc14 txt2man-1.5.6-1.fc15 tyrion-0.1.0-1.fc15 ucblogo-6.0-8.fc15 umlgraph-5.4-2.fc15 uncrustify-0.58-1.fc16 vifm-0.5-5.fc15 vorbisspi-1.0.3-3.fc15 winwrangler-0.2.4-2.fc15 wmdrawer-0.10.5-11.fc16 wmfire-1.2.3-4.fc15 wmweather+-2.11-3.fc15 wormux-0.9.2.1-5.fc16 writer2latex-1.0.2-6.fc16 xaos-3.5-2.fc15 xdrawchem-1.9.9-15.fc15 xesam-glib-0.5.0-5.fc15 xmlbeans-2.4.0-7.fc15 xulrunner-python-2.0-1.20110406hg.fc16 xxdiff-3.2-14.fc15 yaws-1.89-4.fc15 zhu3d-4.2.2-3.fc15

ARM hardware now and the not so distant future

So one of the things that I noticed during the heated discussion on the devel mailing list is the impression is why would we want to promote ARM to a Primary Architecture when there wouldn’t even be hardware available to run it in the next year or so. Well the lack of hardware is completely untrue and that will only increase in the coming months and years. So I thought I would try and cover off some of the hardware that is either available now or will be in the next year or so that you might want to run Fedora on. All of the devices covered are available now or should be available by the time Fedora 18 makes it’s Halloween début, of course I have no crystal ball as to HW time lines so things might well change.

Development Boards: all these devices are currently available, there will no doubt be new releases or refreshes in the coming months, likely as Cortex-A15 chips become more widely available.

  • BeagleBoards: There’s three main varieties of these single core Cortex-A8 devices consisting of the original BeagleBoard, the BeagleBoard xM and the new tiny BeagleBone. They range from 800Mhz – 1Ghz and 256-5126Mb RAM with a few other options.
  • PandaBoards: There’s the PandaBoard and the PandaBoard ES. Bother at dual core Cortex-A9 processors the former at 1Ghz, the later at 1.2. From there the specs are similar with 1Gb RAM, WiFi, BT, 100Mb ethernet and various other features.
  • Raspberry Pi: The little baby that took the world by storm taking pre orders in the order of 200K boards and taking a couple of sites offline. There’s a model A and B based on a Broadcom ARMv6 chip the later has ethernet, both have 256Mb of RAM. Fedora is the recommended OS by the Foundation
  • Snowball: A ST-Ericsson based dual core Cortex-A9 with 1Gb RAM, wifi, BT, GPS, ethernet, 4/8Gb emmc and a raft of other fun stuff. It also has a MALI GPU which has development on the open “LIMA” driver
  • Origen: based on a Samsung dual core 1Ghz Cortex-A9 processor which can be replaced, it has 1Gb of RAM, wifi and number of other bits including the same MALI GPU of the igloo
  • Freescale i.MX53: A single core 1Ghz Cortex-A8 Freescale board 1Gb RAM, SATA, ethernet, with options of LCDs etc

SmartBooks, SmartTops, Terminals: These devices are the equivalent of the x86 netbooks and nettops, all are mostly available now.

  • OLPC XO 1.75: Initially shipping with Fedora 14 but we’ve already got dev images running F-17 and it will be the basis of the June stable release. The first production shipment of this device will be 60,000 units. There’s various SKUs but it’s a 1ghz Marvell processor with either 512Mb/1Gb RAM, 4/8Gb emmc, wifi, and the usual XO features, it should have in excess of 9 hours of battery life.
  • Efika SmartBook: a 800Mhz Cortex-A8 Freescale processor, 512Mb RAM and with all the usual 10 inch Netbook style of features
  • Efika SmartTop: the same specs as the smartbook
  • Toshiba AC100: A dual core Cortex-A9 1ghz processor with 1gb of RAM, and all the usual 10 inch netbook options, very thin and light with great battery life but the device wasn’t widely available but is sought after
  • ASUS eeePad Transformers: These devices are a combination tablet and netbook. Depending on the model they either come with a dual core 1ghz Tegra2 or a quad core Tegra 3 CPU with various specs. They are a tablet with the option of a keyboard dock which makes them into a netbook. With touchscreens, quad core processors, an interesting form factor and an unlocked bootloader they’re an interesting format.
  • HP t5325 thin client: A Marvell 1.2ghz Cortex-A8 512Mb RAM thin client
  • Trimslice: A Tegra 2 based smarttop desktop device with a couple of different modes all with a dual core 1ghz Cortex-A9 processor with 1Gb of RAM, 1Gb ethernet plus a couple of options including dual HDMI, 11n wifi.

Tablets: these aren’t readily available at the moment but should be available this year.

  • OLPC XO 3: Similar specs to the XO-1.75 but in tablet form factor, it will ship the Fedora derived OS all touch based UX it will likely be one of the first production devices using the new gtk3 and XInput 2.2 touch support in Fedora 17
  • Vivaldi: A 7inch tablet running KDE Plasma tablet UX on Mer the HW is a 1ghz single core Cortex-A9 processor with 512Mb of RAM and a MALI GPU it’s not the highest spec device but it should be easy to run Fedora on it

Servers:

  • HP Moonshot: In conjunction with Calxeda this is a quad core processor server with 4GB of RAM with up to 288 servers in a 4U chassis. Includes all the expected server features with things like a fully reconfigurable switch backplane with each device using a mere 5 watts of power.
  • Dell: has announced it’s intention to enter the ARM server market, there’s not much detail as yet
  • Seco Carrier Boards: these are various boards using Tegra processors used in things like the Barcelona Super Computer

Plug Computers: There’s a number of plug computers out there based on the Marvell Sheeva Plug generally a 1ghz ARMv5tel processor with 512Mb RAM. These devices are low power, generally quite cheap and come in a number of different devices.

So I think that gives a reasonable overview of ARM based devices that will be available in the coming months, if not already, that should be easily able to run Fedora on ARM without too many problems. This covers but a few of the available ARM based devices but they are a subset that should be relatively easy to run Fedora on them in the coming releases. ARM processors have a number of interesting advantages hardware wise. Firstly they are generally very low power with a lot of quad core devices needing only 5 watts to run, but some of the other advantages is HW encode/decode support for things like MPEG2/4 out of the box which would enable HD decode without having to ship encumbered codecs in Fedora as well as HW crypto as well.

I’m also sure this isn’t a definitive and there’s a lot of other devices that should be able to run Fedora on ARM without too many problems if someone is prepared to roll up their sleeves and get stuck in.

An alpha ARM full of Beefy Miracle (AKA Fedora 17 on ARM alpha 1)

A day later than I had hoped and probably not perfect but I don’t want to keep the hungry masses from their ARM based Beefy Miracle any longer!

So down below is a pair of minimal root fs for ARM hardfp (ARMv7hl) and softfp (ARMv5tel) but first a few notes about known issues:

  • It’s not for the faint of heart! If you don’t like to roll your sleeves up and get dirty, it’s time to back away and go and buy an iPad. While the ARM team is happy to help out with queries we don’t have the time to walk you though step by step. Google is your friend!
  • SELinux is disabled by default. It should work just find but as it’s a tar file the file system would need to be re-labelled. I suggest you enable it but get your device booting first
  • root password is “fedoraarm” (no quotes)
  • There’s some known annoyances with the kernel. It’s not a major problem, just annoying having BUG messages on the console. We’re working to get a fix for the next kernel
  • There’s 4 kernels installed by default the base “versatile” for qemu, and one each for OMAP (3 and 4), tegra and IMX. Remove which ever one you don’t want once you have a working system.
  • It boots to run level 3. We’re working to get GUI interfaces but we’re not quite there yet, see below for more details
  • A lot of ARM devices don’t have battery backed RTCs so you need to ensure you check your time hasn’t regressed to the 70s 😉 as it will cause havoc with yum amongst other things, ntpdate can assist you with that.

So some quick links to get you started on various devices. First there’s the Fedora ARM SIG Page, it’s a little out of date but a good spot to get started. For boards you can get Trim Slice HOWTO, for the various OMAP boards (Beagle* Panda*) here and for the various plug devices here.

Now on the missing GUI interfaces and “your favourite desktop”. We’re working as quick as we can to get all the mainline packages built. I would ask if you please don’t just go and build random packages in koji. We have scripts handling the build process to ensure it’s built identical to Mainline Fedora so everything works as it should but this takes time. The quickest way to get these appearing for use if for you to fix broken packages in mainline Fedora. If they don’t compile there they certainly won’t on ARM. These breakages block the build process of packages higher up the stack as the needed dependencies aren’t there. Again please just don’t go and compile random packages in koji.

That being said there’s been a LOT of work done by a few people to get us to this point so I do hope you jump in and enjoy the ride 😀

Now for what you really are after:

Fedora ARM F-17 and rawhide status update

or as the saying goes… the mustard indicates progress! Well there certainly has been an a-bun-dance of movement in the Fedora ARM world of late and it’s been way too long since I’ve given an update on the status of the Fedora ARM SIG.

We’re progressing well and there’s a lot of stuff going on. Of course you’re all going to be up be up at 06:00 GMT tomorrow (Wed) to order your Raspberry Pi running Fedora 14… aren’t you! I’m sure those of you that got a voucher for one at FUDCon Blacksburg will be ready and waiting.

In terms of raw package building of rawhide and F-17 branches we’ve been progressing well since we kicked off the mass rebuild shortly after the aforementioned FUDCon. In terms of numbers of a total 11348 packages in F-17 we’ve built 8861 of them giving us around 2487 left to go. Of course that’s not an exact number as there’s a number of x86 only packages and between now and the final beefy F-17 release there will be lots more releases of the packages that will need to be built. We’re already building rawhide to ensure we stay up to speed on that front too! One thing that is slowing us down is having to spend a lot of time fixing broken upstream packages and of course fixing ARM specific issues.

In terms of devices that will be supported for the Fedora 17 release the number will be quite small. The list at the moment will likely be PandaBoard (including ES), all modern BeagleBoards, Trimslice, Efika SmartTop and SmartBook, Raspberry Pi and the OLPC XO 1.75. The last two will be Fedora re-mixes. In most cases of pure Fedora the support will likely be console based or accelerated 2D UX. The device market and associated support is moving pretty quickly at the moment so that could easily change between now and release, this is very much a moving target. It’s also not to say that Fedora 17 won’t run on all devices, it’s just that Your Mileage May Vary and it depends a lot on the state of the mainline kernel support.

So what else are we working on? We’ve been doing a lot of planning in preparation for the Proposal to primary arch. We’ve also been working with various tools teams like Anaconda to get some features for building images. In this regard we also need to work with the appliance-tools and livecd-tools teams to see what can be done to allow them to support image creation. It would be cool to be able to use the appliance tools to create an qemu image that can be directly reported into libvirtd and virt-manager (hint hint 😉 ). I’m also slowly starting to investigate what’s needed to support DeviceTree so we can build less kernels and support more devices but I’m not sure it’s all quite there yet.

So what can you do to help? The most simple and best thing is to ensure your package has been built properly for mainline as part of the mass rebuild, or if we file a RHBZ bug with ARM issues to fix it or assist us in fixing it quickly. Most people have been fabulous with quick fixes and attention on bugs. Lastly we should have some minimal rootfs files available soon for F-17 😉

In summary we’ve got nearly nine thousand individual packages already built for ARM supporting both ARMv7 and ARMv5tel architectures. For our Fedora 17 release will be on a reasonable number of innovative and interesting devices. We’re aiming to release as close as is humanly possible to the Mainline Fedora release. Users should be able to run anything they would on similar x86 devices. We’re running and fast catching up 😀