Poulsbo (GMA 500) driver in RPM Fusion repository for Fedora 13

So, I finally did it – I’ve uploaded a mostly working driver for the Intel Poulsbo (GMA 500) graphics chipset to the RPM Fusion repository for Fedora 13. As of right now, it’s in non-free updates-testing; it’ll be moved to the main updates repo at some point. To install it, set up RPM Fusion repos according to the instructions, then run this command:

yum –enablerepo=rpmfusion-nonfree-updates-testing install xorg-x11-drv-psb

You may also want to do this (it’ll make it work even when a new kernel comes out and Fusion doesn’t yet have a kmod-psb package for it):

yum –enablerepo=rpmfusion-nonfree-updates-testing install akmod-psb

Then just reboot, and usually it should work. Remember, you can get an mplayer build with video playback acceleration support which will let you play HD videos smoothly from my video-experimental repo: details in this post.

If you have trouble, check what kernel -devel package(s) is/are installed. 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 it works, but 3D acceleration and VA-API support don’t seem to be working, check the permissions on /dev/dri/card0; they should be 666 (rw-rw-rw-). If not, add this section to /etc/X11/xorg.conf:

Section “DRI”
Mode 0666
EndSection

Here’s some system-specific tweaks:

If you want to have an external monitor side-by-side with the laptop display, you’ll want to add a Screen section to /etc/X11/xorg.conf that looks much like the one in this file. You need to combine the dimensions of the displays you’ll have connected appropriately. For instance, I have a 1600×768 panel in my laptop and the external monitor would be a 1680×1050 screen, which would be to the right of the laptop panel. So I add together the horizontal dimensions – 1600+1680 = 3280 – and use the tallest single vertical dimension – 1050 – and wind up with a size of 3280×1050. That’s what I put in the ‘Virtual’ lines in the Display section. If your laptop display was 1024×768 and your external monitor 1280×1024, you’d do 2304×1024, and so on. Then you can configure the displays with gnome-display-properties or krandrtray or xrandr once X starts up.

If you’re using a Sony Vaio P (first generation), you’ll want the kernel parameters ‘mem=1900MB nohz=off’ to make everything work smoothly (this is nothing to do with the Poulsbo chipset, just other quirks of the Vaio P; I’m not sure if they’re needed on the second-gen P).

In case you’re someone who reads my blog but uses another distro, the driver is still packaged in Mandriva and should work out-of-the-box on 2010 and 2010 Spring (you may need to install additional packages from non-free to get 3D and video playback acceleration support, I’m not entirely sure, and I’m not sure how well it works on 2010 Spring). Ubuntu users will want to see this Wiki page and the recent pages of this forum thread for instructions and info. I’m not sure about other distros – do feel free to add info in the comments.

Note that this is entirely something I do in my spare time, and is not an official Red Hat project of any kind. Nothing to do with it is in any way representative of, or endorsed or supported by, Red Hat or the Fedora project.

Edit: I totally forgot to include credits in this post, very rude of me! I’m sorry. Thanks go to Olivier Blin at Mandriva, who did a lot of the work of porting the driver to work with X server 1.7 and later, and to the Ubuntu poulsbo community who did some more work, particularly Yves de Muyter who solved some thorny issues with EXA support. I really just packaged up the stuff other people have made for Fedora. 🙂

