Help enabling 2nd GPU's monitor

Update: Cut the intro. Cut "mouse issue" part due being due to other reasons.

2nd GPU/Monitor Issue: So i'm running a GTX 1080 (PCI:38:0:0) and a GT 635 (PCI:37:0:0), have the latest non-free drivers through the Hardware Configuration installed, and my 2nd GPU's Monitor is detected in Nvidia-Settings and says "Configuration: Disabled" with the option to change it to "Configuration: New X screen (requires X restart)" with no ability to click Apply. Monitor does not show up under Display Configuration or even xrander -q.
I found something similar on the forums where a guy said to manually input the 2nd gpu and monitor into xorg.conf but that yielded a black screen for me following his examples.
Update: I have since switched to XFCE due to other reasons. I can also confirm that I can run a monitor on my 2nd GPU only if I do not have the non-free drivers installed and have only what Manjaro provides out of the box. Also I did find this https://collaboradev.com/2016/09/30/arch-linux-hydra-build/ which while hasn't helped me does show others have apparently gotten this to work.

"xrander -q" output. Only shows primary graphics card it seems.

Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
DVI-D-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
   1920x1080    119.98 + 143.85*  119.88   100.00    99.90    60.00    59.94    50.00    29.97    25.00    23.98  
   1680x1050     59.95  
   1600x1200     60.00  
   1440x900      59.89  
   1400x1050     59.98  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    72.81    59.94    59.93  
DP-5 disconnected (normal left inverted right x axis y axis)

Nvidia X conf

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 440.82

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
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      "ViewSonic XG2401 SERIES"
    HorizSync       180.0 - 180.0
    VertRefresh     48.0 - 146.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 1080"
    BusID          "PCI:38:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-6"
    Option         "metamodes" "1920x1080_144 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

The possibilities for 2 dGPUs are:

  • Use one dGPU for CUDA or other vector calculations and one for the screen(s)
  • Use 2 dGPUs on 2 different Xorg sessions each to control one screen:
    • This means basically having 2 different and separate desktops running on the same CPU with each screen on a dedicated dGPU.
    • You will be able to copy-paste between applications running on each screen, but you will not be able to move applications from one screen to the other.
    • You will not be able to run one application on 2 dGPUs...

Provide:

inxi --full --verbosity=7 --filter --no-host
xinput --list
xinput --listprops xxx

where xxx= the number for your mouse in xinput --list

2 GPU: Well I mean it worked correctly before with I assume the Open Source drivers. Neither sound like promising options really. I have the 2nd GPU to test it with various programs in Windows so would there be any way to set it up so my 1080 is running everything and the GT 635 is just a passthrough monitor connection? Would be a hassle if I had to swap connectors back and fourth whenever I wanted to use Linux.

Mouse:
inxi --full --verbosity=7 --filter --no-host

System:
  Kernel: 5.6.8-1-MANJARO x86_64 bits: 64 compiler: gcc v: 9.3.0 
  Desktop: KDE Plasma 5.18.5 tk: Qt 5.14.2 wm: kwin_x11 dm: SDDM 
  Distro: Manjaro Linux 
Machine:
  Type: Desktop Mobo: Micro-Star model: B450 TOMAHAWK MAX (MS-7C02) 
  v: 1.0 serial: <filter> UEFI [Legacy]: American Megatrends v: 3.30 
  date: 09/17/2019 
Memory:
  RAM: total: 15.65 GiB used: 1.35 GiB (8.6%) 
  RAM Report: 
  permissions: Unable to run dmidecode. Root privileges required. 
