Kontron nanoETXexpress-SP

Intro
It is embedded platform, based on nanoETXexpress platform

More info can be found here: http://us.kontron.com/products/computeronmodules/com+express/nanoetxexpress/nanoetxexpresssp.html

During installation and testing the module was mounted on nanoETXexpress-HMI Starterkit: http://us.kontron.com/products/computeronmodules/com+express/nanoetxexpress/starterkits+and+evaluation+boards/nanoetxexpresshmi+starterkit.html

Hardware
lspci -nn

cat /proc/cpuinfo

Compile flags
Intel Atom

Hard Drive
The hard drive is not found by the current Gentoo minimal install CD (or USB, if you are booting from that). After you boot from the CD/USB, you must load up the hard disk driver:

Then, your hard disk will be available to the installation medium. When you compile the kernel, you have to go in and edit some options to make sure your hard disk driver loads.

Shutdown / Reboot
This chip-set doesn't have keyboard controller. You need to add reboot=acpi to you kernel line in Grub to shutdown or reboot the system correctly. In Gentoo Live-CD, you will need to manually hard reset the system after installation (first issue command and after unmounting all partitions, do hard reset)

This is example from menu.lst: title Gentoo Linux 2.6.24-r5 root (hd0,0) kernel /boot/vmlinuz-2.6.34-gentoo-r1 root=/dev/sda3 reboot=acpi

Graphics
This module is based on Poulsbo GMA-500 graphics. This thing is so crappy that it became famous. So be prepared for real HELL. First i suggest to read following article: http://www.happyassassin.net/2009/01/30/intel-gma-500-poulsbo-graphics-on-linux-a-precise-and-comprehensive-summary-as-to-why-youre-screwed/ so you get the clue about what are you dealing with. Yes, this thing is broken. But thanks to work of Adam Williamson and Konrad Campowsky we have ebuilds. They are marked as unstable of course.

First of all, nothing later than X.org 1.6 is supported, so many new stuff must be masked. There is some progress for 1.7, but no ebuilds yet.

Here is working package.mask file for the moment of writing this article:

airshow mesa # cat /etc/portage/package.mask >x11-misc/util-macros-1.5.0 >app-admin/eselect-opengl-1.1.1-r2 >app-admin/eselect-xvmc-0.1 >x11-proto/xproto-7.0.16 >x11-proto/inputproto-1.5.1 >x11-libs/xtrans-1.2.5 >x11-proto/kbproto-1.0.4 >x11-proto/fontsproto-2.1.0 >x11-proto/renderproto-0.11 >x11-proto/videoproto-2.3.0 >x11-proto/dri2proto-2.1 >=x11-proto/xf86driproto-2.1.0 >x11-proto/glproto-1.4.11 >x11-proto/xf86vidmodeproto-2.2.2 >x11-proto/randrproto-1.3.1 >x11-proto/damageproto-1.2.0 >=x11-proto/bigreqsproto-1.1.0 >x11-libs/libpciaccess-0.11.0 >x11-proto/resourceproto-1.1.0 >x11-proto/recordproto-1.13.2 >x11-proto/xcmiscproto-1.2.0 >x11-proto/fixesproto-4.0 >dev-util/intltool-0.40.5 >dev-libs/libgcrypt-1.4.5 >dev-libs/libpthread-stubs-0.1 >virtual/libusb-0 >x11-proto/trapproto-3.4.3 >x11-proto/compositeproto-0.4.1 >x11-proto/xf86dgaproto-2.0.3 >x11-proto/scrnsaverproto-1.1.0 >x11-proto/xf86rushproto-1.1.2 >x11-misc/xbitmaps-1.1.0 >x11-libs/pixman-0.17.2 >=x11-proto/xf86bigfontproto-1.2.0 >x11-proto/xcb-proto-1.5 >x11-proto/xextproto-7.0.5 >x11-libs/libXau-1.0.5 >x11-libs/libXdmcp-1.0.3 >x11-libs/libdrm-2.4.15 >x11-libs/libICE-1.0.6 >x11-apps/rgb-1.0.3 >x11-libs/libfontenc-1.0.5 >x11-misc/makedepend-1.0.2 >x11-libs/libSM-1.1.1 >x11-libs/libxcb-1.4-r1 >x11-libs/libX11-1.2.2 >x11-libs/libXext-1.0.5 >x11-libs/libXt-1.0.7-r1 >x11-libs/libxkbfile-1.0.6 >media-libs/freetype-2.3.11 >x11-libs/libXfixes-4.0.4 >x11-libs/libXrender-0.9.5 >x11-apps/iceauth-1.0.3 >x11-libs/libXmu-1.0.5 >x11-libs/libXi-1.2.1 >x11-libs/libXtst-1.0.3 >x11-apps/xkbcomp-1.1.1 >x11-libs/libXpm-3.5.8 >x11-libs/libxkbui-1.0.2 >x11-libs/libXres-1.0.4 >x11-libs/libXfont-1.4.1 >x11-libs/libXv-1.0.5 >x11-libs/libXdamage-1.1.2 >x11-libs/libXxf86vm-1.0.2 >x11-apps/xauth-1.0.4 >dev-libs/dbus-glib-0.82-r1 >x11-libs/libXaw-1.0.7 >x11-misc/xkeyboard-config-1.7 >x11-libs/libXvMC-1.0.5 >x11-apps/xrdb-1.0.6 >x11-apps/xinit-1.2.0-r3 >media-libs/mesa-7.5.2 >virtual/glu-7.0 >virtual/opengl-7.0 >media-libs/glew-1.5.1 >x11-base/xorg-server-1.6.5-r1 >x11-drivers/xf86-input-synaptics-1.2.1 >x11-drivers/xf86-video-vesa-2.3.0 >x11-drivers/xf86-video-intel-2.9.1 >x11-drivers/xf86-input-evdev-2.3.2 >x11-base/xorg-drivers-1.6 >x11-libs/libXxf86dga-1.0.2 >x11-libs/libXScrnSaver-1.1.2 >x11-apps/xinput-1.4.2 >=x11-proto/xineramaproto-1.2 >=x11-libs/libXinerama-1.1 >=x11-libs/libdmx-1.1.0 >=x11-proto/dmxproto-2.3

