Preface: I am new-ish to linux as my daily driver OS but not to troubleshooting. I have narrowed it down to something wrong in either the way ARCH, the kernel, (grub too?) handle the proprietary nvidia drivers, or the proprietary nvidia drivers / their configuration.
MY SETUP:
PCIE-01 x16 - nvidia 1070ti - 01:00 1 monitor attached
- This card will be passed to a guest windows VM
PCIE-03 x4 - nvidia 1050ti - 04:00 2 monitor attached
- This card will be dual monitor for host OS
OS - Manjaro KDE 21.1 - FRESH INSTALL as of this post
Kernel - 5.13 kernel
Driver - nvidia 470.63.01
Previous version was kernel 5.10 and kde 21.07. Previous install had a windows vm with the 1070ti passed through and intel integrated for the host OS. Worked but only 1 monitor sucks for host OS.
WHEN ITS WORKING:
Both GPUs work using Windows 10 LTSC as a host OS
Both GPUs work using at least the following distros - ubuntu, mint, zorin OS as host OS.
Both GPUs work on manjaro, endeavor but only when using the nvidia open source drivers (causes screen tearing and other issues but does work on all gpu and monitors).
Removing the 1070 from the pc will allow the 1050 to work as normal
Switching the 1050 to any pcie slot by itself (no 1070 installed) works as normal
I cannot swap the 1050ti to pcie01 or 02 and put the 1070 in pcie03 because the slot is only 4x and would kill the cards performance. 4x does not bottleneck the 1050 (its just for video acceleration across multi monitors anyway)
I cannot swap the 1050ti to pcie02 because the 1050 and 1070 then share an IOMMU group and I don’t want to run a custom patched kernel to isolate them (causes a new set of issues doing so).
WHEN ITS NOT WORKING
Switching to proprietary drivers causes the 1050ti to no longer allow displays. Both cards are detected.
If you enable a display (any make model) on the 1050, the resolution either:
A) gets added onto the 1070 monitor as if it were an ultra widescreen. You have to use the mouse to scroll the display to see the entire rendered resolution.
B) black screen on all monitors but you can see the cursor on the 1070 display, 1050 monitor goes to sleep.
C) black screen and all monitors go into sleep mode / no source detected.
Changing DVI / HDMI ports do nothing, nor changing cables. Switching monitors around does nothing.
This feels like an xserver, xorg or nvidia configuration issue and I am too new to desktop linux to have the fundamental knowledge to isolate further. I have already spent days and days reading about dual gpu nvidia issues.
I have tried editing xorg.conf and nvidia.conf but changes are ignored or dont apply? Is the load order for display drivers and kernel wrong?
WHAT HELP I WOULD LIKE, IF POSSIBLE
I feel like if someone more knowledgeable than me were to explain how to force grub / the kernel / arch / whoever to use the 1050ti and ignore the 1070, it may fix the issue. The 1070 will be passed to a VM so it needs to be enabled and available to the hypervisor.
I can even give remote access and stream the setup via webcam for anyone wanting to help, I have no personal data on this machine so nothing risky for me and know enough to notice if you tried to setup some sort of ssh or chroot tomfoolery during the remote session. I’d just wipe and recreate your steps to be safe anyway.