Obiective
- Scopul acestei postări: Aflați ce
xorg.conf
configurațiile sunt necesare pentru a folosi fiecare dintre monitoarele mele duale ca un ecran X separat.
- Scopul intermediar pentru această postare: Aflați de ce nu pot începe X cu manualul meu
xorg.conf
configurație.
- Valoarea succesului: când pot lansa
xeyes
sau alte aplicații X11 într-un script care specifică pe care dintre monitoarele mele apar.
- Scopul final: Pentru a porni containerele LXC GUI (adică un desktop complet) astfel încât să apară pe ecran complet pe un monitor ales. Doresc să pot partaja o tastatură și să pot muta un cursor între monitoare, dar să nu muți ferestrele.
Sistemul meu
- Ubuntu Server 20.04, placa video Nvidia GT 710. Șoferul este
nvidia-dkms-470-server
. Conexiunile pe care le folosesc sunt HDMI și DVI.
- Există și alte plăci video prezente pe sistem, dar sunt aliasate și vor fi utilizate în scopuri de trecere. Nu văd niciun motiv pentru care acest lucru ar trebui să fie relevant, dar driverele video m-au surprins înainte.
Comportament asteptat:
- Când alerg
startx &
, X ar trebui să pornească normal și apoi ar trebui să pot deschide xeyes
pe ecranul 0 sau 1 folosind DISPLAY=:0.0
sau DISPLAY=:0,1
respectiv.
Comportament real:
Nu pot porni X, cu „niciun ecran găsit”.
Judecând după bușteni, xf86OpenConsole
s-ar putea să aibă legătură cu problema, dar nu am idee despre ce este asta.
Aceasta este Xorg.0.log
dupa ce incerc sudo startx &
.
[ 3083.851] (II) Modul nvidia: vendor="NVIDIA Corporation"
[ 3083.851] compilat pentru 1.6.99.901, versiunea modulului = 1.0.0
[ 3083.851] Clasa modul: Driver video X.Org
[ 3083.851] (II) UnloadModule: „nvidia”
[ 3083.851] (II) Descărcarea nvidia
[ 3083.851] (II) Nu s-a putut încărca modulul „nvidia” (deja încărcat, 0)
[ 3083.851] (II) LoadModule: "nouveau"
[ 3083.852] (WW) Atenție, modulul nouveau nu a putut fi deschis
[ 3083.852] (EE) Nu s-a putut încărca modulul „nouveau” (modulul nu există, 0)
[ 3083.852] (II) LoadModule: „modetting”
[ 3083.852] (II) Se încarcă /usr/lib/xorg/modules/drivers/modesetting_drv.so
[ 3083.854] (II) Setare mod modul: vendor="X.Org Foundation"
[ 3083.854] compilat pentru 1.20.11, versiunea modulului = 1.20.11
[ 3083.854] Clasa modul: Driver video X.Org
[ 3083.854] Clasa ABI: Driver video X.Org, versiunea 24.1
[ 3083.854] (II) LoadModule: „fbdev”
[ 3083.854] (II) Se încarcă /usr/lib/xorg/modules/drivers/fbdev_drv.so
[ 3083.855] (II) Modulul fbdev: vendor="X.Org Foundation"
[ 3083.855] compilat pentru 1.20.1, versiunea modulului = 0.5.0
[ 3083.855] Clasa modul: Driver video X.Org
[ 3083.855] Clasa ABI: Driver video X.Org, versiunea 24.0
[ 3083.855] (II) LoadModule: "vesa"
[ 3083.855] (II) Se încarcă /usr/lib/xorg/modules/drivers/vesa_drv.so
[ 3083.856] (II) Modulul vesa: vendor="X.Org Foundation"
[ 3083.856] compilat pentru 1.20.4, versiunea modulului = 2.4.0
[ 3083.856] Clasa modul: Driver video X.Org
[ 3083.856] Clasa ABI: Driver video X.Org, versiunea 24.0
[ 3083.856] (II) Driver NVIDIA dlloader X 470.82.01 miercuri 27 octombrie 21:23:16 UTC 2021
[ 3083.856] (II) Driver unificat NVIDIA pentru toate GPU-urile NVIDIA acceptate
[ 3083.856] (II) setare mod: Driver pentru setarea modului Drivere Kernel: kms
[ 3083.856] (II) FBDEV: driver pentru framebuffer: fbdev
[ 3083.856] (II) VESA: driver pentru chipset-uri VESA: vesa
[ 3083.856] (WW) xf86OpenConsole: setpgid a eșuat: operațiunea nu este permisă
[ 3083.856] (WW) xf86OpenConsole: setsid a eșuat: operațiunea nu este permisă
[ 3083.856] (WW) Revenirea la vechea metodă de sondă pentru setarea modului
[ 3083.856] (WW) Revenirea la vechea metodă de sondă pentru fbdev
[ 3083.856] (WW) Revenirea la vechea metodă de sondă pentru setarea modului
[ 3083.856] (WW) Revenirea la vechea metodă de sondă pentru fbdev
[ 3083.856] (EE) Niciun dispozitiv detectat.
[ 3083.856] (EE)
Eroare fatală de server:
[ 3083.856] (EE) nu au fost găsite ecrane (EE)
[ 3083.856] (EE)
Vă rugăm să consultați suportul Fundației X.Org
la http://wiki.x.org
- Dacă elimin
xorg.conf
, X pornește normal, dar fără două ecrane X (doar Ecranul 0
), așa cum arată rezultatul xrandr:
~$ sudo xrandr -q
Ecran 0: minim 8 x 8, curent 4160 x 1440, maxim 16384 x 16384
VGA-0 primar deconectat (normal stânga inversată dreapta x axa y axa)
DVI-D-0 conectat 1600x1200+0+0 (normal stânga inversată dreapta x axa y axa) 367mm x 275mm
1600x1200 60,00*+
1280x1024 75,02 60,02
1152x864 75,00
1024x768 75,03 60,00
800x600 75,00 60,32
640x480 75,00 59,94
HDMI-0 conectat 2560x1440+1600+0 (normal stânga inversată dreapta x axa y axa) 597 mm x 336 mm
2560x1440 59,95*+
2048x1152 60,00
1920x1440 60,00
1920x1200 59,88
1920x1080 60,00 59,94 50,00 60,05 60,00 50,04
1680x1050 59,95
1440x900 59,89
1440x576 50,00
1440x480 59,94
1280x1024 75,02 60,02
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
Primele încercări
- Mi-am făcut
xorg.conf
bazat pe acest lucru: https://download.nvidia.com/XFree86/Linux-x86_64/304.137/README/configmultxscreens.html
- Bănuiesc că mai am nevoie de ceva în secțiunea de monitoare
xorg.conf
, dar nu sunt sigur ce este.
- Simt că monitoarele ar trebui să facă referire la
Ecran
definiții
într-un fel, dar presupunerile mele aleatorii despre cum să fac asta au fost
zadarnic.
- Îmi este greu să adaptez
xorg.conf
exemple pe care le-am găsit la circumstanțele mele specifice. Nu știu ce este obligatoriu pe baza hardware-ului sau a distribuției/versiunii mele.
/etc/X11/xorg.conf
:
Secțiunea „Dispozitiv”
Identificator „nvidia0”
Driver „nvidia”
BusID „PCI:44:00:0”
Ecranul 0
EndSection
Secțiunea „Dispozitiv”
Identificator „nvidia1”
Driver „nvidia”
BusID „PCI:44:0:0”
Ecranul 1
EndSection
Secțiunea „Ecran”
Identificator „Ecran0”
Dispozitiv „nvidia0”
Monitorizați „Monitor0”
Adâncime implicită 24
Subsecțiunea „Afișare”
Adâncime 24
Moduri „1600x1200” „1024x768” „800x600” „640x480”
EndSubsection
EndSection
Secțiunea „Ecran”
Identificator „Ecran1”
Dispozitiv „nvidia1”
Monitorizați „Monitor1”
Adâncime implicită 24
Subsecțiunea „Afișare”
Adâncime 24
Moduri „1600x1200” „1024x768” „800x600” „640x480”
EndSubsection
EndSection
Secțiunea „Monitor”
Identificator „Monitor0”
EndSection
Secțiunea „Monitor”
Identificator „Monitor1”
Opțiunea „LeftOf” „HDMI-1”
EndSection
Secțiunea „ServerLayout”
Identificator „Aspect principal”
Ecran 0 „Ecran0”
Ecranul 1 „Ecran1” din stânga „Ecran0”
EndSection
Actualizare - succes parțial:
- Reconfigurat
xorg.conf
folosind nvidia-xconfig
.
- Acum pot începe X
- Nicio bucurie în ceea ce privește obținerea efectivă a unui X Screen pentru fiecare monitor.
- Actualul meu
xorg.conf
:
# nvidia-xconfig: fișier de configurare X generat de nvidia-xconfig
# nvidia-xconfig: versiunea 470.82.01
Secțiunea „ServerLayout”
Identificator „Layout0”
Ecran 0 „Ecran0” 0 0
InputDevice „Keyboard0” „CoreKeyboard”
Dispozitiv de intrare „Mouse0” „CorePointer”
EndSection
Secțiunea „Fișiere”
EndSection
Secțiunea „InputDevice”
# generat din implicit
Identificator „Mouse0”
„Șoarece” șofer
Opțiunea „Protocol” „auto”
Opțiunea „Dispozitiv” „/dev/psaux”
Opțiunea „Emulate3Buttons” „nu”
Opțiunea „ZAxisMapping” „4 5”
EndSection
Secțiunea „InputDevice”
# generat din implicit
Identificator „Keyboard0”
Driver „kbd”
EndSection
Secțiunea „Monitor”
Identificator „Monitor0”
Nume furnizor „Necunoscut”
Nume model „Necunoscut”
Opțiunea „DPMS”
EndSection
Secțiunea „Dispozitiv”
Identificator „Dispozitiv0”
Driver „nvidia”
Ecranul 0
Nume furnizor „NVIDIA Corporation”
Opțiunea „Monitor-DVI-D-0” „DVI”
EndSection
Secțiunea „Ecran”
Identificator „Ecran0”
Dispozitiv „Dispozitiv0”
Monitorizați „Monitor0”
Adâncime implicită 24
Subsecțiunea „Afișare”
Adâncime 24
EndSubSection
EndSection
Secțiunea „Monitor”
Identificator „Monitor1”
Nume furnizor „Necunoscut”
Nume model „Necunoscut”
Opțiunea „DPMS”
EndSection
Secțiunea „Dispozitiv”
Identificator „Dispozitiv1”
Driver „nvidia”
Ecranul 1
Nume furnizor „NVIDIA Corporation”
Opțiunea „Monitor-HDMI-0” „HDMI”
EndSection
Secțiunea „Ecran”
Identificator „Ecran1”
Dispozitiv „Dispozitiv1”
Monitorizați „Monitor1”
Adâncime implicită 24
Subsecțiunea „Afișare”
Adâncime 24
EndSubSection
EndSection
- Dar
xrandr
încă arată doar Ecran0
~$ sudo xrandr -q
Ecran 0: minim 8 x 8, curent 4160 x 1440, maxim 16384 x 16384
VGA-0 primar deconectat (normal stânga inversată dreapta x axa y axa)
DVI-D-0 conectat 1600x1200+0+0 (normal stânga inversată dreapta x axa y axa) 367mm x 275mm
1600x1200 60,00*+
1280x1024 75,02 60,02
1152x864 75,00
1024x768 75,03 60,00
800x600 75,00 60,32
640x480 75,00 59,94
HDMI-0 conectat 2560x1440+1600+0 (normal stânga inversată dreapta x axa y axa) 597 mm x 336 mm
2560x1440 59,95*+
2048x1152 60,00
1920x1440 60,00
1920x1200 59,88
1920x1080 60,00 59,94 50,00 60,05 60,00 50,04
1680x1050 59,95
1440x900 59,89
1440x576 50,00
1440x480 59,94
1280x1024 75,02 60,02
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
Editare: O notă suplimentară: am încercat să furnizez ID-urile PCI în secțiunea „Dispozitiv”, cum ar fi BusID „PCI:44:0:0”
. Aceasta pare să fie de fapt cauza problemei mele anterioare cu X care nu începe cu:
[ 229.284] (WW) xf86OpenConsole: setpgid a eșuat: operațiunea nu este permisă
[ 229.284] (WW) xf86OpenConsole: setsid eșuat: operațiunea nu este permisă
Inca o actualizare
Am scos PCI-ul BusID
specificația din Dispozitiv
sectiune de xorg.conf
, deoarece din anumite motive m-a împiedicat să încep X cu xf86OpenConsole
erorile mentionate mai sus.
Cu toate acestea, am observat că documentația mai recentă a Nvidias sugerează utilizarea unui ServerLayout
secțiune. Am adăugat al doilea ecran la această secțiune și a schimbat rezultatul xrandr
, dar nu așa cum mi-am dorit. Încă menționează doar Screen0, dar acum nu există informații despre monitorul meu HDMI (deși am un cursor pe el). Aceasta este acum rezultatul xrandr
:
~$ sudo xrandr -q
Ecran 0: minim 8 x 8, curent 1600 x 1200, maxim 16384 x 16384
VGA-0 primar deconectat (normal stânga inversată dreapta x axa y axa)
DVI-D-0 conectat 1600x1200+0+0 (normal stânga inversată dreapta x axa y axa) 367mm x 275mm
1600x1200 60,00*+
1280x1024 75,02 60,02
1152x864 75,00
1024x768 75,03 60,00
800x600 75,00 60,32
640x480 75,00 59,94
Si al meu xorg.conf
in prezent arata asa:
Secțiunea „ServerLayout”
Identificator „Layout0”
Ecran 0 „Ecran0” 0 0
Ecran 1 „Ecran1” dreapta „Ecran0”
InputDevice „Keyboard0” „CoreKeyboard”
Dispozitiv de intrare „Mouse0” „CorePointer”
EndSection
Secțiunea „Fișiere”
EndSection
Secțiunea „InputDevice”
# generat din implicit
Identificator „Mouse0”
„Șoarece” șofer
Opțiunea „Protocol” „auto”
Opțiunea „Dispozitiv” „/dev/psaux”
Opțiunea „Emulate3Buttons” „nu”
Opțiunea „ZAxisMapping” „4 5”
EndSection
Secțiunea „InputDevice”
# generat din implicit
Identificator „Keyboard0”
Driver „kbd”
EndSection
Secțiunea „Monitor”
Identificator „Monitor0”
Nume furnizor „Necunoscut”
Nume model „Necunoscut”
Opțiunea „DPMS” „DVI”
EndSection
Secțiunea „Dispozitiv”
Identificator „Dispozitiv0”
Driver „nvidia”
Ecranul 0
Nume furnizor „NVIDIA Corporation”
Opțiunea „Monitor-DVI-D-0” „DVI”
EndSection
Secțiunea „Ecran”
Identificator „Ecran0”
Dispozitiv „Dispozitiv0”
Monitorizați „Monitor0”
Adâncime implicită 24
Subsecțiunea „Afișare”
Adâncime 24
EndSubSection
EndSection
Secțiunea „Monitor”
Identificator „Monitor1”
Nume furnizor „Necunoscut”
Nume model „Necunoscut”
Opțiunea „DPMS” „HDMI”
EndSection
Secțiunea „Dispozitiv”
Identificator „Dispozitiv1”
Driver „nvidia”
Ecranul 1
Nume furnizor „NVIDIA Corporation”
Opțiunea „Monitor-HDMI-0” „HDMI”
EndSection
Secțiunea „Ecran”
Identificator „Ecran1”
Dispozitiv „Dispozitiv1”
Monitorizați „Monitor1”
Adâncime implicită 24
Subsecțiunea „Afișare”
Adâncime 24
EndSubSection
EndSection
Edit: Încă un lucru: am încercat să adaug Opțiunea „ZaphodHeads”
la secțiunile mele Dispozitiv, dar asta nu a ajutat. Poate că nu este ceea ce mi-am dorit, sau poate nu l-am configurat corect, nu știu.