Black God

How to get Lilliput DisplayLink based USB Monitor UM-70 (17e9:02a9) working in Ubuntu Linux

Recently I got a DisplayLink based 7″ USB Monitor manufactured by Lilliput. The model is UM-70, which supports 800×480 resolution. It works without any external power. It takes power and graphics data from USB port. It has built-in Graphics chip from DisplayLink. Here is how I got it working in Ubuntu 10.04.

Step-1. Fresh Ubuntu 10.04 installation (kernel 2.6.32-21) and login to desktop.

Step-2. Plugged in Lilliput DisplayLink based USB Monitor UM-70.

$ lsusb
………
Bus 002 Device 003: ID 17e9:02a9 Newnham Research
………

The above console output shows DisplayLink (Formerly Newnham Research) Vendor ID 17e9 and Product ID 02a9.

Lilliput DisplayLink Monitor UM-70


$ dmesg
……………………
……………………
[  351.100330] usb 2-2: new high speed USB device using ehci_hcd and address [  351.238167] usb 2-2: configuration #1 chosen from 1 choice
[  351.272857] udlfb: module is from the staging directory, the quality is unknown, you have been warned.
[  351.277059] DisplayLink device attached
[  351.277201] ret control msg 0: 4 1500fffffff1
[  351.379447] EDID XRES 800 YRES 480
[  351.379456] INIT VIDEO 0 800 480
[  351.380574] ret control msg 1 (STD_CHANNEL): 16
[  351.380748] ret bulk 2: 156 156
[  351.380851] ret bulk 3: 0
[  351.380856] found valid mode…34482
[  351.382136] screen base allocated !!!
[  351.383102] colormap allocated
[  351.390359] usbcore: registered new interface driver udlfb
[  351.390461] VMODES initialized

The above log shows that udlfb driver is loaded properly.

Step-3. Before doing any tweak, updating the Ubuntu to latest.

$ sudo apt-get update
$ sudo apt-get upgrade

The above upgrade involves Kernel upgrade to 2.6.32-23.

Rebooted the system with USB Monitor plugged-in.

Step-4. Got the GDM login screen on primary monitor. In USB monitor Ubuntu boot screen displayed (some times observed only a cursor at top left corner of display with black background). Pressed Ctrl+Alt+F1 to switch to console mode. It was nice to see console on USB monitor and graphical desktop on main primary monitor.

Many documents say that I should observe the green screen on USB monitor. But I did not see anything like that. This could be due to text console taking over the DisplayLink Framebuffer device (in my case it is /dev/fb1). So to overcome this I tried disabling fbcon (Framebuffer console) module and its dependents.

$ modinfo fbcon
filename:       /lib/modules/2.6.32-23-generic/kernel/drivers/video/console/fbcon.ko
license:        GPL
srcversion:     65B645FD36D989F537E4715
depends:        bitblit,font,tileblit
vermagic:       2.6.32-23-generic SMP mod_unload modversions 586

Note down the “depends” line in the above output and disable those modules including fbcon. To do this by creating /etc/modprobe.d/fbcon.conf file as root user.

$ sudo vi /etc/modprobe.d/fbcon.conf
Input the below four lines in fbcon.conf to blacklist them.
blacklist bitblit
blacklist font
blacklist tileblit
blacklist fbcon

$ sudo depmod -a
$ sudo update-initramfs -u

Reboot the system.

Still I found that text console appears on my USB monitor – it means the above method didn’t work in Ubuntu 10.04. So another alternative I tried as below which passes “vga=normal nomodeset” argument to kernel. This is done by editing the /etc/default/grub file as shown below.

………….
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash vga=normal nomodeset”
………….

$ sudo update-grub

Reboot the system. Now  I am able to see green screen now :-). Console is disabled in USB monitor.

OK.. let’s go further now.

Note: Though we pass nomodeset in kernel command line, still you need /etc/modprobe.d/fbcon.conf file.

Step-5: Patch gdm initialization. Edit /etc/gdm/Init/Default as root user and add the following lines just below the end of function gdmwhich().

XRANDR=`gdmwhich xrandr`
if [ "x$XRANDR" != "x" ] ; then
$XRANDR -o 0
fi

Step-6: It is time to prepare your xorg.conf to get dual monitor side by side. Here is my /etc/X11/xorg.conf, which I got it arrived after a good number of trial and error.

# xorg.conf (X.Org X Window System server configuration file)

############ Original Video Settings ###########

Section “Device”
Identifier      “Configured Video Device”
Driver        “intel”
EndSection

Section “Monitor”
Identifier      “Configured Monitor”
EndSection

Section “Screen”
Identifier      “Default Screen”
Monitor         “Configured Monitor”
Device          “Configured Video Device”
DefaultDepth    16
SubSection “Display”
Depth   16
Modes   “1280×800″
EndSubSection
EndSection

#################################################