CPU:
  Topology: 6-Core model: AMD Ryzen 5 3600 bits: 64 type: MT MCP 
  arch: Zen L2 cache: 3072 KiB bogomips: 86425 
  Speed: 3598 MHz min/max: N/A Core speeds (MHz): 1: 3598 2: 3592 3: 3601 
  4: 3702 5: 3527 6: 3550 7: 3584 8: 3598 9: 3598 10: 3707 11: 3557 
  12: 3586 
  Flags: 3dnowprefetch abm adx aes aperfmperf apic arat avic avx avx2 
  bmi1 bmi2 bpext cat_l3 cdp_l3 clflush clflushopt clwb clzero cmov 
  cmp_legacy constant_tsc cpb cpuid cqm cqm_llc cqm_mbm_local 
  cqm_mbm_total cqm_occup_llc cr8_legacy cx16 cx8 de decodeassists 
  extapic extd_apicid f16c flushbyasid fma fpu fsgsbase fxsr fxsr_opt ht 
  hw_pstate ibpb ibs irperf lahf_lm lbrv lm mba mca mce misalignsse mmx 
  mmxext monitor movbe msr mtrr mwaitx nonstop_tsc nopl npt nrip_save nx 
  osvw overflow_recov pae pat pausefilter pclmulqdq pdpe1gb perfctr_core 
  perfctr_llc perfctr_nb pfthreshold pge pni popcnt pse pse36 rdpid rdpru 
  rdrand rdseed rdt_a rdtscp rep_good sep sev sha_ni skinit smap smca sme 
  smep ssbd sse sse2 sse4_1 sse4_2 sse4a ssse3 stibp succor svm svm_lock 
  syscall tce topoext tsc tsc_scale umip v_vmsave_vmload vgif vmcb_clean 
  vme vmmcall wbnoinvd wdt xgetbv1 xsave xsavec xsaveerptr xsaveopt 
  xsaves 
Graphics:
  Device-1: NVIDIA GK208 [GeForce GT 635] driver: nvidia v: 440.82 
  bus ID: 25:00.0 chip ID: 10de:1280 
  Device-2: NVIDIA GP104 [GeForce GTX 1080] vendor: Micro-Star MSI 
  driver: nvidia v: 440.82 bus ID: 26:00.0 chip ID: 10de:1b80 
  Display: x11 server: X.Org 1.20.8 driver: nvidia compositor: kwin_x11 
  tty: N/A 
  OpenGL: renderer: GeForce GTX 1080/PCIe/SSE2 v: 4.6.0 NVIDIA 440.82 
  direct render: Yes 
Audio:
  Device-1: NVIDIA GK208 HDMI/DP Audio driver: snd_hda_intel v: kernel 
  bus ID: 25:00.1 chip ID: 10de:0e0f 
  Device-2: NVIDIA GP104 High Definition Audio vendor: Micro-Star MSI 
  driver: snd_hda_intel v: kernel bus ID: 26:00.1 chip ID: 10de:10f0 
  Device-3: AMD Starship/Matisse HD Audio vendor: Micro-Star MSI 
  driver: snd_hda_intel v: kernel bus ID: 28:00.4 chip ID: 1022:1487 
  Sound Server: ALSA v: k5.6.8-1-MANJARO 
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
  vendor: Micro-Star MSI driver: r8169 v: kernel port: e000 
  bus ID: 22:00.0 chip ID: 10ec:8168 
  IF: enp34s0 state: up speed: 1000 Mbps duplex: full mac: <filter> 
  IP v4: <filter> type: dynamic noprefixroute scope: global 
  broadcast: <filter> 
  IP v6: <filter> type: noprefixroute scope: link 
  WAN IP: <filter> 
Drives:
  Local Storage: total: 3.88 TiB used: 11.87 GiB (0.3%) 
Omitted
  ID-4: /dev/sdc vendor: Crucial model: CT240BX200SSD1 size: 223.57 GiB 
  speed: 6.0 Gb/s serial: <filter> rev: .4 scheme: MBR 
  Message: No Optical or Floppy data was found. 
RAID:
  Message: No RAID data was found. 
Partition:
  ID-1: / size: 48.97 GiB used: 9.12 GiB (18.6%) fs: ext4 dev: /dev/sdc2 
  label: N/A uuid: ea4d60a8-d671-4545-9175-70fb2265db23 
  ID-2: /boot size: 1.91 GiB used: 57.1 MiB (2.9%) fs: ext4 
  dev: /dev/sdc1 label: N/A uuid: d6f25b69-f945-4c04-8a68-73867419f85b 
  ID-3: /home size: 167.87 GiB used: 2.69 GiB (1.6%) fs: ext4 
  dev: /dev/sdc3 label: N/A uuid: 6d710a64-8d6b-48a4-8860-755bac51d42e 
