Intel Poulsbo on Arch Linux with EMGD

Things never been easy with pousbo on Linux. Since linux 3.0 I've been using open source driver shipped with kernel. A year of screen flickering and poor media performance is too much. So I'd given a try to closed source drivers .


We need Xorg 1.9 (five years old version)

## /etc/pacman.conf
## [xorg19]
## Server =$arch

$ yaourt -S xorg19/xorg-server xorg19/xorg-server-common xorg19/xf86-input-evdev

All hard work already done and pushed to AUR

$ yaourt -S xf86-video-emgd-1.16 emgd-xorg-conf
$ emgd-xorg-conf | sudo tee /etc/X11/xorg.conf.d/10-emgd.conf
Section "ServerLayout"
     Identifier     "Default Layout"
     Screen 0       "Screen0"        0 0 

Section "Screen"
     Identifier    "Screen0"
     Device        "Intel_EMGD-0"
     Monitor       "Monitor0"
     SubSection    "Display"
         Depth     24
         Modes     "1366x768"

Section "Device"
     Identifier    "Intel_EMGD-0"
     Driver        "emgd"
     VendorName    "Intel(R) DEG"
     BoardName     "Embedded Graphics"
     BusID         "0:2:0"
     Screen        0

Section "Monitor"
     Identifier   "LVDS"
     ModelName    "LCD Panel used by EMGD" 

Section "DRI"
     Mode         0666

But few things should be fixed. UDEV updated and is not available anymore. And open source driver grubs required resources in boot time.

$ sudo ln -s /lib/ /lib/

$ startx
Screen(s) found, but none have a usable configuration.
Fatal server error:
  no screens found

## /etc/modprobe.d/10-emgd.conf
## blacklist gma500_gfx

Xorg starts, still "System is too slow" for some videos. Performance can be improved even more by offloading media decoding to graphics card with VAAPI

$ yaourt -Ss libva libva-intel-driver
$ vainfo
libva info: VA-API version 0.33.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/
libva info: Found init function __vaDriverInit_0_32
Intel(R) Embedded Media and Graphics Driver 1.16 Build 3196
Using XCB based dispatch table.
libva info: va_openDriver() returns 0

For example with mplayer

$ mplayer -vo vaapi -va vaapi

## .mplayer/config
## vo=vaapi
## va=vaapi
$ mplayer


Sure we want to prevent Xorg from update

## /etc/pacman.conf
## IgnorePkg   = xorg-server xorg-server-common xf86-input-evdev

Each time kernel updated module should be rebuild

$ sudo dkms autoinstall -k 3.7.8-1-ARCH

Linux 3.8 removed drm_connector_attach_property drm_connector_property_set_value and __devinit, have to write a patch . Glad to be helpful.


Things aren't perfect here. Sometimes screen just stops working, decoding with vaapi makes mplayer crash on rewind and gives green noise. At least flicker gone, so good!