103 Responses

  1. Cosmin Deaconu
    Cosmin Deaconu July 19, 2010 at 5:08 pm | | Reply

    Awesome, I can finally upgrade my mini 10 to F13 safely 🙂

  2. Randy
    Randy July 19, 2010 at 8:11 pm | | Reply

    Sweet

  3. DH
    DH July 20, 2010 at 6:11 am | | Reply

    This driver is brilliant.
    I don’t know what is going on with your machine, but I’ve got both 3D and vaapi working here on my T91-MT — did literally NOTHING from a stock install of F13 except add in the fusion repo and install the drivers.

  4. sindikat
    sindikat July 20, 2010 at 6:57 am | | Reply

    Adam, you are awesome! Now i can use my Eee 1201HA without pain. You did a great job, thank you very much!

    Also thanks to Yves and all other guys which names i don’t know who worked on this driver, Xorg patches, whatever directly or indirectly.

    This news is amazing. Thank you again!

  5. DH
    DH July 20, 2010 at 7:17 am | | Reply

    Just a wild guess, but since you had your initial problem with 3d/vaapi failing, have you tried wiping the machine and installing F13 fresh? You could just have something incorrect stuck in a strange place.

  6. DH
    DH July 20, 2010 at 8:04 am | | Reply

    What do you get when you “strace glxinfo”?

  7. DH
    DH July 20, 2010 at 8:31 am | | Reply

    Nice 😉

  8. DH
    DH July 20, 2010 at 9:04 am | | Reply

    Nope, and from what I understand about it, it simply can’t work without that extension, and that extension is obviously within the “blob” part of the psb driver, so our only option is to see if intel can pull their knife out of their back.

    Did older versions of compiz work on psb?

  9. DH
    DH July 20, 2010 at 9:46 am | | Reply

    Try this:
    LIBGL_ALWAYS_INDIRECT=true compiz –replace

    I would try myself, but mine is busy compiling a kernel — the touchscreen driver first appears in 2.6.34, and the psb module won’t build with 2.6.35.

  10. DH
    DH July 20, 2010 at 9:47 am | | Reply

    Also, I think that the compiz packages from F11 would probably work on F13 without rebuilding.

  11. DH
    DH July 20, 2010 at 10:01 am | | Reply

    According to this: http://forum.compiz.org/viewtopic.php?f=124&t=10402

    The 0.9 branch with the “copytex” plugin doesn’t use the TFP extension any more.

  12. DH
    DH July 20, 2010 at 10:16 am | | Reply

    Section “DRI”
    Mode 0666
    EndSection

    Think that would help with the dri permissions?

  13. DH
    DH July 20, 2010 at 10:20 am | | Reply
  14. AdamW on Linux and more » Blog Archive » Mplayer (VA-API, VDPAU, ffmpeg-mt) experimental build repository for Fedora 11, Rawhide

    […] cards (GeForce 8xxx and later) using the proprietary driver, Intel Poulsbo (GMA 500) adapters using my driver packages for Fedora 13, S3 Chrome 530 GT and S3 Chrome 540 GTX adapters using S3’s own driver, and Intel i965 and […]

  15. Woogie
    Woogie July 20, 2010 at 5:43 pm | | Reply

    Thank you, Thank you, Thank you! To everyone who made this possible.

  16. Cody Smith
    Cody Smith July 20, 2010 at 8:32 pm | | Reply

    Thank you so much for this.

  17. DH
    DH July 21, 2010 at 7:13 am | | Reply

    You think you could add this patch to the kmod source: https://patchwork.kernel.org/patch/90678/

    ??

    This makes it work with 2.6.34 which is the first version that comes with several multitouch drivers, including mosart, which is required for t91mt, and probably some other poulsbo devices.

  18. abyss
    abyss July 21, 2010 at 8:46 am | | Reply

    Just wanted to add my thanks to Adam and everyone else that helped put this driver together. I can finally use F13 on my Sony P without feeling like it’s 1990 🙂

    At the moment, I’m just using gnome, has anyone successfully gotten compiz running?

  19. DH
    DH July 21, 2010 at 9:15 am | | Reply

    Compiz will….. run…. if you don’t mind losing your window decorations. 😉

    Just launch compiz with “–indirect-rendering”.

    Its not fun though….

  20. DH
    DH July 22, 2010 at 4:30 am | | Reply

    Yeah, I was seeing that too with the gtk-window-decorator. Also tried emerald — same thing.

  21. DH
    DH July 22, 2010 at 4:49 am | | Reply

    gtk-window-decorator is reporting a fatal io error….
    the xorg backtrace is saying something about psb_drv.so/libexa.so…… exa? Wonder if its a bug in Yves’ exa mixed patch….? Perhaps reverting that patch would fix it….

    This is the backtrace I’m getting from X:
    http://pastebin.com/YPT3q8ci

  22. DH
    DH July 22, 2010 at 5:07 am | | Reply

    Well scratch that idea… does the exact same thing with exa classic.

  23. DH
    DH July 22, 2010 at 5:59 am | | Reply

    Oooooh sweetness….
    I’ve got the touchscreen driver working now with kernel 2.6.34 — slightly modified and custom built and with a custom xorg-x11-drv-evdev.

    If anybody’s got an ASUS T91-MT ( — note: not applicable to regular T91, just the “MT” ) interested in doing this, here’s how to do it:
    1) Grab a kernel SRPM 2.6.34 (one market with a CHECK) for F13 from koji: http://koji.fedoraproject.org/koji/packageinfo?packageID=8 — I used the 2.6.34.1-20

    ** important: **NOT** 2.6.35, unless you’re a half decent kernel hacker interested in patching up the psb kmod to be compatible.
    2) Install said kernel source.
    3) Apply the two changes to the kernel as suggested here: http://newyork.ubuntuforums.org/showpost.php?p=9447113&postcount=1
    ** don’t know why, but the T91MT touchscreen driver, though part of the kernel, is BLACKLISTED by default… not going to work like that DUH!
    4) Build and install kernel.
    5) Get source for the psb kmod from rpmfusion and apply this patch: https://patchwork.kernel.org/patch/90678/

    ** this patch makes the psb kmod compatible with 2.6.34

    6) build and install kmod/akmod.

  24. DH
    DH July 22, 2010 at 6:43 am | | Reply

    Ok, got the touchscreen drivers working now… which is great.
    Looking currently at the infamous xrandr-makes-screen-black and only way out is to hold the power button until it dies. There is something about it doing that in the ubuntu forum, and there is apparently a fix for it, just having a bit of hard time figuring out what exactly it is…..

  25. DH
    DH July 22, 2010 at 6:45 am | | Reply
  26. DH
    DH July 22, 2010 at 7:14 am | | Reply

    Beautiful.
    This thing is now just about working exactly the way I always wanted it to work. Now I just need to wire in xrandr+pointer rotate to the rotate button and it’ll be all set.

    So… summary of the adventures — very applicable to anyone with a convertible psb tablet, especially a T91-MT….

    Two patches needed over Adam’s source…
    1) https://patchwork.kernel.org/patch/90678/
    * compatibility with kernel 2.6.34
    2) http://code.google.com/p/gma500/issues/detail?id=23&can=1
    * rotation

    Kernel SRPM 2.6.34 from koji, needs a couple of things that you can find here prior to build and install:
    http://newyork.ubuntuforums.org/showthread.php?t=1507489

    And then of course you’re going to need a couple of extras for running in tablet mode….
    1) gok (on-screen keyboard).
    2) simulated secondary click (find in mouse presses)… note that for the touchscreen, it does NOT work by just holding your finger on the screen, you need to tap-hold.

  27. DH
    DH July 22, 2010 at 8:40 am | | Reply

    Doesn’t appear to be any event or key code generated by the rotate button, so just added a little button on the gnome-panel to run a rotate script.

    This is the script:

    #!/bin/bash
    ROTATION=`xrandr -q | grep “LVDS0” | cut -d\ -f4`
    INPUT=`xinput –list | grep “Asus” | head -n1 | cut -d\= -f2 | cut -c1`

    case $ROTATION in
    left) xrandr –screen 0 -o normal
    xinput –set-int-prop $INPUT “Evdev Axes Swap” 8 0
    xinput –set-int-prop $INPUT “Evdev Axis Inversion” 8 0 0;;
    *) xrandr –screen 0 -o left
    xinput –set-int-prop $INPUT “Evdev Axes Swap” 8 1
    xinput –set-int-prop $INPUT “Evdev Axis Inversion” 8 1 0;;
    esac

    This gives two rotation modes: normal and left. If one wanted, they could do an upside-down or right, but I see no need for those modes.

    Also note: the synaptics touchpad doesn’t rotate with this, but if you’re in tablet mode (left), the synaptics pad is inaccessible anyway.

    Time to shut this thing down — going to image it tonight so that I have a good backup for when I surely mess it all up and want to go back.

  28. Marcus
    Marcus July 22, 2010 at 10:27 am | | Reply

    Thanks Adam.

    Everything works fine on my Dell Mini 12 but video playback. I just got sound but no video image.

    Greets
    Marcus

  29. Marcus
    Marcus July 22, 2010 at 11:19 am | | Reply

    mplayer-accelerated works fine 🙂

    Greets
    Marcus

  30. olmo
    olmo July 24, 2010 at 7:52 am | | Reply

    my brain off or….
    i have follow install instruction for PSB driver but….yum dont see nothing.

    1) yum –enablerepo=rpmfusion-nonfree-updates-testing install xorg-x11-drv-psb ERROR

    2) yum -–enablerepo=rpmfusion-nonfree-updates-testing install xorg-x11-drv-psb NO PACKAGE – or similar …sorry for english

  31. John Pierce
    John Pierce July 24, 2010 at 11:29 am | | Reply

    have installed this on a fresh fedora13 install on a dell mini10(1010). installed adobe flash into firefox. youtube videos play in the browser frame just fine but full screen goes all white (the browser comes back if I hit escape)

    I did the DRI mode thing in /etc/X11/xorg.conf (the permissions were wrong, but this didn’t change much).

    any other clues?

  32. DH
    DH July 26, 2010 at 4:20 am | | Reply

    Yeah, don’t expect a bug-free experience…. particularly when dealing with flash.

  33. stm82s
    stm82s July 26, 2010 at 5:16 pm | | Reply

    Hi guys, i have an Acer ao751h and tried to install the poulsbo driver but it did not work… I did the following:
    1- A fresh install of fedora 13;
    2- $ su -c ‘yum update’
    3- $ su -c ‘yum localinstall –nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
    4- $ su -c ‘yum update’ (again)
    5- $ su -c ‘yum –enablerepo=rpmfusion-nonfree-updates-testing install xorg-x11-drv-psb’

    The problem is that the last command did nothing, i tried “yum search psb” and only found the gpsbabel.i686 package. First i thought that the rpmfusion was not installed but i searched for the realcrypt package (a non free package) and i found it.

    Did i missed something?

    Thanks in advance!

    *sorry for my “engrish”, i am not that good at it…

  34. Khalid
    Khalid July 27, 2010 at 2:30 am | | Reply

    Dear Adam,

    I have a sony vaio p “first Generation” and i would be geatful if you can write a detailed step by step on how to change the mem=1900 mb nohz etc. in fedora 13.

    I am a linux newbie and hence would really appreciate your help.

    many thanks for your great work…

  35. DH
    DH July 27, 2010 at 4:39 am | | Reply

    Typically, running a “yum clean all” will eradicate any kind of preference for a particular mirror that may be cached by yum. It’ll probably work the second time if you do that.

  36. Dennis
    Dennis July 27, 2010 at 6:19 am | | Reply

    Hi Adam et al.,

    Excellent work, thank you so much!

    A couple of comments:

    (1) I had to add the same kernel parameters to make it work on my VAIO X.

    (2) It looks like there is an inconsistency in Adam’s video-experimental repo configuration: when yum looks for dependencies for mplayer-accelerated, it wants an older version of libva which is not there. However, I install the current libva rpm by hand, “yum install mplayer-accelerated” works fine. I can now play videos with smplayer with mplayer-accelerated as the backend.

    However, there is still no video in skype. Any chance of having a fix or workaround for that?

    Thanks again!

  37. Eric Piel
    Eric Piel July 27, 2010 at 2:32 pm | | Reply

    It kind of works here, but it’s far from being perfect. In particular, both Firefox and Thunderbird have major display troubles: the widgets are fine, but main document (web page, or email body) are either not always refreshed or not even displayed. Tried both with and without compositing and it’s the same. Anyone has an idea where it comes from?

    Otherwise, video doesn’t work via xv, and although (for the first time!) vaapi works, the subtitles in mplayer are garbled, so it prevents to watch foreign movies 🙁

    I haven’t dared trying to plug in my external screen via HDMI yet, as it has always crashed with xserver 1.7. Anyone has good experience with HDMI external output?

  38. Eric Piel
    Eric Piel July 27, 2010 at 2:44 pm | | Reply

    Finally I dared plugging in my HDMI screen: it crashed instantaneously :-S

  39. stm82s
    stm82s July 27, 2010 at 3:31 pm | | Reply

    Hello Adam and DH, unfortunately it is stil not working.
    First i tried the “yum clean all” followed by “yum update” and “yum search psb” commands but nothing changed. Then i looked for the file /etc/yum.repos.d/rpmfusion-nonfree.repo . The original file was like this:
    [rpmfusion-nonfree]
    name=RPM Fusion for Fedora $releasever – Nonfree
    #baseurl=http://download1.rpmfusion.org/nonfree/fedora/releases/$releasever/Everything/$basearch/os/
    mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch
    enabled=1
    metadata_expire=7d
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-$releasever-$basearch

    And after the modification:
    [rpmfusion-nonfree]
    name=RPM Fusion for Fedora $releasever – Nonfree
    baseurl=http://download1.rpmfusion.org/nonfree/fedora/releases/$releasever/Everything/$basearch/os/
    #mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch
    enabled=1
    metadata_expire=7d
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-$releasever-$basearch

    I changed the # of the three “sections” (rpmfusion-nonfree, rpmfusion-nonfree-debuginfo and rpmfusion-nonfree-source) and after that another “yum update” and “yum search psb”.

    I also made a fresh install of fedora 13 on a virtual machine and had the same problem. Any ideas?

    Sorry for the long message…

Leave a Reply

Your email address will not be published. Required fields are marked *