Multihead Setup of AMDGPU and Modesetting GPU Fails for xf86EnableIOPorts and VGAArbiter
I have a HP ML350p where I an AMD RX 460 is my primary GPU and the internal Matrox G200eH is my secondary, using the
mgag200 drivers respectively. I am aiming for a multihead setup of two displays (same model - an AOC G2260VWQ6) where the primary is connected over DP to my AMD card and the secondary over VGA to the internal Matrox card.
Now let's get to the nitty gritty. My Xorg.0.log (also attached) shows both cards are detected:
[ 1152.180] (II) xfree86: Adding drm device (/dev/dri/card0) [ 1152.180] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 11 paused 0 [ 1152.181] (II) xfree86: Adding drm device (/dev/dri/card1) [ 1152.182] (II) systemd-logind: got fd for /dev/dri/card1 226:1 fd 12 paused 0
But then it fails without clear, to me at least, explanation:
[ 1152.250] (II) VESA: driver for VESA chipsets: vesa [ 1152.250] xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted) [ 1152.250] (WW) Falling back to old probe method for modesetting [ 1152.253] (II) modeset(G0): using drv /dev/dri/card1 [ 1152.253] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
After some reading up on VGAArbiter and that it is now integrated nicely into Linux with libpci and xserver having their userland implementations (or working together maybe?), I confirmed I have both packages installed - so I'm not sure what the issue is there. And yes, my kernel has the KConfig for VGAArbiter enabled.
The next issue is the
xf86EnableIOPorts failure. Now I have no idea why or how this is happening. I've seen a range of people complianing that it's caused by SELinux to AppArmor but I'm using neither. I assume due to this error, it fallsback to modesetting and then calls X's internal VGAArbiter mess which commits suicide for unknown reasons.