HardwareSupportComponentsVideoCardsPoulsbo

Revision 217 as of 2012-05-17 20:48:45

Clear message

Driver overview

This page details support for the Intel GMA500 "Poulsbo" video hardware in various Ubuntu releases. Unfortunately the support for this hardware is extremely limited on Linux. There are several drivers, but all lacking certain basic features, future and current maintenance or support for things like suspend.

The list of drivers including its major properties and below tables with a features matrix:

  • PSB-GFX driver AKA gma500_gfx - maintained "upstream" at kernel.org

    • Open-source kernel module, works on any distribution running a 3.2 kernel or higher.
    • Excellent 2D performance, with some minor bugs (see below for work arounds).
    • Most of the bugs are fixed using a 3.3.4 or higher kernel.
    • Much easier to maintain then any other choice, driver of choice unless you have specific needs.
    • No 3D, Xv, Hardware Accelerated Video and such available
    • Written by Alan Cox at lkml.org.

    • Whether a full set of features will ever be supported is unclear.

  • EMGD driver ("supported", long term viability in question)
    • Closed-source userspace (Xorg driver, libva support, and 3D rendering).
    • Open-source kernel module.
      • Includes the full implementation of Intel's "HAL" for programming the display controller, and performing operations such as memory management and mode setting.
    • Mediocre performance.
    • Supported by Intel Embedded division.
    • Intel does not release up-to-date drivers. This driver is now a Full Ubuntu release cycle behind, testing in 11.10, no ETA for 12.04.

    • EMGD only officially supports a limited set of Linux distributions (Fedora 14, Meego).
    • Nobody knows how long Intel will support it; And when support stops, this driver is directly dead.
    • Requires moderate technical knowledge to install and maintain, requires significant changes to the system (downgrading xorg) and patched packages maintained by the Ubuntu “GMA500 Team” team. The Ubuntu GMA500 team does not maintain packages for other distributions.

    • The Ubuntu gma500 team is always looking for help, but is growing smaller as less people continue to run a gma500 or move to other projects. If they can continue to maintain this driver and the various patches remains to be seen.
  • PSB driver (obsolete)
    • Closed-source core
    • Good performance, but no longer supported (original developers - Tungsten Graphics).
  • IEGD driver (obsolete)
    • Closed-source core and glue
    • Mediocre performance
    • No longer supported by Intel Embedded division; Intel recommends to use EMGD driver instead.
  • Other

PSB-GFX driver

Release

Kernel

Xorg

2D accel

3D compiz

Normal Video Playback (Xv)

Hardware Video Acceleration1

Precise (12.04)

3.2.0-x

1.10

Excellent

N/A

Acceptable

N/A

Oneiric (11.10)

linux-libre 3.3.x

1.10

Excellent

N/A

Acceptable

N/A

Oneiric (11.10)

3.0.0-x

1.10

Extremely unstable

Natty (11.04)

Upgraded 2.6.39-rc1

1.10

Excellent

N/A

N/A

N/A

2.6.38-x

1.10

N/A

EMGD driver

Release

Kernel

Xorg

EMGD Version

2D accel

3D compiz

Normal Video Playback (Xv)

Hardware Video Acceleration1

Oneiric (11.10)

3.0.0-x

1.10

1.10

Testing

Testing

Testing

Testing

3.0.0-x

Downgraded 1.9

1.8

Acceptable

Excellent

Excellent

Acceptable

Natty (11.04)

2.6.xx

1.10

N/A

2.6.38-x

Downgraded 1.9

1.8

Acceptable

Excellent

Excellent

Acceptable

Maverick (10.10)

2.6.35-x

1.9

1.6

Acceptable

Excellent

Excellent

Acceptable

Lucid (10.04)

2.6.32-x

Upgraded 1.8

1.6

Acceptable

Excellent

Excellent

N/A

PSB driver

Release

Kernel

Xorg

2D accel

3D compiz

Normal Video Playback (Xv)

Hardware Video Acceleration1

