Megjavult volna a Xorg?

Volt egy igen csúnya bug Fedora 25-ön. Ez regresszió, korábban jó volt. Nem jeleztem a fejlesztőknek a bugot, mert még magyarul is csak körülírni tudom, ráadásul fene tudja, hogy a nouveau kernel driver-ben, a userspace-ben, a Xorgban, mesa-ban, vagy hol van a hiba.

A jelenség az volt, hogy 3D-s képernyővédő vagy a Compiz effekt megfagy a képernyőn. A gép stabilan működik tovább, tehát például netrádió szól tovább, épp csak a kép merevedett ki. Ugyanakkor az egér kurzor annak megfelelően alakult át, ami a nem látható, elvileg helyes képnek megfeleően alakulna. Tehát például egy link fölött ujjacskává alakult. Épp csak a képernyőn nem volt a böngésző, bár annak kellett volna lennie. A workaround az volt, hogy Ctrl-Alt-F2-vel egy pillanatra konzolra váltottam, majd vissza a grafikus felületre, s ettől magához tért az X, immáron azt mutatta a monitoron, amit kellett volna.

Frissítettem 1.19.1-es verzióra (xorg-x11-server-Xorg-1.19.1-1.fc25.x86_64), s azt vettem észre, hogy nem fagyott szét a képernyővédő, a Compizzal desktopot váltottam jó párszor, az sem halt el.

Nahát, hol tart már a technika, egy számítógép képes a monitoron grafikus tartalom megjelenítésére! :-/

Hozzászólások

Neked még egyszerű volt a workaround!
Nekem minden nap virtuálisan logózni kell a monitorjaimmal.

Elvileg a bal oldali lenne az elsődleges monitorom, de:
- A bootolás a jobb oldalin megy
- A bejelentkezés a bal oldalin
- A legtöbb progi a bal oldalin jelenik meg alapból, de pl. a wine-al indított programok a jobbon. Így ha játszani akarok minden monitort disabled-re kell állítanom.
- Ha enabledre állítom, akkor összekeveri a sorrendet, újra egymás mellé kell húzogatni őket (KDE monitor beállítások)

Tarthatna már ott is a tudomány, hogy fixen be lehessen állítani melyik monitor az elsődleges és ott történjen alapból minden esemény!

KDE-t nem ismerem közelről, de Fedorán Xfce-t használva évek óta gond nélkül megy a több monitoros üzemmód. Bejelentkezés azon a monitoron, amelyikre az egeret húzod, tehát még utánad is megy. :) Az, hogy melyik legyen bal és melyik jobb oldalon, xrandr-ral cserélgethető. Csak egy nyúlfarknyi script és akár hotkey-re teheted. Bár nem túl életszerű, hogy otthoni porolgatást követően felcseréled a monitoraidat. :)

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Itt az a gond, hogy:
A VGA kártyának három fajta kimenete van: DVI, VGA, HDMI
Az elsődleges monitorom a DVI-re van dugva, viszont ha van valami a VGA-n is, akkor a kártya a VGA kimenetet használja defaultnak. Ez persze a boot pillanatától hatással van a Linuxra.
És ez tesz be az egész rendszernek, hogy én a DVI-t próbálom kikényszeríteni elsődlegesnek és a VGA-t másodlagosnak.
A HDMI-t pedig harmadlagosnak, amire a TV van dugva :) Bár ez utóbbival legalább nincs gond!

Az most már oké, hogy a bejelentkezés a DVI-s monitoron jelenik meg (igazából mindhármon, csak a DVI-sen van a fókusz) és a progik is azon indulnak el, csak az átkozott Wine-al indított játékok indulnak alapból a VGA kimenetre kötött monitoron...

Mi az oprendszer? Öcsémnek csináltam olyat Fedorán, hogy egy VGA kártya, egyik monitor analóg VGA kimeneten, másik DVI-on. De működik két DVI-jal is.

Találtam magamnál egy /usr/local/bin/dualmonitor scriptet, évekkel ezelőtt írtam:

#!/bin/bash

# statically swapping monitors:
#
# echo 1 >/etc/swapmonitor.conf
# dualmonitor

CONNECTED=`xrandr -q | sed -n '/ connected/ {s/ .*//; p;}' | xargs echo`
MONITORS=`wc -w <<<"$CONNECTED"`
[ $MONITORS -ne 2 ] && exit 0
CONFFILE="/etc/swapmonitor.conf"
read LEFT RIGHT <<<"$CONNECTED"
if read <"$CONFFILE" &>/dev/null && [ x"$REPLY" = x'1' ]; then
    tmp="$LEFT"
    LEFT="$RIGHT"
    RIGHT="$tmp"
fi
xrandr --output "$LEFT" --auto --output "$RIGHT" --auto --right-of "$LEFT"
exit 0

Amúgy mit jelent az, hogy elsődleges? Bármelyik kimenetet tudja használni a Xorg.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Manjaro

