PDA

View Full Version : Xorg e EDID


>|HaRRyFocKer|
02-02-2010, 17:36
Miei carissimi, ho un piccolo problema con Xorg e il mio switch VGA. Vi spiego brevemente.
Utilizzo questo switch per il pc e l'xbox su un solo monitor. Ovviamente Archlinux non riconosce l'EDID del monitor e quindi mi manda una risoluzione massima di 1024x768. Se tolgo lo switch e attacco direttamente il monitor tutto funziona perfettamente. Col mio precedente pc, mi creavo l'edid e lo importavo mediante la funzione CustomEdid nella sezione device di Xorg. Ora, col nuovo pc (scheda integrata Intel G41) questa cosa non mi funziona.

Ora lo xorg.conf sembra regolare

Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/100dpi:unscaled"
FontPath "/usr/share/fonts/75dpi:unscaled"
FontPath "/usr/share/fonts/TTF"
FontPath "/usr/share/fonts/Type1"
EndSection

Section "Module"
Load "dbe"
Load "dri2"
Load "dri"
Load "glx"
Load "extmod"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection

Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "NoAccel" # [<bool>]
#Option "SWcursor" # [<bool>]
#Option "ColorKey" # <i>
#Option "CacheLines" # <i>
#Option "Dac6Bit" # [<bool>]
#Option "DRI" # [<bool>]
#Option "NoDDC" # [<bool>]
#Option "ShowCache" # [<bool>]
#Option "XvMCSurfaces" # <i>
#Option "PageFlip" # [<bool>]
Identifier "Card0"
Driver "intel"
VendorName "Intel Corporation"
BoardName "4 Series Chipset Integrated Graphics Controller"
BusID "PCI:0:2:0"
Option "ConnectedMonitor" "DFP-0"
Option "CustomEDID" "DFP-0:/home/marcello/Documenti/edid.bin"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1920x1080" "1024x768"
EndSubSection
EndSection



Nel mio Xorg.0.log mi trovo invece questa riga

(WW) intel(0): Option "CustomEDID" is not used

Ora, come posso sapere perchè salta quest'opzione? Il log non dice altro al riguardo...

Gimli[2BV!2B]
02-02-2010, 19:28
Semplicemente l'opzione CustomEDID non esiste nei driver intel (http://linux.die.net/man/4/intel). In quella man non ho visto opzioni equivalenti.

