udlfb 0.4.0

[Update Dec 29, 2011: udlfb was promoted from the staging to the mainline kernel tree in 2.6.38. And in kernel 3.3 pagefault detection and console are enabled by default. See all our udlfb posts for the latest news.]

[Update March 14, 2010: udlfb versions have moved to being released with the Linux kernel. Update on udlfb support in Linux kernel 2.6.34]

[Update Feb 6, 2010: additional features and fixes post-0.4 are available at the plugable git page. Background is in later posts. One major udlfb patch with these changes has made it into linux-next (slated for 2.6.34), and additional patches will be coming as they’re ready.]

This is a new release of the DisplayLink kernel framebuffer driver, udlfb.

udlfb was accepted into the Linux kernel staging tree of 2.6 a few months ago. It needs some work to add key features and get it moving from the staging tree, into mainline. Roberto De Iorio, the author of udlfb and displaylink-mod, is focusing on X server work, and is happy with this work happening in parallel to move udlfb forward.

This first release intentionally adds no fundamentally new features. It only gets udlfb up to sync with the displaylink-mod branch (up to Roberto’s last 0.3 release in July 2009) that has been in use the past few months. With this update, displaylink-mod users should be able to switch to this version of udlfb transparently.

Bug reports are very welcome, especially regressions or problems that would stand in the way of moving this driver forward out of staging (comments here are fine for bug reports).

New in 0.4.0 (since 0.2.3 currently in the Linux kernel staging tree)

  • Add dynamic modeset support (from displaylink-mod 0.3 and libdlo)
    • udlfb uses EDID to find the monitor’s preferred mode
    • udlfb no longer has fixed mode tables – it’s able to set any mode (within the capabilities of the chip) dynamically, from the standard VESA timing characteristics of the mode
  • Fix teardown synchronization issues (from displaylink-mod 0.3)
  • Other minor changes related to probe/modeset (from displaylink-mod 0.3)
  • Functionally identical to displaylink-mod 0.3
  • Retains basic layout of udlfb to make diffs more transparent and understandable


See the git project summary page at http://git.plugable.com/gitphp/index.php?p=udlfb&a=summary for information.

Switching from displaylink-mod to udlfb.

Both these drivers match against all displaylink devices. So you don’t want both loading on your system. To clear out displaylink-mod:

sudo rmmod displaylink
sudo rm /lib/modules/`uname -r`/extra/displaylink.ko
sudo depmod -a

Then download, compile, install udlfb 0.4

sudo make install
sudo depmod -a


  • Merge in enhancements from Jaya Kumar’s displaylinkfb branch (defio support)
  • Merge in enhancements from Bernie’s displaylink-mod branch (performance)
  • Clear up remaining endian issues, to make sure it works on ARM and others
  • Add performance metrics, and sysfs attributes to read/reset them
  • Make allocation/use of backbuffer a runtime option, with param and sysfs switch
  • Figure out what KMS (Kernel Mode Setting) means to framebuffer drivers
  • Move from single URB with synchronous dispatch to ring of USB URBs, with asynchronous dispatch
  • Enhance probe() to better handle chip type detection
  • Enahance mode selection to better handle limits of DisplayLink chip
  • Add simulated hardware cursor support, to prioritize mouse movement

Any feedback or ideas on these todos are very welcome. And, as always, patches are very welcome and will be incorporated as quickly as possible.

1 comment on “udlfb 0.4.0”

  1. James

    Hey Bernie:

    Yup — everything worked great. I still have the green screen, even after pulling other drivers out as per your recommendation. However, I may try reinstalling Ubuntu Studio again, just to make 100% sure.

    By the way — I’m still not seeing any .so files in usr/lib/xorg/modules. If you had intended for make to put them there, then it isn’t doing that. But I gather from your comments above that you haven’t quite yet gotten out of staging, so I guess I shouldn’t be surprised (and I’m not… just impatient!!!)


    Thanks for your hard work on this. Oh, and I did manage to get a brief flicker of hope — after having downloaded x2x and using someone else’s xorg.conf, I managed to get the GNOME desktop to display its background (along with a pointer!) on the DS-90U. But I couldn’t use the mouse, and the entire system was hosed, so I had to reinstall. I’d rather have green than grey right now…

    – James

Comments are closed.