Ratkaistu Linux Mint sekoittaa joka bootissa näyttöjen järjestyksen

Liittynyt
18.10.2016
Viestejä
1 362
Elikkä jokaisen käynnistyksen yhteydessä Linux Mint sekoittaa näyttöjen järjestyksen ja laittaa väärän näytön oletusnäytöksi.

Koneen ja Linuxin tiedot:

Graphics: Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics driver: i915 v: kernel
Device-2: NVIDIA GP104 [GeForce GTX 1070 Ti] driver: nvidia v: 470.57.02
Display: x11 server: X.Org 1.20.9 driver: nvidia resolution: 1920x1080~60Hz, 1920x1080~60Hz
OpenGL: renderer: NVIDIA GeForce GTX 1070 Ti/PCIe/SSE2 v: 4.6.0 NVIDIA 470.5

System: Host: koti-mint Kernel: 5.4.0-80-generic x86_64 bits: 64 Desktop: Cinnamon 5.0.5 Distro: Linux Mint 20.2 Uma

Mikä neuvoksi?
 
Liittynyt
16.03.2020
Viestejä
323
Ilmeisesti näyttöjen järjestys pitäisi muuttaa /etc/X11/xorg.conf tai muuhun tiedostoon suoraan su-käyttäjänä vaikka picolla tai vi:llä. Mahdollisesti tiedosto joka näyttöjä hallitsee on kirjoitussuojattu tavalliselta käyttäjältä. Tai jotain.
 
Liittynyt
18.03.2017
Viestejä
509
Katso /var/log/Xorg.0.log-tiedostosta minkä CRT- tai DFP-tunnuksen Nvidian ajuri antaa millekin näytölle. Etsitään siis vaikka tällaisia rivejä:
Koodi:
[    39.644] (--) NVIDIA(GPU-0): Lenovo Group Limited LEN P27u-10 (DFP-0): connected
...
[    39.693] (--) NVIDIA(GPU-0): SONY TV (DFP-2): connected
Sitten kun tiedetään mitä tunnusta mikäkin näyttö käyttää, tehdään /etc/X11/xorg.conf.d/ -hakemistoon tiedosto, jonka nimi voi olla vaikka "nvidia.conf" (kunhan nimen pääte on .conf).

Sen sisällöksi jotain tämän tapaista:

Koodi:
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "1:0:0"    #katso lspci-listauksesta Nvidian näytönohjaimen väylä-ID tähän

    # Ensimmäinen tässä listassa mainittu näyttö tulee ensisijaiseksi
    Option         "nvidiaXineramaInfoOrder" "DFP-2, DFP-0"
    
    # Kun nyt ollaan tässä, voidaan samalla valmiiksi kertoa miten näytöt on asemoitu toisiinsa nähden
    Option         "MetaModeOrientation" "DFP-0 RightOf DFP-2"

EndSection
Näillä asetuksilla siis kerrottaisiin että halutaan käyttää DFP-2:ta ensisijaisena näyttönä, ja näytöt ovat pöydällä siten että DFP-2 on vasemmalla ja DFP-0 oikealla.
 
Liittynyt
18.10.2016
Viestejä
1 362
@telcoM

/var/log/Xorg.0.log antaa seuraavaa tulosta:

[ 43.183] (--) NVIDIA(GPU-0): Samsung S24C450 (DFP-0): connected
[ 43.183] (--) NVIDIA(GPU-0): Eizo FG2421 (DFP-4): connected

lspci tulos:
01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070 Ti] (rev a1)

/etc/X11/xorg.conf.d/ hakemistoa ei löydy.
 
Liittynyt
18.03.2017
Viestejä
509
Hmm. Onko sitten /etc/X11/xorg.conf tiedostoa olemassa? Voit etsiä sitä komennolla:
Koodi:
find / -name 'xorg.conf*'
Myös /var/log/Xorg.0.log-tiedoston alkupäässä on yleensä vihje siitä mistä X-serveri etsii konfiguraatiotiedostojaan, tähän tapaan:
Koodi:
[    19.756] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Jul 27 07:18:07 2021
[    19.757] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    19.757] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
Eli tuo kertoo että tuon nvidia.conf-tiedoston voisi lykätä /etc/X11/xorg.conf.d:hen tai yhtä hyvin /usr/share/X11/xorg.conf.d:hen, joskin hyvä tapa on pitää omat puukotukset /etc:ssä ja jättää /usr/share:n alaiset asiat pakettienhallinnan hoitoon.

Tuon aikaisemmassa viestissä esittämäni lisäyksen voi toki tehdä myös /etc/X11/xorg.conf-tiedostoon jos se on olemassa: sieltä pitää vain löytää oikeaan näytönohjaimeen viittaava Device-lohko ja lisätä sinne nuo kaksi Option-alkuista riviä: jos käytössä on "vanhan koulukunnan" täysimittainen xorg.conf-tiedosto, kaikki muu tarvittava pitäisi ollakin siellä jo valmiina.

(Klassinen tapa X-serverin konfiguroimiseen on ajaa "X -configure" tai muu vastaava työkalu, joka tunnistaa sillä hetkellä käytössä olevan näytönohjaimen, näytön, näppäimistön, hiiren ym. ja tekee niistä räätälöidyn xorg.conf-tiedoston pohjan. Uudempi tapa on antaa X-serverin tunnistaa useimmat asiat käynnistyshetkellä automaattisesti joka kerta (udev:in avustuksella) ja kirjoittaa vain tarvittavat määrityslohkot xorg.conf.d-hakemistoon erillisiin tiedostoihin.)