Oneiric (11.10)

3.0.0-x

1.10

N/A

Natty (11.04)

Upgraded 2.6.39-rc1

1.10

N/A

2.6.38-x

1.10

N/A

Downgraded 2.6.35-x

1.10

Excellent

Bad

Acceptable

Excellent

Maverick (10.10)

2.6.35-x

1.9

Excellent

Excellent

Acceptable

Excellent

Lucid (10.04)

2.6.32-x

1.7

Excellent

N/A

Acceptable

Excellent

Karmic (9.10)

2.6.30-x

1.6

Excellent

Excellent

Excellent

Excellent

IEGD driver

Release

Kernel

Xorg

2D accel

3D compiz

Normal Video Playback (Xv)

Hardware Video Acceleration1

Oneiric (11.10)

N/A

Natty (11.04)

N/A

Maverick (10.10)

N/A

Lucid (10.04)

N/A

Karmic (9.10)

2.6.30-x

1.6

Acceptable

Acceptable

Excellent

N/A

Drivers installation

PSB-GFX drivers

This driver is called psb_gfx starting with 3.0 and is also called gma500_gfx in later kernels.

Starting with kernel 3.3.4 , the gma500_gfx driver works without adding any boot options.

12.04

The problem with 12.04 is that the default kernel included on the desktop CD is 3.3.2. This kernel works, but requires some custom boot parameters. Without these parameters you will either get a black screen or distortion.

  1. Switch to a console - Ctrl-Alt-F1
  2. Restart X with 'sudo service lightdm restart'

That should bring you back to a functional graphical desktop, so that you can proceed testing or installing.

Post installation

Black screen on boot

There are several potential solutions for this.

1st way Use "console=tty1" as a boot option.

  • gksudo gedit /etc/default/grub

find the following line: GRUB_CMDLINE_DEAULT="quiet splash"

and add console=tty1 in between the quotes, the end result looking as follows

Generic options:

  • GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty1 acpi_backlight=vendor acpi_osi=Linux mem=896mb"

Acer AO751h

  • GRUB_CMDLINE_LINUX_DEFAULT="quiet splash console=tty1 acpi_backlight=vendor acpi_osi=Linux acer_wmi.blacklist=yes mem=1920mb""

save and exit, then update grub with

  • sudo update-grub

2nd way Disable splash. Essentially the same as above, just remove splash from the GRUB_CMDLINE_DEFAULT options.

3rd way Use 915 Resolution.

Using any editor, create a file /etc/grub.d/01_915resolution , add in lines

  • echo insmod 915resolution echo 915resolution 58 1366 768 32

Make the file executable

  • sudo chmod a+x /etc/grub.d/01_915resolution

Next, edit /etc/default/grub, assign value 1366x768x32 to variables GRUB_GFXMODE and GRUB_GFXPAYLOAD_LINUX (be sure to change “1366×768″ to your desired resolution):

  • GRUB_GFXPAYLOAD_LINUX=1366x768x32

Then update grub.

  • sudo update-grub

NOTE: some gma500 users may have to switch to tty1 and back to tty7 even after the above modification to have a correct desktop.

Fix suspend

Open a terminal and use the following commands:

  • gksu gedit /etc/pm/config.d/gma500

Add in the following code and save the file:

  • ADD_PARAMETERS='--quirk-vbemode-restore'

Note: originally, this fix was "ADD_PARAMETERS='-quirk-vbemode-restore'" with only one dash before quirk but the fix did not work for some users. Using two dashes was found to work for them (which makes sense as single dash is often used for one character options and two for longer ones). However, on a Dell Mini 12, the double dash caused the fix not to work. Going back to a single did allow it to resume from suspend. So, if the double does not work for you, try it with just one.

Reference: bodhi.zazen's blog : gma500 boot options

11.10

The default 3.0.x kernel does not work.

The linux-libre 3.3.x kernel is working. You can obtain it from This repository

After adding the repository,

sudo apt-get update && sudo apt-get install linux-image-3.3.2-gnu-686 