Some of ebuilds needed to keep X.org 1.6 in place is already dead. You will need to resurrect them (yes zombies - Poulsbo Driver can even eat your brain, be prepared). This script http://forums.gentoo.org/viewtopic-t-823675-start-0.html may help.

Here is the list of dead ebuilds. This will grow as more packages will became deprecated. I hope somebody will get X.org 1.7 drivers working and make ebuilds.

x11-misc/util-macros-1.5.0 x11-proto/xf86dgaproto-2.0.3 dev-util/intltool-0.40.5 x11-proto/xextproto-7.0.5 x11-libs/libxcb-1.4 x11-libs/libXi-1.2.1 x11-apps/xinput-1.4.2 media-libs/mesa-7.5.2

If you receive errors about some files in resurrected packages missing, this means that they was not pulled from CVS. You will need to pull them manually and digest the ebuild.

Old Mesa will not build. You will need to edit ebuild and comment .la files stuff:
 * 1) Should this use the -L/usr/lib instead of -L/usr/$(get_libdir)?
 * 2) Please confirm and update this comment or the file.
 * 3) doins "${FILESDIR}"/lib/libGLU.la

Couple of notes from Konrad Campowsky about the psb driver:

The packages are:


 * - firmware for the chipset
 * - kernel modules. see notes below
 * - hacked libdrm. to be installed alongside original one
 * - needed for 3D accelaration
 * - the actual xorg driver

Simply run and it will pull in everything else.

This driver needs its own version of the module, meaning that  must be disabled in the kernel.

The actual driver is the module which also implementes a framebuffer.

Two problems come with this:
 * the driver needs three kernel options that can not be directly selected but will be pulled in when needed by other drivers. These are . To enable these options you can either hack the file to make them visible or simply select a driver that pulls them in, for example.
 * When the module is loaded it will immediately switch to framebuffer console. This will give you a seriously messed up screen if you either have no support for framebuffer console  or already have another framebuffer console running. If you dont want a framebuffer at all, load the module with no_fb=1 as parameter.

Apart from that, all seems fine. The module even gets automatically detected and loaded at boot.

Working (graphics part)