Unmounted:
Omitted
USB:
  Hub: 1-0:1 info: Full speed (or root) Hub ports: 10 rev: 2.0 
  speed: 480 Mb/s chip ID: 1d6b:0002 
  Device-1: 1-8:2 info: Atmel WootingOne type: Keyboard,HID 
  driver: hid-generic,usbhid interfaces: 6 rev: 2.0 speed: 12 Mb/s 
  chip ID: 03eb:ff01 serial: <filter> 
  Device-2: 1-9:3 info: Logitech G502 Proteus Spectrum Optical Mouse 
  type: Mouse,HID driver: hid-generic,usbhid interfaces: 2 rev: 2.0 
  speed: 12 Mb/s chip ID: 046d:c332 serial: <filter> 
  Hub: 2-0:1 info: Full speed (or root) Hub ports: 4 rev: 3.1 
  speed: 10 Gb/s chip ID: 1d6b:0003 
  Hub: 3-0:1 info: Full speed (or root) Hub ports: 4 rev: 2.0 
  speed: 480 Mb/s chip ID: 1d6b:0002 
  Hub: 3-2:2 info: VIA Labs Hub ports: 4 rev: 2.1 speed: 480 Mb/s 
  chip ID: 2109:2811 
  Hub: 4-0:1 info: Full speed (or root) Hub ports: 4 rev: 3.1 
  speed: 10 Gb/s chip ID: 1d6b:0003 
  Hub: 4-2:2 info: VIA Labs Hub ports: 4 rev: 3.0 speed: 5 Gb/s 
  chip ID: 2109:8110 
Sensors:
  System Temperatures: cpu: 47.2 C mobo: N/A gpu: nvidia temp: 57 C 
  Fan Speeds (RPM): N/A gpu: nvidia fan: 19% 
Info:
  Processes: 276 Uptime: 17m Init: systemd v: 244 Compilers: gcc: 9.3.0 
  Shell: bash v: 5.0.16 running in: konsole inxi: 3.0.37 

xinput --list

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech Gaming Mouse G502                id=10   [slave  pointer  (2)]
⎜   ↳ Logitech Gaming Mouse G502 Consumer Control       id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Wooting WootingOne                        id=8    [slave  keyboard (3)]
    ↳ Wooting WootingOne                        id=9    [slave  keyboard (3)]
    ↳ Logitech Gaming Mouse G502 Keyboard       id=11   [slave  keyboard (3)]
    ↳ Logitech Gaming Mouse G502 System Control id=13   [slave  keyboard (3)]
    ↳ Logitech Gaming Mouse G502 Consumer Control       id=14   [slave  keyboard (3)]

xinput list-props 10

Device 'Logitech Gaming Mouse G502':
        Device Enabled (153):   1
        Coordinate Transformation Matrix (155): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Natural Scrolling Enabled (288):       0
        libinput Natural Scrolling Enabled Default (289):       0
        libinput Scroll Methods Available (290):        0, 0, 1
        libinput Scroll Method Enabled (291):   0, 0, 0
        libinput Scroll Method Enabled Default (292):   0, 0, 0
        libinput Button Scrolling Button (293): 2
        libinput Button Scrolling Button Default (294): 2
        libinput Middle Emulation Enabled (295):        0
        libinput Middle Emulation Enabled Default (296):        0
        libinput Accel Speed (297):     0.000000
        libinput Accel Speed Default (298):     0.000000
        libinput Accel Profiles Available (299):        1, 1
        libinput Accel Profile Enabled (300):   0, 1
        libinput Accel Profile Enabled Default (301):   1, 0
        libinput Left Handed Enabled (302):     0
        libinput Left Handed Enabled Default (303):     0
        libinput Send Events Modes Available (273):     1, 0
        libinput Send Events Mode Enabled (274):        0, 0
        libinput Send Events Mode Enabled Default (275):        0, 0
        Device Node (276):      "/dev/input/event27"
        Device Product ID (277):        1133, 49970
        libinput Drag Lock Buttons (304):       <no items>
        libinput Horizontal Scroll Enabled (305):       1

