Monday, March 5, 2012

openSUSE on Panda

For the last couple of months, we have been working hard to get openSUSE ported over to ARMv7, now that ARM devices are out that are actually powerful enough to host a full-fledged distribution like openSUSE.

The really interesting part to this project is the way we build. We compile everything using QEMU on x86. And we have a "don't treat this different than native" rule. So if there is a bug in QEMU, it needs to be fixed. This is different from previous approaches, where people modified packages so they would work fine in their build environment, rather than fix the actual underlying issues. If a package breaks in the QEMU build, but works in a native build, we have to fix QEMU.

As a result of this, we have contributed about 40 patches to QEMU recently - all in linux user emulation code.

So this weekend, I figured I would like to actually see what we're currently producing and started installing the current build of openSUSE with XFCE on a Pandaboard:

Unfortunately, the graphics situation on there is not perfect. The Xorg omapfb driver thinks there is an HDMI display connected in parallel to the DVI one that is really attached and figures that it really should run on that one instead. Ergo, I get a black screen.

I haven't found a reliable way of fixing that, other than forcing X to use the DVI output as its main display using these 2 lines in various Xorg startup scripts:

/usr/bin/xrandr --output hdmi --off
/usr/bin/xrandr --output dvi --primary --auto

With this, I at least get output. For a while. After a few minutes of using the system, I immediately ran into an old upstream bug where the display driver thinks it's a good idea to just disable all output when it gets too many requests. In good old Linaro/Ubuntu fashion, this has been fixed in the Ubuntu tree, but not upstream. Oh well. Let's hope that changes anytime soon. I already nagged them about it ;).

But despite this, things work really smoothly. All the packages that actually are built successfully already work just fine and I was even able to run bb - my favorite demo of all times!

We're still trying hard to get the full distribution compiled - without any build errors - to enable us to ship openSUSE 12.2 with an ARM Beta. Let's keep our fingers crossed this works out!