0

I'm running Ubuntu 19.04 (Disco) on a machine with two video cards and three monitors, an NVidia 1080ti in the top slot and a Vega 64 in the bottom slot. Two of the monitors are plugged into the display ports of the Vega 64, one HDMI in the NVidia 1080ti.

When I let Ubuntu autodetect the graphics setup (with no xorg.conf file), then Gnome extends across all three monitors and both video cards just fine, but it only renders on one of them (in other words, anything run on the display ports is using the nvidia or nouveau driver - like the rendering is being passed through).

So I came up with an xorg.conf file (below) that does close to what I need but has a few problems. The biggest one is that when I start an xterm on one of the other screens DISPLAY=:0.1 xterm, the mouse works just fine, but the keyboard doesn't work. This file is very similar to what Xorg -configure generates. What am I doing wrong? How do I get the keyboard to work in windows on Screen1 or Screen2?

Section "InputDevice"
    Identifier "keyboard0"
    Option "Device" "/dev/input/event10"
    Option "Xinerama" "On"
    Driver "evdev"
EndSection

Section "InputDevice"
    Identifier "mouse0"  
    Option "Device" "/dev/input/event4"
    Driver "evdev"
EndSection

Section "Monitor"
    Identifier "HDMI-1"
EndSection

Section "Monitor"
    Identifier "DisplayPort-3"
EndSection

Section "Monitor"
    Identifier "DisplayPort-4"
EndSection

Section "Device"
    Identifier "Device1"
    Driver "amdgpu"
    BusID "PCI:41:00"
EndSection

Section "Device"
    Identifier "Device0"
    Driver "nouveau"
    BusID "PCI:38:00"
EndSection

Section "Screen"
  Identifier "Screen0"
  Device "Device0"
  Monitor "HDMI-1"
EndSection

Section "Screen"
  Identifier "Screen1"
  Device "Device1"
  Monitor "DisplayPort-3"
EndSection

Section "Screen"
  Identifier "Screen2"
  Device "Device1"
  Monitor "DisplayPort-4"
EndSection

Section "ServerLayout"
  Identifier "seatx"
  Screen 0 "Screen0" 
  Screen 1 "Screen1" LeftOf "Screen0"
  Screen 2 "Screen2" RightOf "Screen0"
  InputDevice "Mouse0" "CorePointer"
  InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerFlags"
  Option "AutoAddGPU" "off"
  Option "AutoAddDevices" "false"
EndSection
  • First step is to look at /var/log/Xorg.*.log to see what the X server is actually doing. – dirkt May 13 '19 at 8:14
  • What is the reason for having two physical video cards? Are you actually trying to achieve a multiseat setup? When you say "no keyboard input on second screen" did you mean "no keyboard input on second seat"? Why use Nouveau instead of the Nvidia driver? You said that two of the monitors are plugged into the Vega. But then two monitors do not have any rendering? There seems to be a little overlap here if Nouveau is an issue with only one HDMI monitor. – ezst036 May 20 '19 at 19:36
  • (ezst036's comment, continued): When you said "but it only renders on one of them", if you are trying to make a multiseat system, did you mean that the login screen(In this case, GDM) only renders on one screen? Are you expecting multiple logins? I am curious if the particular cards work by themselves. In other words, if you hook all three monitors up to one video card and remove the second card. Does everything work(rendering etc) by itself properly as expected on the AMD? Does everything work as expected by itself only on the Nvidia? – Jeff Schaller May 20 '19 at 20:08
  • Forgive me for taking too long to respond. So the eventual goal is a multiseat setup, but for now, I'm only doing a single seat with two cards. With just the AMD card, and nothing else, all three monitors work automatically, so I never tried to build a manual xorg configuration for that. With both cards, after fiddling around with some settings (but I don't know which one), I managed to get auto configuration to work. – Brad May 26 '19 at 15:49
  • And by "work," I mean center HDMI output connected to the NVidia card renders on the NVidia card, and side DisplayPort outputs connected to AMD card render on the AMD card. Before what I was getting was some kind of "pass-through" setup, where the video output displayed, but any 3D rendering was only on the NVidia card, no matter which output. – Brad May 26 '19 at 15:54
0

Thank you for the additional information. It sounds as if you successfully resolved the rendering issue after additional tries, and the keyboard (which is the main headline issue) was not mentioned, so was that resolved as well with your new changes? Multiseat is mainly what I have experience with here and that also appears to be the only unresolved issue so here is my answer:

Since multiseat is your eventual goal I would suggest skipping the xorg.conf file altogether at that time. xorg.conf is the most difficult way to get multiseat working. You said you installed Ubuntu, that comes pre-loaded with systemd which has the loginctl utilities. You can set up seats using loginctl with just a few commands.

To keep this answer clean I'll defer to Debian's wiki "Multi_Seat_Debian_HOWTO" (Which I am an editor) for more in-depth instructions. Ubuntu is based on Debian so its all the same.

Or you can just use my EasySeats program to create the seats.

Hopefully this can be marked as answered/resolved now. I don't have enough reputation to have first asked another solo question as an added comment, unfortunately. I'll check back later just to be sure everything is good.

  • Welcome to Stack Exchange.  Please don’t “defer” answers to external resources.  Post the answer here (imagine that the “HOWTO” document might go away some day).  If you are copying information from an external resource, post a link to it.  If you are the original author of the information, you aren’t required to post the link, but it would be a good idea to do so.  (If you don’t identify yourself as being associated with the HOWTO, people might suspect that you plagiarized it.)   … (Cont’d) – Scott May 29 '19 at 2:39
  • (Cont’d) …  Also, if you’re going to mention your program (and you’re sure it’s relevant, and you’re not just self-promoting), give a brief explanation of how Brad can use it to solve his problem. – Scott May 29 '19 at 2:39
  • loginctl does solve the issue. Ubuntu seems to have automagic multiseat support... I wish I knew how to do that manually as I like to tinker, but if it works, it works. – Brad Jun 2 '19 at 17:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.