I can't help you then...

And unfortunately, I can't see anything in the xinput list-props 10 that will help you by :heart:, so fiddle with the properties like this:

xinput set-int-prop 8 "Send Events Mode Enabled" 10 1

where 10 is the number you already used, 1 means enabled and "Send Events Mode Enabled" means the property to change...

:sob:

Make a backup of your config and try this one:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0" #cnage to LeftOf if is on left
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0" #maybe you have to change to 1
EndSection

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

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

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "ViewSonic XG2401 SERIES"
    HorizSync       180.0 - 180.0
    VertRefresh     48.0 - 146.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "ViewSonic XG2401 SERIES" #change this details accordingly
    HorizSync       180.0 - 180.0 #change this details accordingly
    VertRefresh     48.0 - 146.0 #change this details accordingly
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 1080"
    Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
    BusID          "PCI:38:0:0"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GT 635"
    Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
    BusID          "PCI:37:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    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         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option         "COMPOSITE" "Enable"
EndSection
 
Section "InputClass"
    Identifier          "Keyboard Defaults"
    MatchIsKeyboard        "yes"
    Option              "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

Pay attention to the side notes i made.

Well that sucks...

Unsure what to change the refreshes to. Using the config as-is with the Monitor name changed results in no change not even a black screen even if I overwrite the nvidia.conf as well in mhwd.d.

I assume you meant "10" instead of 8 for the device since 8 is my keyboard, need the Format after the Property which I assume doesn't matter what I use (8/16/32), "Send Events Mode Enabled" does nothing but "libinput Send Events Mode Enabled 8 anything 0" results in my mouse freezing, and changing the 2nd value to anything other than "0" spits out a "BadValue" error.

So changing the polling rate made me discover something interesting. It's not my mouse stuttering every 8 seconds it's the system stuttering every 8 seconds.

Use Nvidia X Settings and mine as an example ...

Yea I got a little confused due to the frequency ranges due to my primary monitor being Freesync. Either way though it didn't work :. I have since switched to XFCE though and this did fix my stutter issues however I still cannot, with non-free drivers, run a 2nd monitor off my 2nd GPU. I can with free drivers however which is extremely odd.

Well, the free drivers do not create the conf file. Maybe you can remove the /etc/X11/mhwd.d/nvidia.conf and the symlink of it the /etc/X11/xorg.conf.d/90-mhwd.conf when using the nonfree drivers and that will boot in a sort of nomodeset, or you can even add that parameter at kernel boot.

do a:

watch --interval=3 'free --human'
watch --interval=3 'nvidia-smi'

in 2 console windows. Take a screenshot when it happens.

Just decided to give up on this tbh. Linux just doesn't support running having multiple GPU's sadly. And here I was upset that Windows doesn't support using a 2nd Nvidia GPU as a "Low Power" GPU forcing a workaround to start programs on it...
It's not even as if I could use an HDMI splitter/input changer either as just having the 2nd GPU plugged into something results in apparently constant lag spikes with new drivers.

For those wondering farthest I got was combining the 440 driver config and the 390 driver config because it chose my GT 635 as default GPU. It seemingly managed to get the "2nd" GPU's xserver "running", if you could call it that, under the 390 and 418 drivers. As said in one of the first replies I sadly couldn't drag programs across, 2nd screen also was black but my mouse was able to go across. On the primary screen the Task Bar would only launch if I forced it with Sudo and the Display settings didn't recognize it. So it was pretty much useless.
Oh also enabling Xinerama resulted the 2 monitors flashing and me needing to boot into a LiveOS and disable it as not even the Terminal Screens would load.

Yes it does. Is called multihead
There are disadvantages and will never work as on Windows due to the complete difference between the OS.

That is one of the limitations, but it can be solved by using Xinerama "1" but also of the WideGuy that for now exists as AppIMAGE.

Note: Please don't mark comments as self solved unless you give a specific solution that works, not just inconveniences and partial conclusions.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by