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  (buildmeister@swio-display-x86-rhel47-06)  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  (buildmeister@swio-display-x86-rhel47-06)  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


              • #17
                Since somebody else already revived this thread: if you were going to do it today, August 2018, and you had the option of an AMD WX4100/5100 or a Quadro 620, which would you pick if one of the requirements is 6 screens?

                Comment


                • #18
                  I can't get the multi-head display working because the PCI Bus ID are not persistent
                  under Ubuntu 20.04 LTS. On subsequent boots, the Bus ID for the two RTX cards
                  change randomly.

                  lab@sys:~$ lspci | grep VGA
                  18:00.0 VGA compatible controller: NVIDIA Corporation Device 2488 (rev a1)
                  66:00.0 VGA compatible controller: NVIDIA Corporation Device 2488 (rev a1)

                  Reboot

                  lab@sys:~$ lspci | grep VGA
                  17:00.0 VGA compatible controller: NVIDIA Corporation Device 2488 (rev a1)
                  67:00.0 VGA compatible controller: NVIDIA Corporation Device 2488 (rev a1)

                  Reboot

                  lab@sys:~$ lspci | grep VGA
                  19:00.0 VGA compatible controller: NVIDIA Corporation Device 2488 (rev a1)
                  67:00.0 VGA compatible controller: NVIDIA Corporation Device 2488 (rev a1)

                  When the BusID does not match with the setting in xorg.conf, then there is no display.
                  Has anyone encountered this problem and know a fix for it?

                  Thanks,

                  Comment

                  Working...
                  X