Emgd drivers (currently unsupported and experimental)

EMGD 1.14

The latest EMGD driver is 1.14. This driver is not packaged for Ubuntu and to use this driver you will need to compile both a custom kernel and the driver itself from source. Hopefully the gma500 team will have drivers available soon.

Disadvantages of EMGD on Ubuntu 12.04 :

  • Requires compilation of a custom kerenl.
  • Requires compilation of the EMGD driver.
  • Requires a custom /etc/X11/xorg.conf

  • The driver is experimental and although it works for some, it does not work for everyone.
  • The 3d video drivers are particularly problematic. many people can get the basic driver working, but without the 3d video.
  • There is no official support from Ubuntu for either custom kernels or the EMGD driver.
  • There is currently no documentation on how to compile and use the EMGD 1.14 driver.
  • The EMGD 1.14 driver officially supports Fedora 14 (outdated), kernel 2.6, and xorg 1.9, all of which are very much out of date for Ubuntu 12.04. To use the driver you will need to downgrade all these packages, which means pinning packages from 11.10 or 11.04. Pinning packages from previous releases is not advised for new users, may cause problems or breakage, and is unsupported.

As a "solution" to the difficulty, some third parties have posted custom kernels and/or custom iso. These postings are without the support or oversight of the gma500 team and you should use them with the utmost of caution. Use extreme caution with third party custom kernels, they have not been peer reviewed and may cause hardware problems, may contain security risks/threats, and are completely unsupported.

Older Drivers are available in the gma500 PPA repository for Natty and Oneiric. The drivers on Oneiric are marked as experimental and do not work for everyone.

EMGD 1.8

Repository page: https://launchpad.net/~gma500/+archive/emgd-1.8
Instructions for Natty and Oneiric only. Open a terminal and type:

sudo add-apt-repository ppa:gma500/emgd-1.8
sudo apt-get update
sudo apt-get install xorg-emgd emgd-dkms
sudo emgd-xorg-conf

reboot for the changes to take effect.

EMGD 1.10 (under testing)

Repository page: https://launchpad.net/~gma500/+archive/emgd110
Instructions for Oneiric only. Open a terminal and type:

sudo add-apt-repository ppa:gma500/emgd110
sudo apt-get update
sudo apt-get install emgd-support
sudo emgd-xorg-conf

reboot for the changes to take effect.

EMGD Known Workarounds

Known workarounds that address problems such as Plymouth (startup screen), Brightness keys, Hibernate/Suspend, and Mplayer can be found on this page:

https://answers.launchpad.net/emgd/+faq/1450

PSB drivers (outdated)

Drivers are available in the gma500 PPA repository for Maverick, Lucid, Karmic, Jaunty and Intrepid. With the note that Jaunty and Intrepid versions are no longer supported and guaranteed to work.

Open a terminal and type:

sudo add-apt-repository ppa:gma500/ppa && sudo apt-get update && sudo apt-get install poulsbo-driver-3d

reboot for the changes to take effect.

(At least on Lucid, poulsbo-driver-3d conflicts with compiz packages. You need to uninstall them first.)

sudo apt-get -y remove compiz*

Note: remember to perform after a version upgrade the commands in the terminal again to update to the gma500 packages matching your Ubuntu version.

Optimized software matching the PSB drivers

The gma500 PPA repository also ships mplayer, gnome-mplayer and vlc (currently vlc has still some issues and does not always work) with enabled vaapi backend. These are only available for Natty, Maverick and Lucid. They can be installed with the package manager of your choice.


Driver Removal

Emgd drivers

If you installed from live ISO, remove all packages installed by the PPA:

sudo apt-get purge emgd-support*

Afterwards, use a package manager like Synaptic (System->Administration->Synaptic Package Manager) or muon to remove the rest of the packages called "emgd*"


Known issues and tweaks

Feedback

When applying any tweaks from below we kindly request you to provide feedback concerning the results from the chosen tweaks on your laptop. Please fill out this form to send your findings to the gma500 team.