Section “ServerLayout”
Identifier      “Server Layout”
Screen  0       “DisplayLinkScreen” 0 0
Screen  1       “Default Screen” RightOf “DisplayLinkScreen”
Option          “Xinerama” “Off”
EndSection

#################################################

Section “Files”
ModulePath      “/usr/lib/xorg/modules”
ModulePath      “/usr/local/lib/xorg/modules”
ModulePath    “/usr/local/lib/xorg/modules/drivers”
EndSection

############### DisplayLink Stuff ###############

Section “Device”
Identifier      “DisplayLinkDevice”
driver          “displaylink”
Option  “fbdev” “/dev/fb1″
EndSection

Section “Monitor”
Identifier      “DisplayLinkMonitor”
EndSection

Section “Screen”
Identifier      “DisplayLinkScreen”
Device          “DisplayLinkDevice”
Monitor         “DisplayLinkMonitor”
DefaultDepth    16
SubSection “Display”
Depth   16
Modes   “800×480″
EndSubSection
EndSection

# End of xorg.conf —————–

Here is my xorg.conf to download.

  xorg.conf (1.6 KiB, 1,272 hits)

Restarted GDM.

$ sudo service gdm restart

Wow….! Got two X sessions :-) :-). GNOME desktop on both USB Monitor and Main monitor (Laptop screen).

You may need my Xorg.0.log for your reference. I have given below my Xorg.0.log.

  Xorg.0.log (36.9 KiB, 658 hits)

I have given below xrandr output for both the X sessions and corresponding GTK RandR application (System -> Preferences -> Monitors) screenshot also for your reference.

$ xrandr –verbose
Screen 0: minimum 320 x 200, current 800 x 480, maximum 800 x 480
LILLIPUT USB Mo connected 800×480+0+0 (0×40) normal (normal) 160mm x 230mm
Identifier: 0x3f
Timestamp:  4787185
Subpixel:   horizontal rgb
Clones:
CRTC:       0
CRTCs:      0
Transform:  1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
EDID:
00ffffffffffff0031900120eb030000
2013010380101778ca54548f54599726
cb545400000001010101010101010101
010101010101540b208030e02d102830
7304000000000018000000fd00374118
2905000a202020202020000000fc0055
5342204d6f6e69746f720a0a00000010
00000000000000000000000000000028
800×480 (0×40)   29.0MHz -HSync -VSync *current +preferred
h: width   800 start  840 end  888 total  928 skew    0 clock   31.2KHz
v: height  480 start  503 end  506 total  525           clock   59.5Hz

$ xrandr –verbose
Screen 1: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192
VGA disconnected (normal left inverted right x axis y axis)
Identifier: 0×62
Timestamp:  4777845
Subpixel:   unknown
Clones:
CRTCs:      0 1
Transform:  1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
LVDS connected 1280×800+0+0 (0×64) normal (normal left inverted right x axis y axis) 0mm x 0mm
Identifier: 0×63
Timestamp:  4777845
Subpixel:   horizontal rgb
Clones:
CRTC:       1
CRTCs:      1
Transform:  1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
PANEL_FITTING:    full_aspect
supported: center       full_aspect  full
BACKLIGHT_CONTROL:    kernel
supported: native       legacy       combination  kernel
BACKLIGHT: 8 (0×00000008)    range:  (0,8)
1280×800 (0×64)   71.1MHz *current +preferred
h: width  1280 start 1328 end 1360 total 1440 skew    0 clock   49.4KHz
v: height  800 start  803 end  809 total  823           clock   60.0Hz

. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . .

Step-7: Though I got two X sessions successfully, I was not able to navigate my mouse from one screen to another. I understand from googling that there is a tweak application available at http://digamma.cs.unm.edu/trac.dmohr/wiki/DualscreenMouseUtils to get this done. I downloaded the dualscreen-mouse-utils-0.5.tar.gz from here, extracted and run make. It generated mouse-switchscreen and mouse-wrapscreen utilities. I need mouse-wrapscreen to wrap the mouse around both the screens. I run the mouse-wrapscreen in background (mouse-wrapscreen &) through System -> Preferences -> Startup Applications -> Startup Programs -> Add.  It is done. Mouse wraps around both the screen :-).

Some of the test cases I have done:

1. It was found that Compiz was not working when I try to enable it through System -> Preferences -> Appearance -> Visual Effects -> Normal. X Server crashed and took me to GDM login screen. No problem, I don’t use compiz anyway. Please let me know if it works for you, so that I can give an update here.

2. While working on dual screen, I unplugged USB Monitor and found that X Server crashed and got the GDM login screen back. It was working fine with my main monitor (Laptop screen). Not bad.

3. Booting the machine without USB monitor – Only Laptop main screen works fine. No need to tweak any file.

4. Plugging-in USB monitor while working on Desktop: Just logout and login back. You are set with dual monitors :-)

