Thinkpad w540 w/ Ultra Dock only one external monitor works

I have installed Ubuntu 14.04 on this Lenovo ThinkPad W540 laptop, and everything appears to be working ok by itself. Today I received my docking station to which I intended to hook up 2 external monitors (worked fine with a Dell on a Dell docking station in Linux Mint 14). One monitor is hooked up via DVI, the other is hooked up via DVI -> HDMI adapter.

I found Dock with dual external DVI monitors with Intel + Nvidia Optimus?, but this laptop has no BIOS setting to disable Optimus. Therefore I installed bumblebee + nVidia propietary drivers.

When I try to configure the Displays, only one of the external monitors and the built-in display show up, and whatever is displayed on that one external monitor is mirrored to the other.

I also attempted without bumblebee using only the discrete card, but that didn't work either. nvidia-settings couldn't detect ANY displays at all. (it doesn't detect the built-in either, leading me to believe something is really off, but I haven't been able to figure out what). Adding bumblebee and using the integrated card turned out to have higher performance with dual monitors.

Can anyone help?

Thanks!

> lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GK106GLM [Quadro K2100M] (rev ff)

> sudo dpkg -l | grep nvidia
ii  bumblebee-nvidia                                      3.2.1-90~trustyppa1                                 amd64        NVIDIA Optimus support using the proprietary NVIDIA driver
rc  nvidia-331                                            331.38-0ubuntu7                                     amd64        NVIDIA binary driver - version 331.38
ii  nvidia-331-updates                                    331.38-0ubuntu7                                     amd64        NVIDIA binary driver - version 331.38
rc  nvidia-libopencl1-331                                 331.38-0ubuntu7                                     amd64        NVIDIA OpenCL Driver and ICD Loader library
ii  nvidia-libopencl1-331-updates                         331.38-0ubuntu7                                     amd64        NVIDIA OpenCL Driver and ICD Loader library
rc  nvidia-opencl-icd-331                                 331.38-0ubuntu7                                     amd64        NVIDIA OpenCL ICD
ii  nvidia-opencl-icd-331-updates                         331.38-0ubuntu7                                     amd64        NVIDIA OpenCL ICD
ii  nvidia-prime                                          0.6.2                                               amd64        Tools to enable NVIDIA's Prime
ii  nvidia-settings                                       331.20-0ubuntu8                                     amd64        Tool for configuring the NVIDIA graphics driver

> sudo dpkg -l | grep bumblebee
ii  bumblebee                                             3.2.1-90~trustyppa1                                 amd64        NVIDIA Optimus support
ii  bumblebee-nvidia                                      3.2.1-90~trustyppa1                                 amd64        NVIDIA Optimus support using the proprietary NVIDIA driver

The Thinkpad w540 and T440 docking station uses an internal MST Hub to split the DisplayPort signal for multiple outputs. This is not supported in Linux yet. There are some working patches but the patches are not expected to see mainline release until Linux 3.16. The relevant freedesktop.org bug is #72795.


Lenovo W541 - Debian 8 - Multimonitor MST - working with 3 external screens.

As there is many (old) information on the net - I'd like to post my recent config.

I have a stock Debian 8 Added Backports to get a newer Kernel. I use three external Screens (VGA + 2x DP) on the dock, lid is closed. Dock Grafic is configured to "standard".

No special setup is needed - everything works like a charm. Except one thing, one screen I could not assign the position in Mate. So I had to logout edit .config/monitors.xml and adjust the x positions - login done ;-) This had to be done only once - as with every new login the value is remembered. Attention - change this value only while you are not logged in in the gui - as when you logout the value is overwritten! So use a console like,e.g., [CTRL-F2]