Ubuntu – Triple-head on a Lenovo T520

displayintel graphicsnvidia-optimusxorg

  • Lenovo T520 with integrated Intel HD graphics + a NVidia card (Optimus)
  • Ubuntu 11.10 on the computer.
  • I would like to use the built-in screen plus two external screens.
  • This PDF indicates that it is possible to connect up to four external monitors to the laptop. The information is Windows only.
  • I was planning to disable the NVidia card, since I have read that Linux support for Optimus is not good.

Questions:

  • Has anyone set up three monitors on NVidia hardware?
  • Has anyone set up three monitors using Intel HD 3000?
  • Can I expect it to work out of the box, or are there tricks I need to be aware of?

Best Answer

With Optimus enabled and OS detection on in the BIOS, I've got 2 external DVI connected monitors (docking - Nvidia card) and the laptop LCD (Intel card) to work. I did also get the VGA (Intel card) on the docking working, but was not able to not have it as a clone of the laptop LCD.

Here is my xorg config with Xinerama enabled:

Section "ServerLayout"
    Identifier     "Layout0"

    Screen      0   "ScreenNvidia0" 0 0
    Screen      1   "ScreenNvidia1"  RightOf "ScreenNvidia0"
    Screen      2   "ScreenIntel"    RightOf "ScreenNvidia1"

    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "true"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "MonitorNvidia0"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     50.0 - 63.0
    Option         "DPMS"
EndSection
Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "MonitorNvidia1"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     50.0 - 63.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "MonitorIntel"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       30.0 - 81.0
    VertRefresh     50.0 - 63.0
    Option         "DPMS"
EndSection
Section "Device"
    Identifier     "DeviceNvidia0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "1:0:0"
    Option         "RegistryDwords" "EnableBrightnessControl=1"
    Screen         0
EndSection
Section "Device"
    Identifier     "DeviceNvidia1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "1:0:0"
    Option         "RegistryDwords" "EnableBrightnessControl=1"
    Screen         1
EndSection

Section "Device"
    Identifier     "DeviceIntel"
    Driver         "intel"
    BusID          "0:2:0"

       Option          "monitor-VGA1"  "VGA1"
    Option          "monitor-TV"   "TV"
    Option          "monitor-LVCD1" "LVCD1"
Option "Clone" "off"
EndSection

Section "Monitor"
    Identifier      "VGA1"
EndSection

Section "Monitor"
    Identifier      "LVCD1"
    Option          "DPMS"
EndSection

Section "Monitor"
    Identifier      "TV"
    Option  "Ignore" "false"
EndSection

Section "Screen"
    Identifier  "ScreenNvidia0"
    Device      "DeviceNvidia0"
    Monitor     "MonitorNvidia0"
    DefaultDepth 24
    SubSection "Display"
    Depth 24
    Modes "1920x1200"
    EndSubSection
EndSection

Section "Screen"
    Identifier  "ScreenNvidia1"
    Device      "DeviceNvidia1"
    Monitor     "MonitorNvidia1"
    DefaultDepth 24
    SubSection "Display"
    Depth 24
    Modes "1920x1200"
    EndSubSection
EndSection

Section "Screen"
    Identifier     "ScreenIntel"
    Device         "DeviceIntel"
    Monitor        "MonitorIntel"
    DefaultDepth 24
    SubSection "Display"
    Depth 24
    Modes "1900x1200"
    EndSubSection
    SubSection "Display"
    Depth 24
    Modes "1920x1200"
    EndSubSection

EndSection

In the "DeviceIntel" section is my last attempt to get more than one monitor on the Intel card.

Here is an extract of my "lspci":

$ lspci |grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: nVidia Corporation Device 1057 (rev a1)