A kimenetek működnek, akár egyszerre mindhárom. A sorrend is jó. Ezzel nincs is baj.
Az elsődleges az lenne, amin a VGA kártya alapból megjeleníti a dolgokat, kezdve a BIOS-al.
Sajnos ha van a VGA portra kötve monitor, akkor ott jeleníti meg a képet. Ha nincs, akkor a DVI-n.
És ezt max a kártya firmwarejében tudnám átírni szerintem, abba meg nem akarok belekutyulni :)

Szoftveresen próbálom korrigálni a dolgot, több kevesebb sikerrel.
Azt még csak elviselem, hogy a boot folyamatot nem látom, ha a másodlagos (hardveresen az elsődleges) monitor ki van kapcsolva, mert SSD-ről 5 sec alatt bootol a rendszer. De hogy x alkalmazás kvázi leszarja, hogy primary-nek van a DVI beállítva, az már gáz.

Épp kérdezni akartam, hogy nem mindegy, hogy BIOS setup alkalmával enyhén jobbra vagy balra nézel? Aztán olvasom tovább, hogy ki szoktad kapcsolni a monitort. Mégis miért? Miért használsz dual monitoros elrendezést, ha kikapcsolod azt? A fogyasztás nem érv, mert ha nem kap a monitor szinkronjelet, kikapcsolja magát. Lényegében felesleges a kikapcsoló gomb a monitorokra. Az egyedüli célja, hogy bizonyos esetekben akkor is meg lehessen szüntetni a kijelzést, ha van szinkronjel. Két ilyen esetet tudok mondani. Valaki áll az ember mögött, s a monitoron személyes tartalom van, amit nem kellene látnia. A másik, hogy online rádiót hallgat az ember lefekvés után, beállítja a gépet, hogy kapcsoljon ki egy óra múlva, az erősítő szintén, de kellemetlen, ha a monitor bevilágítja a szobát.

Ha nem kapcsolnád ki a monitort, nem lenne ilyen gondod. Amúgy a problémára: ha az a bajod, hogy az analóg VGA az elsődleges, s az rossz oldalon van, cseréld meg a monitorokat, vagy a kábelezést, tehát amelyik eddig DVI-jal csatlakozott, csatlakozzon analóg VGA-val és viszont. Ettől ugyan felcserélődik a bal és jobb oldal, de ott a scriptem, megmutattam, hogyan tudod visszacserélni a bal és jobb oldalakat.

Az a vad gondolatod honnan jött, hogy nem egyforma monitorokból csinálsz dual monitoros rendszert?

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

A BIOS és a boot valóban mindegy :)

Szoktam a DVI-re kötött monitoron is filmet nézni, nem csak a TV-n, illetve játszani is, ekkor zavaró hogy mellette is van kép a másik monitoron.
Legtöbbször melóhoz használom a két monitort, egyéb esetben csak zavaró ha megy.

Ha nem megy a 2. monitor, akkor is megjelenhet egy újonnan elindított progi ott, és szerencsére KDE-ben egy klikkel át lehet hozni úgy, hogy ne kelljen bekapcsolni, de sokszor nem kapcsolok, hogy mi van és várom a progira, miközben az már ott van a másik monitoron :D
Szóval apró kényelmi dolog igazából.

A kábel felcserélés megoldaná a gondot, csak ha már van DVI, akkor legyen jobb minőségű a kép azon a monitoron amit biztos egész nap bámulok.

Megoldás úgy is az lesz, hogy új VGA-t veszek, amin már csak DVI portok vannak, mert már a grafikai teljesítmény miatt is megérett a jelenlegi a váltásra.

Miért nem egyforma a két monitor?
Mert a másodlagos a régi monitorom, az elsődleges meg a legújabb. Tehát abból építkezem ami van/megmaradt :)
De gondoltam rá hogy veszek még egy ilyen monitort, csak már nehéz találni ilyen típust. Akkor is kifutó termék volt amikor vettem :)

Aha, így már körvonalazódik. Mondok még dolgokat. Az xrandr segítségével működés közben ki/be lehet kapcsolni az egyik vagy másik monitort, lehet dual monitoros megoldást csinálni, megcserélni a kettőt. Az alkalmazásra is van ötletem, bár nem próbáltam még. A DISPLAY változó nem erre való? A kettőspont után display, utána pont, utána screen. Tehát :0.0 vagy :0.1. Viszont nem kizárt, hogy ez egyetlen virtuális screen, akkor mégsem fog ez így menni. Egy;bk;nt ablakot pozícionálva lehet elhelyezni, kipróbáltam, működik:

xfce4-terminal --geometry +200+300

A +0+0 a bal felső sarok.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Elég szar a helyzet.
Majdnem müködik amit írtál, de nem mindig. Pl egy terminált tudok így indítani, de:
Ha a steammel indítok egy játékot az mindig a másik monitoron jelenik meg.
De van olyan játék, ami TV-n.
De olyan is van ami az elsődlegesen, ahogy kell :D

Szóval egyszerűen egy káosz az egész.