August 10th, 2009
So, finally I bit the bullet and did it. I’ve set up a repository with working packages for Intel GMA500 (Poulsbo) support on Fedora 11. You can just enable the repository and install the driver and it will work.
The driver is now available in RPM Fusion. All you need to do is enable the RPM Fusion repositories – you need non-free, that’s where the driver lives – and run:
yum –enablerepo=rpmfusion-nonfree-updates-testing,updates-testing install xorg-x11-drv-psb
then reboot, and all is good. If you want to use an external display alongside the internal one, you’ll need to edit the xorg.conf file and add a Virtual line, as briefly discussed in the old text below. Otherwise, that’s really all you need to do. All installation instructions below are obsolete, though some of the tweaks discussed are still useful (like the kernel parameter for the Vaio P). I will be removing my own repository shortly and maintaining the driver only in RPM Fusion.
Since first writing this post, I’ve made several updates to the packages. Video playback acceleration is now available: see this later post for details. libdrm-poulsbo is much cleaner and installs happily alongside regular libdrm. I have just updated the main driver package with a patch which make it default to ignoring ACPI for screen detection purposes. . The package now installs a service which automatically enables the driver and configures the ‘greedy’ EXA migration heuristic rather than ‘always’, which seems to improve performance and reliability for several testers (both here and on the Ubuntu forums), so you don’t need to modify xorg.conf yourself at all unless you want to do spanning across multiple displays.
A couple of gotchas with the packages have also emerged. You need to have the RPM Fusion repository enabled before you can use this repository, it just won’t work otherwise. Depending on your exact hardware – many Poulsbo-sporting machines don’t actually support PAE – you may also need to manually install (with yum) the i586 kernel-devel package instead of the i686-PAE kernel-devel package that the dependencies may pull in. If you’re using a Sony Vaio P, you’ll want the kernel parameters ‘mem=1900MB nohz=off’ to make everything go smoothly.
To install, as root:
rpm -Uvh http://adamwill.fedorapeople.org/poulsbo/i586/poulsbo-repository-release-11-1.noarch.rpm
yum install xorg-x11-drv-psb
The only thing you’ll have to do manually is set up a /etc/X11/xorg.conf file, as there’s no way I can patch X.org’s auto-detection from outside the X server package. You can just use mine if you like. It has a Screen section which sets up a framebuffer size of 3280×1050, which is what I need to have a 1680×1050 display side-by-side with the 1600×768 panel in my Vaio P; you can adjust that section to your needs, or take it out if you don’t expect to be doing any spanning with an external display. If you create your own xorg.conf, you may still need the line ‘Option “IgnoreACPI”‘ in the Device section, or you may not – I’m not entirely sure if it’s still needed with these latest versions of everything.
There’s some very horrible hackery in the libdrm-poulsbo spec to make it replace the regular libdrm without complaining, but if you don’t look at it, it won’t hurt you . Sources are here (of course, this is still the partly-proprietary driver liberated from Ubuntu Netbook Remix, so there’s still no sources for the ‘firmware’ or xpsb-glx parts). Let me know if you have any trouble.
This is for F11, i586 only. I don’t believe any x86-64 system has a Poulsbo chipset, and I don’t have an F10 system so I can’t easily build F10 packages any more.