Hallo,
ich würde gerne ohne Spezialbehandlung für NVidia-Grafikkarten die EDID-Daten und Display-Modi der angeschlossenen Bildschirme auslesen können. Dazu habe ich ein Python-Skript geschrieben, das die nötigen Informationen aus der Ausgabe von
liest, im json-Format ausgibt, den besten Mode für die TV-Betrieb errät und zusätzlich die EDID-Informationen in Dateien schreibt, die nach dem jeweiligen Output benannt sind (also z.B. edid.HDMI-0.bin): https://gist.github.com/seahawk1986/82…d102ead18434d64
Bei einem HD-ready TV sieht das z.B. so aus:
Display Spoiler
{
"Screen 0:": {
"HDMI-0": {
"EDID": "00ffffffffffff004c2d8001000000002c0e01038059328c0ae2bda15b4a982415474a20000001010101010101010101010101010101011d007251d01e206e28550075f23100001e011d00bc52d01e20b828554075f23100001e000000fd00323d0f2e08000a202020202020000000fc0053414d53554e470a202020202001810203197146841305140312230907078301000065030c001000011d8018711c1620582c250075f23100009e011d80d0721c1620102c258075f23100009e8c0ad08a20e02d10103e960075f2310000188c0ad090204031200c40550075f231000018000000000000000000000000000000000000000000000000000000000000ca",
"current": "1280x720_50",
"is_connected": true,
"modes": {
"1280x720": [
60,
50
],
"320x240": [
60
],
"640x480": [
60
],
"720x480": [
60
],
"720x576": [
50
],
"800x600": [
60,
56
]
},
"preferred": "1280x720_60"
},
"VGA-0": {
"EDID": "",
"current": "",
"is_connected": false,
"modes": {},
"preferred": ""
}
},
"best_tv_mode": [
"HDMI-0",
"1280x720",
50
]
}
Display More
Und bei einem Testrechner mit zwei Bildschirmen so:
Display Spoiler
{
"Screen 0:": {
"DVI-I-0": {
"EDID": "",
"auto": "",
"current": "",
"is_connected": false,
"modes": {},
"preferred": ""
},
"DVI-I-1": {
"EDID": "",
"auto": "",
"current": "",
"is_connected": false,
"modes": {},
"preferred": ""
},
"HDMI-0": {
"EDID": "00ffffffffffff0010ac70d04c4539302d18010380371f78ee4455a9554d9d260f5054a54b00b300d100714fa9408180778001010101565e00a0a0a029503020350029372100001a000000ff0039583256593442353039454c0a000000fc0044454c4c205532353135480a20000000fd0038561e711e000a20202020202001f7020322f14f1005040302071601141f1213202122230907078301000065030c001000023a801871382d40582c250029372100001e011d8018711c1620582c250029372100009e011d007251d01e206e28550029372100001e8c0ad08a20e02d10103e9600293721000018483f00ca808030401a50130029372100001e000000ed",
"auto": "",
"current": "2048x1152_60",
"is_connected": true,
"modes": {
"1024x768": [
75,
60
],
"1152x864": [
75
],
"1200x960": [
60
],
"1280x1024": [
75,
60
],
"1280x720": [
60,
50
],
"1600x1200": [
60
],
"1680x1050": [
60
],
"1920x1080": [
60,
50,
30,
25,
24
],
"1920x1200": [
60
],
"2048x1152": [
60
],
"640x480": [
75,
60
],
"720x480": [
60
],
"720x576": [
50
],
"800x600": [
75,
60
]
},
"preferred": "2048x1152_60"
},
"VGA-0": {
"EDID": "00ffffffffffff0010ac16a0534b4431181101030e342178eeee91a3544c99260f5054a54b008180a940714fb3000101010101010101283c80a070b023403020360007442100001a000000ff00555935343537364531444b5320000000fc0044454c4c20323430375746500a000000fd00384c1e5311000a20202020202000f1",
"auto": "",
"current": "1920x1200_60",
"is_connected": true,
"modes": {
"1024x768": [
75,
60
],
"1152x864": [
75
],
"1280x1024": [
75,
60
],
"1680x1050": [
60
],
"1920x1200": [
60
],
"640x480": [
75,
60
],
"800x600": [
75,
60
]
},
"preferred": "1920x1200_60"
}
},
"best_tv_mode": [
"HDMI-0",
"1920x1080",
50
]
}
Display More
Es wäre toll, wenn das mal ein paar Leute mit Intel, AMD und NVidia-GPUs (egal ob mit noveau oder dem proprietären nvidia-Treiber) mit einem oder mehreren Monitoren laufen lassen und die Ausgabe hier posten könnten. Benötigt wird neben xrandr nur Python2 (oder Python3) und ein X-Server, der ohne xorg.conf läuft, die die EDID setzt oder separate X-Server startet (wie es z.B. bei yaVDR der Fall ist). Falls der optimale TV-Modus nicht richtig ermittelt wurde, bitte die Ausgabe von xrandr und das erwartete Ergebnis für den besten Mode dazu posten.
Man könnte das Skript z.B. so herunterladen und starten (die DISPLAY-Variable muss natürlich so gesetzt sein, dass xrandr funktioniert):