Non posseggo schede Intel, ma ho letto in giro che XRandr dovrebbe permettere di impostare ciò che ti occorre. (http://www.thinkwiki.org/wiki/Xorg_RandR_1.2)

sacarde
02-02-2010, 20:05
se ho capito bene....

questo edid parametrizza Xorg.conf ?

Gimli[2BV!2B]
02-02-2010, 20:50
EDID: Extended display identification data (http://en.wikipedia.org/wiki/Extended_display_identification_data).

È uno standard VESA che permette al monitor di comunicare alla scheda video informazioni relative ai suoi parametri di funzionamento.

In alcuni casi si trovano periferiche contenenti implementazioni buggate, che risultano quindi rognose da configurare perché rispondono solo alla seconda interrogazione oppure in modo scorretto.

Altro caso comune è quello di >|HaRRyFocKer|: molti switch VGA di fascia bassa non consentono lo scambio di informazioni EDID tra i pc collegati ed il monitor.

Esistono varie strade per impostare manualmente quanto avviene automaticamente grazie all'EDID, come dump binari dei valori del monitor (il suo CustomEDID), modelines (se l'EDID è disattivabile) oppure XRandr o altri programmi binari che permettano di comunicarli direttamente alla scheda video (ricordo di averne usato un altro, specifico per una scheda Intel, anni fa in un portatile di un amico. Il nome mi sfugge...).

>|HaRRyFocKer|
03-02-2010, 11:22
Bene!
A questo punto, mi dai una mano ad impostare xrandr?

[marcello@hal9000 ~]$ xrandr -q
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 4096 x 4096
VGA connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
1920x1080 60.0*+
1280x1024 75.0 60.0
1152x864 75.0
1024x768 75.0 60.0
800x600 75.0 60.3
640x480 75.0 59.9
720x400 70.1


Questa è la query col monitor attaccato direttamente...

Gimli[2BV!2B]
03-02-2010, 18:56
Per ricavare i valori:
cvt 1920 1080 60

Dopodiché prova a forzarli come suggerito nella man (valori in grassetto ottenuti sul mio pc, non so dirti se saranno identici ai tuoi):
xrandr --newmode "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode VGA 1920x1080
xrandr --output VGA --mode 1920x1080

>|HaRRyFocKer|
03-02-2010, 19:49
[marcello@hal9000 ~]$ xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
X Error of failed request: BadName (named color or font does not exist)
Major opcode of failed request: 148 (RANDR)
Minor opcode of failed request: 16 (RRCreateMode)
Serial number of failed request: 21
Current serial number in output stream: 21


Questa è la risposta che mi da l'amico X quando provo a creare la nuova modeline...

Cmq in ogni caso grazie per l'enorme aiuto che mi stai dando!

Gimli[2BV!2B]
03-02-2010, 20:17
Hai provato senza _60.00 ?
xrandr --newmode "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

Stai provando con il monitor attaccato allo switch e con risoluzione bloccata, vero?
Quando il monitor ha risoluzione sbagliata cosa dice xrandr -q ?

>|HaRRyFocKer|
03-02-2010, 22:04
;30734708']Hai provato senza _60.00 ?
xrandr --newmode "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

Stai provando con il monitor attaccato allo switch e con risoluzione bloccata, vero?
Quando il monitor ha risoluzione sbagliata cosa dice xrandr -q ?

Ok ero un coglione, avevo provato con il monitxor attaccato. In ogni caso ora abbiamo fatto un piccolo miglioramento, sto a 1680x1050!
Anche se la cosa strana è questa, xrandr -q mi da:

Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 4096 x 4096
VGA connected 1680x1050+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1920x1080 60.0*+
1024x768 60.0
800x600 60.3
640x480 59.9
1920x1080_60.00 (0x12a) 173.0MHz
h: width 1920 start 2048 end 2248 total 2576 skew 0 clock 67.2KHz
v: height 1080 start 1083 end 1088 total 1120 clock 60.0Hz

Insomma mi dice che sta a 1920x1080 mentre invece sta a 1680...

Gimli[2BV!2B]
03-02-2010, 22:23
Ipotesi: la dimensione del monitor virtuale è 1680x1050 mentre la risoluzione è corretta.

Prova questo comando (se riparti da zero esegui prima quelli che ci hanno portato a 1680):xrandr --fb 1920x1080

>|HaRRyFocKer|
04-02-2010, 09:19
Ok, perfetto! Sono stato nuovamente un po' coglione :D

Quando andavo ad impostare il mode sulla vga richiamavo il mode 1920x1080 mentre io l'ho chiamato 1920x1080_60.00 (come suggerito dal comando cvt 1920 1080 60).

Ora, ultimo aiutino, come faccio ad impostare questa cosa all'avvio di X? Script?

Ah un'altra cosa, quando vado poi in risoluzione schermo, subito mi ricambia in 1680x1050... Ma vabbè, non me ne può fregà de meno :D

Gimli[2BV!2B]
04-02-2010, 19:42
Se usi Kde4 prova ad aggiungere i comandi funzionanti al file /etc/kde4/kdm/Xsetup
Se usi Kde3 dovresti avere il file /etc/kde3/kdm/Xsetup

Se usi Gnome il file dovrebbe essere /etc/gdm/PreSession/Default per impostarlo immediatamente prima della visualizzazione della schermata di login.
Se non dovesse funzionare puoi anche provare ad aggiungerli al file /etc/gdm/Init/Default

Se usi qualche altro ambiente desktop più leggero bisogna rintracciare il file equivalente...

>|HaRRyFocKer|
04-02-2010, 21:32
Ok dammi il tuo indirizzo e una tua foto che ti mando una tua statua d'oro :D

Grazie!

Gimli[2BV!2B]
04-02-2010, 21:55
Quindi tutto ok?

Bene! :)

Una statua... Mmmh... no, non mi ispira... meglio una fornitura a vita di birra rossa o scura. Oppure un isola. Mi sembra il minimo :D

Prego! Ciao Marcello!

>|HaRRyFocKer|
05-02-2010, 11:36
Sì sì tutto ok, anche se il path di kdm/Xsetup era un po' diverso (credo perchè Arch faccia un po' di casino con le cartelle di sistema... :D )

Fornitura di birra a vita... Beh se ce l'avessi io non sarei qui a scrivere :D