Intel GMA 500
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.
Contents
- 1 Drivers: Advantages and Disadvantages
- 2 Do I Need To Downgrade?
- 3 Xorg-server 1.7 or higher (current Arch)
- 4 Xorg-server 1.6
- 5 Taking Advantage of non-FBDEV/VESA Driver
- 6 See also
Drivers: Advantages and Disadvantages
Kernel's psb-gfx module
With kernel 2.6.39, a new psb_gfx module appeared in the kernel developed by Alan Cox to support Poulsbo hardware. Currently this is very rudimentary but the development is very active and this should get better and better with upcoming kernels.
Advantages
- Up to date kernel and Xorg
- 2D acceleration
- Nothing to do to make it work
Disadvantages
- Did not manage to get native resolution (e.g 1366x768)
- Buggy backlight control (Fixed in Linux 3.0.0)
- No 3D acceleration possible
- Poor performances (use mplayer with x11 or sdl so fullscreen video will be quite slow)
PSB/GMA500 Driver
Advantages
- Native resolution
- 2D acceleration
- Possible 3D acceleration with work and luck - Fedora, as well as Ubuntu, have this [1]
- Backlight control possible
Disadvantages
- Performance not on par with IEGD (Youtube videos play smoothly at 360p, perhaps 480p, but no higher)
- Not supported through official packages. Use of AUR required.
- Needs kernel <=2.6.37 and Xorg 1.9
PSB/GMA500 Driver with FBDEV
Advantages
- Up to date Xorg without hacking libdrm
- Native resolution
- 2D acceleration
- Backlight control possible
Disadvantages
- Needs kernel <=2.6.37
- Performance comparable to FBDEV solution
- Not supported through official packages. Use of AUR required.
IEGD Driver
Advantages
- X works
- Native resolution
- Basic OpenGl Capabilities
- 2D acceleration
- HD video playback without stuttering
Disadvantages As of August 12 2010:
- Artifacts in video playback
- Suspend states are broken
- Works only for kernel <= 2.6.31 & Xorg server <= 1.6
- Lengthy process to install
- Not supported through official packages.
FBDEV Driver
Advantages
- Combined with 915resolution-static and Uvesafb, allows native resolution
- Up to date kernel and Xorg
- No recompiling needed on kernel updates
Disadvantages
- Video playback may not be smooth
- Flash video playback, such as on YouTube, not smooth above 360p
- Full-screen Flash video playback useless
- No Xv video acceleration whatsoever
Installation and configuration procedure is is discussed later.
VESA Driver
Advantages
- Combined with 915resolution-static and Uvesafb, possibly allows native resolution (untested)
- Up to date kernel and Xorg
- No recompiling needed on kernel updates
Disadvantages
- Video playback may not be smooth
- Full-screen Flash video playback useless
- Slower than the FBDEV driver
- Not supported through official packages. Use of AUR required.
Do I Need To Downgrade?
As of November, 2011 you do not need to downgrade anything to use the psb-gfx, FBDEV, or VESA Xorg video drivers.
However, if you wish to experiment with the PSB or IEGD driver, you will need to downgrade your kernel and maybe xorg-server, along with several other packages.
Xorg-server 1.7 or higher (current Arch)
Kernel's psb-gfx module
If you have a kernel newer than 2.6.39, then it should work out of the box.
The module is psb_gfx:
$ modprobe -l | grep psb kernel/drivers/staging/gma500/psb_gfx.ko.gz
And xorg should use fbdev by default. You can check it in /var/log/Xorg.0.log.
PSB/GMA500 Driver
You need kernel <=2.6.37 to use the PSB-Driver
Install from custom repository
Add the following repository to your /etc/pacman.conf
[poulsbo-old] Server = http://kissmyarch.eu/gma500/poulsbo-old/
and install the psb driver with
# pacman -Syu xorg-x11-drv-psb
Build and Install from AUR (xorg 1.9)
Build and install the following packages in this exact order
1) psb-firmware 2) psb-kmod 3) libdrm-poulsbo 4) xpsb-glx 5) xorg-x11-drv-psb.
Configure xorg.conf
To tell Xorg to use this driver, change the Driver line in /etc/X11/xorg.conf
to read as:
Driver "psb"
You can also try adding a couple options to try improving acceleration or stability:
with:
Option "ShadowFB" "true"
and possibly:
Option "MigrationHeuristic" "greedy"
Cross fingers and restart X.
Hardware accelerated video playback
In order to have video acceleration, you must
- Install
xorg-x11-drv-psb
- Install libva-freeworld from AUR or from above given repository
- Install mplayer-vaapi from [community]
- Run
mplayer -vo vaapi -va vaapi videofile
PSB/GMA500 Driver with FBDEV
The advantage of this solution is that you just add a kernel module but you do not need to bother about specific Xorg version or libdrm while keeping backlight control.
It makes it simpler to manage than the PSB/GMA500 Driver and FBDEV Driver solutions.
Build and Install from AUR (xorg 1.9)
Build and install the following packages in this exact order
1) psb-firmware 2) psb-kmod
You can either download these packages from the repository given above.
Install the fbdev Xorg driver
# pacman -S xf86-video-fbdev
Configure your system
Load the module at startup by adding "psb" to you MODULES in /etc/rc.conf
.
To avoid an unnecessary reboot, as root perform to get your module loaded:
# modprobe psb
To tell Xorg to use the framebuffer driver, change the Driver line in /etc/X11/xorg.conf
to read as:
Driver "fbdev"
Restart X and you are done !
FBDEV Driver (xf86-video-fbdev)
Download v86d
and xf86-video-fbdev
:
pacman -S v86d xf86-video-fbdev
You will also need to install 915resolution-static from the AUR or the repository given above.
Create the file /etc/modprobe.d/uvesafb.conf
, if it does not exist, and change it so the only non-comment line is this:
options uvesafb mode_option=1280x800-32 scroll=ywrap
Make sure you use the right resolution for your setup -- if you have a 1366x768 screen, for example, change the "mode_option=" number to "1366x768-32".
Edit /lib/initcpio/hooks/915resolution
and make sure it has the right resolution for your setup -- the same resolution as specified in /etc/modprobe.d/uvesafb.conf
.
Next, edit /etc/mkinitcpio.conf
and add 915resolution
and v86d
to the "HOOKS", like this:
HOOKS="base udev 915resolution v86d ..."
Make sure you run mkinitcpio:
mkinitcpio -p linux
Edit /etc/X11/xorg.conf
and change driver to fbdev:
Driver "fbdev"
See the Uvesafb article for more information.
VESA Driver
Download xf86-video-vesa
and install.
# pacman -S xf86-video-vesa
Then edit /etc/X11/xorg.conf
to use it.
Driver "vesa"
Xorg-server 1.6
Please note that Kernel 2.6.31 and Xorg server 1.6 are no longer supported by the Arch Linux team.
Installing Xorg-server 1.6
Add to your /etc/pacman.conf
the following custom repository and make sure it is higher than the others.
[xorg16] Server = http://catalyst.apocalypsus.net/repo/xorg16/i686/
Then uninstall old packages if any, and install xorg
# pacman -R xorg-server xf86-input-evdev xf86-input-mouse xf86-input-synaptics xf86-input-keyboard xf86-video-vesa xf86-video-fbdev # pacman -S xf86-evdev xorg-server xf86-input-keyboard xf86-input-mouse xf86-input-synaptics xf86-video-vesa openssl-compatibility
An older version of libssl
is required. This can be fulfilled using the openssl-compatibility package from the AUR.
mkdir openssl-compatibility cd openssl-compatibility wget http://aur.archlinux.org/packages/openssl-compatibility/PKGBUILD makepkg -s # pacman -U openssl-compatibility*.pkg.tar.xz
Once this is done, you may reboot the computer. Alternatively, kill all instances of Xorg and restart.
The Xorg 1.6 server should start without issue.
FBDEV Driver using xorg-server-1.6.3.901
The xf86-video-fbdev
driver is not currently in the Chakra Project's repositories. Download and install from here
$ wget http://dl.dropbox.com/u/6228981/poulsbo/i686/fbdev/xf86-video-fbdev-0.4.1-1-i686.pkg.tar.gz # pacman -U xf86-video-fbdev-0.4.1-1-i686.pkg.tar.gz
Installing IEGD-enabled kernel
This process is still under development. Some info may be found here.
Installing IEGD binary drivers
tbd
Troubleshooting Xorg 1.6
Driver cannot be found
If X complains that the driver cannot be found, you may have the FBDEV driver specified in xorg.conf file, but the FBDEV driver is not installed as described in above. Revert back to "vesa" by finding the line with the video driver - fbdev - and alter it,
Driver "fbdev"
to
Driver "vesa"
Then make sure to follow the steps in the aforementioned section on installing FBDEV.
Taking Advantage of non-FBDEV/VESA Driver
Set backlight brightness
This has only been tested with the PSB driver
This is pertinent to machines with built-in LCD screens, not to devices such as the Fit-PC
With a driver installed and loaded (via modprobe or at boot), 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.
An example: to set display to minimal brightness, issue this command as root:
echo 0 > /sys/class/backlight/psblvds/brightness
Or, for full luminosity:
echo 100 > /sys/class/backlight/psblvds/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/psblvds/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.