Logitiedosto-otteestasi selvisi että sinulla näytöt ovat DFP-0 (Samsung) ja DFP-4 (Eizo). BusID:si on X-serverin käyttämässä muodossa 1:0:0 eli ihan sama kuin esimerkissäni.
 
Liittynyt
18.10.2016
Viestejä
1 362
@telcoM

Option "nvidiaXineramaInfoOrder" "DFP-4, DFP-0"
Option "MetaModeOrientation" "DFP-4 RightOf DFP-0"

Lisäsin ylläolevat rivit xorg.conf tiedostoon joka sijaitsee /etc/X11/ hakemistossa.

Alla koko xorg.conf tiedoston sisältö:


Ei toimi vieläkään.
 
Liittynyt
18.03.2017
Viestejä
509
Jaaha, tuolla xorg.conf:in alussa ServerLayout-osassa on Option "Xinerama" "0" eli Xinerama on ilmeisesti pois päältä. Jos ajat "xdpyinfo | grep XINERAMA", tuleeko vastaukseksi yhtään mitään?

Ennen kuin Xinerama-laajennus kehitettiin, Nvidian näytönohjainajurit toteuttivat tällaiset monen näytön ratkaisut näytönohjaimen sisällä, teeskentelemällä että useammasta fyysisestä näytöstä muodostui yksi iso suorakulmainen näyttöpinta, jonka sovellukset näkivät mukamas yhtenä näyttönä. Tästä seurasi erinäisiä typeryyksiä, esim. se että "keskelle näyttöä" avattu dialogi-ikkuna saattoi tupsahtaa juuri kahden fyysisen näytön rajalle, niin että se oli puoliksi kummassakin.

Tätä ongelmaa ratkomaan kehitettiin Xinerama-protokollalaajennus, joka antaa ikkunamanagereille ja muille asiasta kiinnostuneille sovelluksille tiedon montako niitä fyysisiä näyttöjä oikeasti on ja miten ne on järjestetty, jotta ikkunamanageri voi sijoitella ikkunat fiksusti, sekä mahdollistaa fyysisten näyttöjen resoluution, sijoittelun ym. muutokset lennossa.

Mutta näyttää siltä että tuo nvidia-settings-työkalun tuottama xorg.conf-tiedosto yrittää tehdä asioita edelleenkin vanhalla tavalla, ainakin osittain. Kun soppaan lisätään Xinerama-laajennusta ymmärtävä työpöytäympäristö tai ikkunamanageri joka yrittää itse ylläpitää käyttäjäkohtaisia näyttöasetuksia, sotku on valmis.

Itse lähtisin perkaamaan tuota ensin yksinkertaistamalla xorg.conf-tiedoston niin pitkälle kuin suinkin mahdollista. Toki ensin nykyisestä tiedostosta varmuuskopio talteen, sitten ehkä xorg.conf-tiedostoksi jotain tämän tapaista:
Koodi:
Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 1070 Ti"
    Option         "nvidiaXineramaInfoOrder" "DFP-4, DFP-0"
    Option         "MetaModeOrientation" "DFP-4 RightOf DFP-0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
Modernin X-serverin ja Linux-jakelun kanssa tuon pitäisi riittää ottamaan Nvidia-ajuri käyttöön, ja kaiken lopun pitäisi tunnistua automaattisesti.

Kannattaa sitten ottaa käyttöön seuraavanlainen jaottelu:

- xorg.conf-tiedostossa tehdyt määritykset tulevat voimaan graafisessa login-ruudussa sekä oletusarvoiksi käyttäjille jotka eivät ole koskaan ennen kirjautuneet X11-käyttöliittymään.

- työpöytäympäristö tai ikkunamanageri todennäköisesti yrittää ylläpitää käyttäjäkohtaiset Xinerama-näyttöasetukset erikseen kullekin käyttäjälle, ja aikaisempien säätöjesi jäljiltä ikkunamanagerin muistikuva sinun tunnuksellesi voimassa olevista asetuksista saattaa olla väärä. Eli jos kirjautumisen jälkeen väärä näyttö on ensisijaisena, käytä ensisijaisesti työpöytäympäristön omaa ohjauspaneelia asian korjaamiseen, niin työpöytäympäristö muistaa asetuksen eikä yritä seuraavalla kirjautumiskerralla vääntää sitä takaisin vanhaan tilanteeseen.

Ja jos lopputulos on näin parempi kuin nvidia-settings -työkalun kautta tehtynä, sitten pannaan muistiin että siihen nvidia-settings:in "Save to X Configuration File"-nappulaan ei sitten tämän jälkeen kosketa, vaan jos login-ruudun/uusien käyttäjien asetuksia on tarpeen muuttaa niin ne muutetaan sitten käsin xorg.conf:ia muokkaamalla. Prkl.
 
Liittynyt
18.10.2016
Viestejä
1 362
Komento "xdpyinfo | grep XINERAMA" antaa seuraavan vastausen:
XINERAMA
XINERAMA


Kokeilen tuota xorg.conf tiedoston muokkausta. EDIT! Eipä toimi vieläkään.
 
Liittynyt
18.10.2016
Viestejä
1 362
Loin /etc/init.d/ kansioon startxrandr.sh scriptin joka tekee seuraavaa:

#!/bin/sh
xrandr --auto --output DVI-D-0 --mode 1920x1080 --left-of DP-2

Vähän rautalankamainen ratkaisu mutta korjasi ongelman. Kiitos kaikille vastauksista!
 
Toggle Sidebar

Statistiikka

Viestiketjut
240 809
Viestejä
4 204 529
Jäsenet
70 989
Uusin jäsen
BGZ

Hinta.fi

Ylös Bottom