Announcement

Collapse
No announcement yet.

Linux multi head: success with 8 monitors in 1 X screen without Xinerama

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    Originally posted by curaga View Post
    Oh, how come? DP was supposed to remove that limitation, allowing infinite chaining (up until the bandwidth limit :P).
    You still need a display controller and a digital encoder to drive each display. MST just allows you to support multiple streams on a single wire.

    Comment


    • #12
      Originally posted by sr91 View Post
      Hello,

      After a multi year journey experimenting with multi display on Linux, I finally personally reached a very important milestone today:

      I am running successfuly a single X screen with 8 monitors over two GPUs:
      • without Xinerama
      • with OpenGL working
      • with XFCE working
      • windows can be moved from one display to another, maximizing a window only maximizes over one monitor.

      I agree with you, but it is easy when one graphics card. Your card is 1x NVS 510 with 4x Mini DisplayPort. I have 3 x NVS 300 with 2x DMS-59. Then what? I have setup with Xinerama of maximizing on all screens.

      Code:
      lspci | grep -i nvidia
      03:00.0 VGA compatible controller: NVIDIA Corporation GT218 [NVS 300] (rev a2)
      03:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
      04:00.0 VGA compatible controller: NVIDIA Corporation GT218 [NVS 300] (rev a2)
      04:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
      05:00.0 VGA compatible controller: NVIDIA Corporation GT218 [NVS 300] (rev a2)
      05:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)

      Code:
      pacman -Qs | grep -i nvidia
      local/lib32-nvidia-340xx-utils 340.98-1
          NVIDIA drivers utilities (32-bit)
          Nvidia VDPAU library
      local/linux44-nvidia-340xx 340.98-8 (linux44-extramodules)
          NVIDIA drivers for linux.
      local/mhwd-nvidia 1:370.28-1
          MHWD module-ids for nvidia 370.28
      local/mhwd-nvidia-304xx 1:304.131-1
          MHWD module-ids for nvidia 304.131
      local/mhwd-nvidia-340xx 340.98-1
          MHWD module-ids for nvidia 340.98
      local/nvidia-340xx-utils 340.98-1
          NVIDIA drivers utilities
      Code:
      cat /etc/X11/mhwd.d/nvidia.conf
      # nvidia-settings: X configuration file generated by nvidia-settings
      # nvidia-settings:  version 340.98  (bui[email protected])  Mon Sep 19 18:06:10 PDT 2016
      
      Section "ServerLayout"
          Identifier     "Layout0"
          Screen      0  "Screen0" 1680 0
          Screen      1  "Screen1" 0 0
          Screen      2  "Screen2" 3360 0
          InputDevice    "Keyboard0" "CoreKeyboard"
          InputDevice    "Mouse0" "CorePointer"
          Option         "Xinerama" "1"
      EndSection
      
      Section "Files"
      EndSection
      
      Section "Module"
          Load           "dbe"
          Load           "extmod"
          Load           "type1"
          Load           "freetype"
          Load           "glx"
      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     "Monitor0"
          VendorName     "Unknown"
          ModelName      "Philips 200WB"
          HorizSync       30.0 - 98.0
          VertRefresh     56.0 - 76.0
          Option         "DPMS"
      EndSection
      
      Section "Monitor"
          # HorizSync source: edid, VertRefresh source: edid
          Identifier     "Monitor1"
          VendorName     "Unknown"
          ModelName      "Philips 200WB"
          HorizSync       30.0 - 98.0
          VertRefresh     56.0 - 76.0
          Option         "DPMS"
      EndSection
      
      Section "Monitor"
          # HorizSync source: edid, VertRefresh source: edid
          Identifier     "Monitor2"
          VendorName     "Unknown"
          ModelName      "Philips 200WB"
          HorizSync       30.0 - 98.0
          VertRefresh     56.0 - 76.0
          Option         "DPMS"
      EndSection
      
      Section "Device"
          Identifier     "Device0"
          Driver         "nvidia"
          VendorName     "NVIDIA Corporation"
          BoardName      "NVS 300"
          BusID          "PCI:5:0:0"
      EndSection
      
      Section "Device"
          Identifier     "Device1"
          Driver         "nvidia"
          VendorName     "NVIDIA Corporation"
          BoardName      "NVS 300"
          BusID          "PCI:3:0:0"
      EndSection
      
      Section "Device"
          Identifier     "Device2"
          Driver         "nvidia"
          VendorName     "NVIDIA Corporation"
          BoardName      "NVS 300"
          BusID          "PCI:4:0:0"
      EndSection
      
      Section "Screen"
          Identifier     "Screen0"
          Device         "Device0"
          Monitor        "Monitor0"
          DefaultDepth    24
          Option         "Stereo" "0"
          Option         "nvidiaXineramaInfoOrder" "CRT-1"
          Option         "metamodes" "DP-0: nvidia-auto-select +0+0, DP-1: nvidia-auto-select +0+1050"
          Option         "SLI" "Off"
          Option         "MultiGPU" "Off"
          Option         "BaseMosaic" "off"
          SubSection     "Display"
              Depth       24
          EndSubSection
      EndSection
      
      Section "Screen"
          Identifier     "Screen1"
          Device         "Device1"
          Monitor        "Monitor1"
          DefaultDepth    24
          Option         "Stereo" "0"
          Option         "nvidiaXineramaInfoOrder" "CRT-0"
          Option         "metamodes" "DP-0: nvidia-auto-select +0+0, DP-1: nvidia-auto-select +0+1050"
          Option         "SLI" "Off"
          Option         "MultiGPU" "Off"
          Option         "BaseMosaic" "off"
          SubSection     "Display"
              Depth       24
          EndSubSection
      EndSection
      
      Section "Screen"
          Identifier     "Screen2"
          Device         "Device2"
          Monitor        "Monitor2"
          DefaultDepth    24
          Option         "Stereo" "0"
          Option         "nvidiaXineramaInfoOrder" "CRT-0"
          Option         "metamodes" "DP-0: nvidia-auto-select +0+0, DP-1: nvidia-auto-select +0+1050"
          Option         "SLI" "Off"
          Option         "MultiGPU" "Off"
          Option         "BaseMosaic" "off"
          SubSection     "Display"
              Depth       24
          EndSubSection
      EndSection
      
      Section "Extensions"
          Option         "Composite" "Disable"
      EndSection

      Comment


      • #13
        Originally posted by sr91 View Post
        Hello,

        After a multi year journey experimenting with multi display on Linux, I finally personally reached a very important milestone today:

        I am running successfuly a single X screen with 8 monitors over two GPUs:
        • without Xinerama
        • with OpenGL working
        • with XFCE working
        • windows can be moved from one display to another, maximizing a window only maximizes over one monitor.

        I agree with you, but it is easy when one graphics card. Your card is 1x NVS 510 with 4x Mini DisplayPort. I have 3 x NVS 300 with 2x DMS-59. Then what? I have setup with Xinerama of maximizing on all screens.

        Code:
        lspci | grep -i nvidia
        03:00.0 VGA compatible controller: NVIDIA Corporation GT218 [NVS 300] (rev a2)
        03:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
        04:00.0 VGA compatible controller: NVIDIA Corporation GT218 [NVS 300] (rev a2)
        04:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
        05:00.0 VGA compatible controller: NVIDIA Corporation GT218 [NVS 300] (rev a2)
        05:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)

        Code:
        pacman -Qs | grep -i nvidia
        local/lib32-nvidia-340xx-utils 340.98-1
            NVIDIA drivers utilities (32-bit)
            Nvidia VDPAU library
        local/linux44-nvidia-340xx 340.98-8 (linux44-extramodules)
            NVIDIA drivers for linux.
        local/mhwd-nvidia 1:370.28-1
            MHWD module-ids for nvidia 370.28
        local/mhwd-nvidia-304xx 1:304.131-1
            MHWD module-ids for nvidia 304.131
        local/mhwd-nvidia-340xx 340.98-1
            MHWD module-ids for nvidia 340.98
        local/nvidia-340xx-utils 340.98-1
            NVIDIA drivers utilities
        Code:
        cat /etc/X11/mhwd.d/nvidia.conf
        # nvidia-settings: X configuration file generated by nvidia-settings
        # nvidia-settings:  version 340.98  ([email protected])  Mon Sep 19 18:06:10 PDT 2016
        
        Section "ServerLayout"
            Identifier     "Layout0"
            Screen      0  "Screen0" 1680 0
            Screen      1  "Screen1" 0 0
            Screen      2  "Screen2" 3360 0
            InputDevice    "Keyboard0" "CoreKeyboard"
            InputDevice    "Mouse0" "CorePointer"
            Option         "Xinerama" "1"
        EndSection
        
        Section "Files"
        EndSection
        
        Section "Module"
            Load           "dbe"
            Load           "extmod"
            Load           "type1"
            Load           "freetype"
            Load           "glx"
        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     "Monitor0"
            VendorName     "Unknown"
            ModelName      "Philips 200WB"
            HorizSync       30.0 - 98.0
            VertRefresh     56.0 - 76.0
            Option         "DPMS"
        EndSection
        
        Section "Monitor"
            # HorizSync source: edid, VertRefresh source: edid
            Identifier     "Monitor1"
            VendorName     "Unknown"
            ModelName      "Philips 200WB"
            HorizSync       30.0 - 98.0
            VertRefresh     56.0 - 76.0
            Option         "DPMS"
        EndSection
        
        Section "Monitor"
            # HorizSync source: edid, VertRefresh source: edid
            Identifier     "Monitor2"
            VendorName     "Unknown"
            ModelName      "Philips 200WB"
            HorizSync       30.0 - 98.0
            VertRefresh     56.0 - 76.0
            Option         "DPMS"
        EndSection
        
        Section "Device"
            Identifier     "Device0"
            Driver         "nvidia"
            VendorName     "NVIDIA Corporation"
            BoardName      "NVS 300"
            BusID          "PCI:5:0:0"
        EndSection
        
        Section "Device"
            Identifier     "Device1"
            Driver         "nvidia"
            VendorName     "NVIDIA Corporation"
            BoardName      "NVS 300"
            BusID          "PCI:3:0:0"
        EndSection
        
        Section "Device"
            Identifier     "Device2"
            Driver         "nvidia"
            VendorName     "NVIDIA Corporation"
            BoardName      "NVS 300"
            BusID          "PCI:4:0:0"
        EndSection
        
        Section "Screen"
            Identifier     "Screen0"
            Device         "Device0"
            Monitor        "Monitor0"
            DefaultDepth    24
            Option         "Stereo" "0"
            Option         "nvidiaXineramaInfoOrder" "CRT-1"
            Option         "metamodes" "DP-0: nvidia-auto-select +0+0, DP-1: nvidia-auto-select +0+1050"
            Option         "SLI" "Off"
            Option         "MultiGPU" "Off"
            Option         "BaseMosaic" "off"
            SubSection     "Display"
                Depth       24
            EndSubSection
        EndSection
        
        Section "Screen"
            Identifier     "Screen1"
            Device         "Device1"
            Monitor        "Monitor1"
            DefaultDepth    24
            Option         "Stereo" "0"
            Option         "nvidiaXineramaInfoOrder" "CRT-0"
            Option         "metamodes" "DP-0: nvidia-auto-select +0+0, DP-1: nvidia-auto-select +0+1050"
            Option         "SLI" "Off"
            Option         "MultiGPU" "Off"
            Option         "BaseMosaic" "off"
            SubSection     "Display"
                Depth       24
            EndSubSection
        EndSection
        
        Section "Screen"
            Identifier     "Screen2"
            Device         "Device2"
            Monitor        "Monitor2"
            DefaultDepth    24
            Option         "Stereo" "0"
            Option         "nvidiaXineramaInfoOrder" "CRT-0"
            Option         "metamodes" "DP-0: nvidia-auto-select +0+0, DP-1: nvidia-auto-select +0+1050"
            Option         "SLI" "Off"
            Option         "MultiGPU" "Off"
            Option         "BaseMosaic" "off"
            SubSection     "Display"
                Depth       24
            EndSubSection
        EndSection
        
        Section "Extensions"
            Option         "Composite" "Disable"
        EndSection

        Comment


        • #14
          I did an entire blog on Xorg config for a multi-head setup.

          In Debian Stretch it's now possible to use this randr method instead without using any Xorg config files:

          # xrandr --setprovideroutputsource 1 0
          # xrandr --output HDMI-1 --output DVI-0 --left-of HDMI-1 --output VGA-1-1 --auto --right-of HDMI-1

          Comment


          • #15
            Originally posted by doa379 View Post
            I did an entire blog on Xorg config for a multi-head setup.
            Where is this blog?

            Comment


            • #16
              Originally posted by doa379 View Post
              I did an entire blog on Xorg config for a multi-head setup.
              Where is this blog?

              Comment

              Working...
              X