DisplayLink under Ubuntu

DeLock Port Replicator contains DL-165

DeLock Port Replicator contains DL-165

To have some more connection options for different embedded devices I bought a port replicator. My favorite dealer offered an adequate device from DeLock: DeLock USB 2.0 Port Replicator (87503). It supports DVI (and also VGA using an adapter), powered USB and Ethernet. But according to the device description and according to DeLock the device doesn’t support Linux. I asked which graphic chip is inside this device and I get a quick response: DisplayLink’s DL-165. This chip is supported by Linux using the udlfb driver. There are other drivers needed for the rest of the functionality, so I was not sure it is really working completely with Linux. but I’m an optimist, so I ordered the device… 🙂

Now I could take a look at it: The device consists of an USB-Hub, an ASIX AX88772 USB 2.0 Ethernet adapter and the mentioned DisplayLink DL-165 adapter. All devices are being detected by my Ubuntu 11.10 (Oneiric Ocelot) without additional packages. The output of dmesg shows the detected devices. My monitor turned to the udlfb green as expected.

The driver for the DVI video adapter udlfb is implemented as a framebuffer device under linux. The first thing I wanted to try was playing a video. But this already failed at first: The driver implementation requires to notify the driver about damaged region, which should be repainted on the screen (and therefor be transmitted over USB). The default mplayer framebuffer driver doesn’t do that. But the driver module has a option which enables a feature which finds out which region in the frame is damaged by itself. The simplest way to enable this feature constantly is to create a modprobe configuration file:

$ sudo vi /etc/modprobe.d/udlfb.conf
options udlfb fb_defio=1

Now unplug and replug the device. Dmesg’s show that the option is enabled now:

...unplug...
$ sudo rmmod udlfb
...replug...
$ dmesg | grep fb_defio
[ 3377.914632] udlfb: fb_defio enable=1

This way I could watch a movie using that framebuffer:

$ sudo mplayer -vo fbdev:/dev/fb1 big_buck_bunny_720p.webm  -fs

Big Buck Bunny with DisplayLink

To use it for a console there is another module option which needs to be enabled: console=1. The fbcon (Console Framebuffer driver) needs to be adviced to use the second framebuffer by adding this kernel parameter:

fbdev=map:01

The second console (Ctrl+Alt+F2 ) should be on the screen attached to the port replicator. We can use the tool fbi to display pictures from the console:

sudo apt-get install fbi
fbi eiffeltower.jpg

Resources

  • Relevant output of dmesg
  • Relevant output of lsusb
    The device 17e9:0290 (Newnham Research) is the DisplayLink DL-165 chip

Leave a Comment