With my previous foray into getting most of the base hardware with my Yoga 900 working, I wanted to look at hooking up some of my accessory purchases, a Dell 3100 USB 3.0 docking station (including 3 video outputs, which is the maximum for the SkyLake generation of integrated video as I understand it) and a 4K external monitor (I also have an older 28″ external monitor I’d like to keep using, but it’s still hooked up to my to-be-reinstalled-upon-leaving-my-current-job desktop).
First complication was the display output of the Yoga 900, which is over the brand-new USB-C port. The cables that came with both my docking station and monitor, for high-speed video over USB, were standard USB cables. Radioshack sells (for $29.99, which seems bit steep, but I was in a rush) a USB-C to USB adapter. Without the adapter, you can plug the D3100 into one of the other super-speed USB ports, but you won’t see the DisplayLink interfaces in lsusb’s output (the dock also has 3 super-speed USB ports, 2 normal USB ports, an Ethernet port, and a 8mm headphone jack).
So, get the adapter (or something similar) and now all of the ports show up in dmesg and lsusb. Except that Linux can’t talk to the DisplayLink devices. Turns out, though, DisplayLink is working on a driver (not yet investigated if they are going to upstream this themselves or not…) for Ubuntu. The script they ship claims to only work with up to 3.19, but 4.4-rc4 seems fine (just not officially supported). Also, the underlying installer script only knows about 14.04.x and 15.04, and I’m on 15.10. It only needs to detect this version string, though, for determining whether to use upstart or systemd configurations. A trivial change the embedded installer script to use systemd on 15.10 and everything seems to work.
Note that by default, the Ubuntu kernel .config signs kernel modules. And this module is not signed using DKMS (as I understand it), so you’ll need to make sure your .config doesn’t have kernel module signing enabled.
But once you have that all installed, and plug in the USB-C adapter, the display(s) immediately are recognized and placed next to the built-in display’s screen. Could be a lot harder!