Difference between revisions of "Intel GMA 500"

From ArchWiki
Jump to: navigation, search
m (Kernel's gma500_gfx module: added comma)
m (Set backlight brightness: fixed identation)
Line 91: Line 91:
Set brightness to minimum:
Set brightness to minimum:
    ./brightness.sh 0
./brightness.sh 0
Set brightness to half:
Set brightness to half:
    ./brightness.sh 50
./brightness.sh 50
Sudo may obviously ask for your password, so you have to be in the sudoers file.
Sudo may obviously ask for your password, so you have to be in the sudoers file.

Revision as of 21:13, 7 August 2012

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary heading Template:Article summary link Template:Article summary end

The Intel Poulsbo Chipset, also known by its official names "GMA 500" and "Intel System Controller Hub US15W", is typically found on boards for the Atom Z processor series. It embeds a PowerVR SGX 535 graphics core developed by Imagination Technologies and then licensed by Intel. Its major advantages include the hardware decoding capability of up to 720p/1080i video content in various state-of-the-art codecs, e.g. H.264.

As the graphics hardware was not developed by Intel themselves, the standard Intel drivers do not work with this hardware. Furthermore, at least two different accelerated Linux drivers for this hardware exist, each of which have major problems. Alternatively, there is a generic framebuffer driver solution, but this is unaccelerated.

On this page you find comprehensive information about how to get the best out of your Poulsbo hardware using Arch Linux.

Kernel's gma500_gfx module

With kernel 2.6.39, a new psb_gfx module appeared in the kernel developed by Alan Cox to support Poulsbo hardware. As of kernel 3.3.rc1 the driver has left staging and been renamed gma500_gfx. ([1])


  • Native resolution (1366x768) with early KMS (tested on Asus Eee 1101HA)
  • Up to date kernel and Xorg
  • 2D acceleration
  • Works out of the box


  • Some are unable to get native resolution (e.g 1366x768)
  • No 3D acceleration possible
  • Poor multimedia performance (use mplayer with x11 or sdl so fullscreen video will be quite slow)

To check if the driver is loaded, the output of lsmod | grep gma should look like this:

gma500_gfx            131893  2 
i2c_algo_bit            4615  1 gma500_gfx
drm_kms_helper         29203  1 gma500_gfx
drm                   170883  2 drm_kms_helper,gma500_gfx
i2c_core               16653  5 drm,drm_kms_helper,i2c_algo_bit,gma500_gfx,videodev


Fix suspend

If suspend does not work, there are various quirk options you can try. First, make sure that you have pm-utils and pm-quirks installed.

# pacman -S pm-utils pm-quirks

See the manpage for pm-suspend for a list of them all. One that has been reported to help is quirk-vbemode-restore, which saves and restores the current VESA mode.

To test it, open a terminal and use the following commands

# pm-suspend --quirk-vbemode-restore 

That should suspend your system. If you are able to resume, you'll want to use this option every time you suspend. Create a new file

# $EDITOR /etc/pm/config.d/gma500 

and add in the following code.


If you are not able to resume and you get a black screen instead, try the above quirk command with only 'one dash'

# pm-suspend -quirk-vbemode-restore 
Note: If you stuck with a black screen after resume, be aware that besides the black screen, your system works fine. Instead of hard rebooting, you could try to blindly reboot your system, since the last thing you used before suspend was the terminal. Alternatively, if you have ssh enabled on your machine you could do it remotely.

Set backlight brightness

All that is needed to set the brightness is sending a number (0-100) to /sys/class/backlight/psblvds/brightness. This obviously requires sysfs to be enabled in the kernel, as it is in the Arch Linux kernel. To set display to minimal brightness, issue this command as root:

# echo 0 > /sys/class/backlight/psb-bl/brightness

Or, for full luminosity:

# echo 100 > /sys/class/backlight/psb-bl/brightness

A very short script is available to do this with less typing written by mulenmar.

#! /bin/sh
sudo sh -c "echo $1 > /sys/class/backlight/psb-bl/brightness"

Simply save it as brightness.sh, and give it executable permissions. Then you can use it like so:

Set brightness to minimum:

./brightness.sh 0

Set brightness to half:

./brightness.sh 50

Sudo may obviously ask for your password, so you have to be in the sudoers file.

Memory allocation optimization

You can often improve performance by limiting the amount of RAM used by the system so that there will be more available for the videocard. If you have 1GB RAM use mem=896mb or if you have 2GB RAM use mem=1920mb. Add the following parameters to your bootloader's configuration file.

Edit /boot/grub/menu.lst

kernel /vmlinuz-linux root=/dev/sda2 ro mem=896mb 

Edit /etc/default/grub


Edit /boot/syslinux/syslinux.cfg

APPEND root=/dev/sda2 ro mem=896mb 

See also