Sunday, September 16, 2012

Lilliput UM-80/C/T USB display with a Winmate I931 running Debian Linux

After quite a lot of experimentation and even more Googling, I have managed to get a Winmate I931 (Intel Atom based) PC board running Debian Linux with a Lilliput UM-80/C/T USB display as the only display device connected to the board.

Some of the problems I had to overcome along the way:
  • I didn't really want to have to compile and install drivers. Fortunately Debian "wheezy" has the drivers, so I upgraded to that.
  • The I931 uses the integrated graphics controller in the Intel US15W XL chipset. Sometimes this comes up as /dev/fb0 and the USB display comes up as /dev/fb1, but sometimes they come up the other way round, so I had to use udev to create a symbolic link the the correct /dev/fb* for the USB display.
Note that when the board boots you will not see any of the console output unless you have a monitor connected to the VGA connector.

Here's what I did to configure the system:

Install X and a window manager (I'm using fluxbox):
apt-get install xorg
apt-get install fluxbox




/etc/X11/xorg.conf seems to be deprecated and is replaced by files in /usr/share/X11/xorg.conf.d/
Create an X config file, in /usr/share/X11/xorg.conf.d/, as per http://plugable.com/2011/12/23/usb-graphics-and-linux/, but make the "fbdev" setting "/dev/fbdl":

/usr/share/X11/xorg.conf.d/60-displaylink.conf
Section "Device"
  Identifier "uga"
  driver "fbdev"
  Option "fbdev" "/dev/fbdl"
  Option "ShadowFB" "off"
EndSection

Section "Monitor"
  Identifier "monitor"
EndSection

Section "Screen"
  Identifier "screen"
  Device "uga"
  Monitor "monitor"
EndSection

Section "ServerLayout"
  Identifier "default"
  Screen 0 "screen" 0 0
EndSection


Configure udev to create a symbolic link to the DisplayLink framebuffer device by creating the following file:
/etc/udev/rules.d/80-displaylink.rules
# Match DisplayLink USB display
KERNEL=="fb[0-9]*", SUBSYSTEMS=="graphics", ATTR{name}=="udlfb", SYMLINK+="fbdl"


With the USB display plugged in the display should go green. That will prove that the udlfb driver is running. You should also see that you have the devices /dev/fb0, /dev/fb1 and /dev/fbdl. The first two will be the framebuffer devices for the integrated graphics and the USB display, the last is the symbolic link to the USB display device.

Then  run 'startx' and you should get fluxbox running on the USB display.
The main monitor can still be used for the console multi-screens (ctrl-alt-F2 etc).
The USB display comes up as tty7 on a standard install.