Running an X (Xorg) server on your Raspberry Pi is frustrating. You can either use the fbdev or fbturbo driver which will give an un-accelerated 2D environment with swrast 3D (OpenGL) all beating your poor RPi’s CPU. Overclocking it will only help you so much which is a pity considering that there is another layer on the SoC that would be perfect for that but is now unused.
Enter the VideocoreIV (VC4) and Eric Anholt (formally of Intel, now of Broadcom), who are going to breath new life into the RPi. The idea is to offload the 2D rendering, via Glamor, to the VC4 with OpenGL calls. Since a OpenGL stack needs to exist, that means there will be a Direct Rendering Manager (DRM) Linux kernel module and Gallium/DRI module in Mesa.
This is happening now, here is the current status of support via the Piglit test-suite: skip 19102, fail 3866, pass 3146, crash 153, total 26267
Now that I’m a proud owner of a Raspberry Pi, I’ve being really stressing the little guy. There is only but so much a ARMv6 processor, on an microSD with only 512MiB of ram can do, which means that compiling on such a machine is going to take a really long time.
Take for example OpenMW, currently it takes about 4 minutes on a quad-core i7 to compile. You’re in for a treat on the Pi, it will take you at least a day, two days if you realize that half-way through the OOM Killer came through and killed your cc process. This is about the time you start wondering about various ways to improve the situation, such as a larger swap file or using zram.
At this point, I was wondering about other ways compiling binaries and packages for the Pi. There was cross-compiling, but then I would have to set up a full toolchain and recompile all the packages from scratch. That will have to be for another post though as it is another world. Another option is to try virtualizing the Pi and apparently QEMU gets us pretty darn close.
There are occasions where you legitimately need tools to help that would otherwise be considered the domain of “pirates” and “ne’er-do-wells”. In this particular scenario, my grandparents send a DVD from the United States (Region1) to us in Belgium (Region2). Not only will the DVD not play back on a region locked DVD player, there are also no Dutch subtitles.
Precise Pangola has been released and a day later comes a new fglrx driver. While there isn’t a changelog, this build apparently gives us:
early-look support for Ubuntu 12.04, Linux PowerXpress support for the Intel Ivy Bridge platform, packaging script updates, and various bug-fixes.
Among the bug-fixes for Catalyst 12.4 on Linux are: fixing some multi-head issues, a system hang in certain PowerXpress configurations, fixing a system hang when using OpenGL overlays, correcting an OpenGL performance drop, a soft-hang when killing the X Server, and severe corruption for OpenGL games using the AMD “Redwood” graphics processors.
If you want to build these for yourself then you can follow these instructions:
Natty (11.04) users can finally get fglrx playing nicely together with X.org 1.10. We can also make the latest driver work well with the 2.6.39 kernel.
Custom build procedure:
- Install the latest 2.6.39 kernel revision from Ubuntu Mainline or install the PPA.
- Download 64-bit 11.4.
- Extract the files from the package:
sh ./ati-driver-installer-11-4-x86.x86_64.run --extract ati
- For 2.6.39 support, download this extra patch: 2.6.39_bkl.patch
- Check for Big Kernel Lock usage:
cat /lib/modules/`uname -r`/build/.config | grep -c CONFIG_BKL=y
If the result of this command is 0, then download no_bkl.patch as well.
- then apply them:
cd ati; for i in ../*.patch; do patch -p1 < $i; done
- Build your new ati/fglrx deb packages:
./ati-installer.sh 8.841 --buildpkg Ubuntu/natty
- Install our newly created deb packages:
sudo dpkg -i ../fglrx*.deb
- If your /etc/X11/xorg.conf is missing you will need to run:
sudo aticonfig --initial
and then reboot.
That newly created package should work for the entire 2.6.39 series.