Just spent two evenings trying to figure out how to make use of Lenovo USB 2.0 dock (Lenovo USB 2.0 Port Replicator with Digital Video) on Ubuntu 12.04. I tried fbdev driver first, then xserver-xorg-video-displaylink package together with 3.2 kernel and manual Xorg configurations. At some point I even tried to run two X servers simultaniuosly. All solutions were bad for certain reasons. Fbdev is horribly slow. Both fbdev and displaylink give only 16 bit color on ALL screens (not only on that, which is connected to USB) and there is no hotplug (manual Xorg configuration gives no opportunity to use xrand). Running two Xorg instances is also a bad idea, because you can’t just take a window and move it from one screen to another.
And then I found one short mention and one detailed post about kind of “out-of-the-box” solution in two specific kernel versions. I found no difference between those mentioned 3.9 and 3.11 kernels and now I am using this one: 3.11.10-031110-generic.
The solution is not ideal, but at least now only one display works in 16 bit (that, which is connected via USB dock), while both miniDP display and laptop’s own display work in 24 bit. As I understood, 24 bit in high resolution is too much for USB 2.0. And USB 3.0 DisplayLink is not supported in Linux (and probably will never be).
Ubuntu’s default “Displays” tool is not working with my setup (pressing “Apply” gives no effect or generates weird error messages), that’s why I started to use ARandR.
Disconnecting laptop from the dock causes Xorg crashes or unwanted logouts, but there is one option to avoid them: via suspending and resuming. Not a real hotplug, but better than static Xorg configuration :)
This is my normal scenario in the office: I code having two external monitors attached > when I have to disconnect them I suspend the laptop first > at this point cables can be disconnected and laptop can be taken to another place (meeting, code review) > while laptop is somewhere else, an external monitor can be attached via miniDP port and later disconnected; this cause no problems, because miniDP is not that buggy as video-over-USB > before going back to the workplace I suspend the laptop again, then attach all cables, then resume and set monitors with ARandR > and finally code again with two external monitors. And I prey for this workaround not being broken by Xorg update or something :))