Tweaks only for PSB drivers (outdated)

Known tweaks and workarounds for Karmic and Lucid (installed by default for Maverick)

Suspend by moving 99video

sudo mv /usr/lib/pm-utils/sleep.d/99video /usr/lib/pm-utils/99video

Suspend by using uswsusp (alternative)

sudo apt-get purge vbetool && sudo apt-get install uswsusp

and suspend using:

sudo s2ram --force

to make this permanent, run:

sudo gedit /etc/pm/config.d/00sleep_module

and set in the file:

SLEEP_MODULE="uswsusp"

and run:

sudo gedit /etc/pm/config.d/defaults

and add in the file:

S2RAM_OPTS="--force"
QUIRK_NONE="true"

After that, you can run  pm-suspend  instead of  s2ram --force .

But suspending via gnome-power-manager (for example, through the suspend menu) doesn't work.


Brightness hotkeys

sudo gedit /etc/default/grub

add the following parameters to grub configuration:

GRUB_CMDLINE_LINUX="acpi_osi=Linux acpi_backlight=vendor"

next run:

sudo update-grub

After adding the parameters to grub, functional keys such as wireless and volume also work.


Memory allocation optimization

You can often improve peformance by limiting the amount of RAM used by the system so that there will be more available for the videocard:

sudo gedit /etc/default/grub

add the following parameters to grub configuation if you have for example 1GB RAM:

GRUB_CMDLINE_LINUX="mem=896mb"

or if you have 2GB RAM:

GRUB_CMDLINE_LINUX="mem=1920mb"

next run:

sudo update-grub


Flash plugin replacement for Firefox

(for all Ubuntu releases):

* install gnome-mplayer and gecko-mediaplayer

* tune gnome-mplayer settings like the following screenshots:

http://lukaszklich.pl/wp-content/uploads/2010/05/vaapi_output.png

http://lukaszklich.pl/wp-content/uploads/2010/05/vaapi_va.png

(This should already be automatically done by the gnome-mplayer package from the gma500 repository)

* install this firefox addons: http://flvideoreplacer-extension.blogspot.com/


Hardy (8.04)

The Poulsbo hardware is not supported in the community version of Ubuntu. However, it is reputed to "just work" on Hardy version shipped by a netbook manufacturer.

For example, the support for GMA 500 hardware by Dell Ubuntu Hardy 8.04 is provided by the following repository

deb http://dell-mini.archive.canonical.com/updates hardy-dell-mini public

Contribution

The Ubuntu community is a great example of free software community in action, and is arguable one of the greatest examples of free software community in the world. To make Ubuntu better, You would like to take a look on new project Intel GMA500 'Poulsbo' and provide any help.

Common problems

X doesn't start (PSB)

Double check that the psb kernel module can be loaded into the running kernel by running sudo modprobe psb.

3D Graphics (OpenGL) does not work after suspend and resume (PSB)

This is a known bug with psb kernel driver. Due to partial close nature of the driver, because Intel has not released an open source driver, the bug fix is currently no available. There are reports2 that a new driver will be available shortly.

Additional Reading

Why GMA 500 hardware doesn't work out of the box? Read "How To Kick Your Friends in the Face: GMA500" by Shawn Powers and the Intel "apology" "Blaming Intel for how the world is" by Henry Kingman

EMGD driver description from Intel: http://www.intel.com/p/en_US/embedded/hwsw/software/emgd

http://arstechnica.com/open-source/news/2009/12/poulsbo-mess-casts-a-shadow-on-intels-moblin-project.ars

Other problems?

If you're still having problems, please mail ubuntu-mobile@lists.ubuntu.com, and do not submit bug reports.


CategoryHardware

  1. Refers to Hardware-Accelerated playback using vaapi, that is, libva library http://en.wikipedia.org/wiki/Intel_GMA#GMA_500_on_Linux (1 2 3 4)

  2. http://www.phoronix.com/scan.php?page=news_item&px=NzY2Mg (5)