References:

1. http://libdlo.freedesktop.org/wiki/
2. http://ubuntuforums.org/archive/index.php/t-1493143.html
3. http://mulchman.org/blog/?tag=displaylink

18 comments for “How to get Lilliput DisplayLink based USB Monitor UM-70 (17e9:02a9) working in Ubuntu Linux

  1. mariette99
    April 9, 2012 at 12:24 am

    I am trying to install a Lilliput DisplayLink based USB Monitor UM-70 (17e9:02a9) in Fedora 14. I’ve read your instructions for Ubuntu 10.04. Is it possible to use the same steps? I’ve tried on my own with different solutions on the web but have ended up without working mouse every time. Reinstalling Fedora was the only recovery. Sad….

    So I am a bit reluctant to experiment but I have to chose something to believe in. Will it work in Fedora14?

  2. scar
    March 21, 2011 at 2:46 pm

    well i was finally able to figure out the issue with xorg.conf: when i copy from the website here it copied fancy quotation marks (“ ” ″). once i replaced all of these with ” i was able to get the UM-70 working. however…

    it seems with your ServerLayout definition, the UM-70 is acting as primary monitor (Screen). i would like it to be secondary. i thought, “ok easy, just rearrange the ‘Screen’ definitions”. so i tried this:

    Screen 0 “Default Screen” 0 0
    Screen 1 “DisplayLinkScreen” RightOf “Default Screen”

    but no dice, the UM-70 doesn’t get any session and remains black, and i cannot move the mouse anywhere outside of my ‘Default Screen’.

  3. scar
    March 21, 2011 at 9:16 am

    this isn’t working yet for me. i’ve have ubuntu 10.04 64-bit fully updated. the problem i’m running into is i have no /etc/X11/xorg.conf file. if i just ignore that step then gdm won’t startup, and i have to remove the modifications to /etc/gdm/Init/Default to get gdm to start.

  4. Berend
    January 23, 2011 at 6:03 pm

    Hi, your setup looks great! I have just purchased a Lilliput UM-80 touchscreen, but I can`t get it to work. I too have Ubuntu 10.04 and the lsusb and dmesg commands give the same output as yours. However, the touchscreen does not show anything at all, just stays black. Interestingly, I have also installed the eGalaxTouch drivers for Linux, and while the axes are now inverted, the touch function works…

    Do you have any idea how to solve my problem? I have tried different things for about 8 hours now, using input from http://mulchman.org/blog/?p=21, http://www.pur3.co.uk/DisplayLink and others, but I get nothing displayed on the screen at all.

    Your help would be greatly appreciated, thanks! :-)

  5. Michaek
    January 13, 2011 at 5:13 am

    Thanks for this great howto.
    But did anybody get this working for Ubuntu 10.10?
    The console keeps grabbing the Lilliput.
    There seems to be no fbcon module any more and nomodeset and friends don’t seem to disable the console either.
    So no green screen or X here :-(

  6. September 17, 2010 at 8:58 pm

    Thanks- I just ordered one and this hands-on was great!

  7. September 7, 2010 at 2:23 am

    Hi.
    I’m looking to set up my lilliput display as a ‘status monitor’ style, i.e no messing around with xorg, just as a terminal screen unrelated to the currently logged in user. Any ideas for where to head in this admittedly awkward plan?

  8. Juliano
    August 12, 2010 at 1:17 am

    Hi,
    I followed the steps above but after reboot, only get blank screen on both notebook and LCD Monitor plugged with one DisplayLink adapter.

    I put the notebook screen as the primary and this happen.

    On the DisplayLink monitor, only appears a cursor at the top left. Don’t blink.

    When i put the DisplayLink as the primary screen, i get the console messages during boot process, but it stops when i belive that X comes up. No image on notebook screen.

    At that moment, if i try other TTY, it works well on the DisplayLink Monitor.

    Could you help me solve the issue ?

    Thank’s.

  9. August 5, 2010 at 11:09 pm

    Merci, J’ai trouv� cet article tr�s int�ressant, les article sont tr�s bien r�dig� ! Bonne continuation. I like this

  10. rombo
    July 23, 2010 at 10:15 pm

    You could also try getting an o2 joggler – touchscreen device which runs linux variants and software with a friendly community around it. check out http://www.jogglerwiki.info/index.php?title=Main_Page

  11. Pingback: Rest Easy With a Multi-feature Baby Monitor | babymonitors | betterbabymonitor.com
  12. Pingback: Baby Monitors : New Ways to Care for and Play With your Baby | babymonitors | betterbabymonitor.com
  13. Jim March
    July 19, 2010 at 4:14 pm

    OK, this is officially WAY COOL. One huge question: does video playback work even moderately well? Say, using VLC to play back an AVI at a resolution near the native res of the USB monitor?

Leave a Reply

Your email address will not be published. Required fields are marked *