Eu tenho uma televisão que estou usando como monitor, mas ela tem alguns problemas resultantes de informações EDID incorretas no monitor - dimensões físicas estão sendo relatadas em polegadas e décimos de polegadas em vez de centímetros e milímetros, conforme exigido pelo EDID especificação. Eu também quero trocar a ordem de seus blocos de temporização padrão a fim de alterar a temporização preferida para uma que corresponda ao painel físico (e, como resultado, evite artefatos de dimensionamento de monitor).
Estou ciente de que posso configurar meu computador apenas para ignorar o EDID, mas quero poder usar o dispositivo com vários computadores e sistemas operacionais sem precisar configurar cada um deles.
Eu tenho as ferramentas e o conhecimento para poder gerar o binário EDID que quero sobrescrever o EDID atual. A verdadeira questão é, como escrevo os dados EDID para o monitor?
Para referência, incluí um dump EDID do monitor. A tela da tela tem 16 polegadas por 9 polegadas e a resolução é 1360x768.
$ sudo i2cdump -y 3 0x50 b | tail -n+2 | xxd -r | edid-decode
Extracted contents:
header: 00 ff ff ff ff ff ff 00
serial number: 3e 4e 07 12 00 00 00 00 00 14
version: 01 03
basic params: 80 10 09 78 0a
chroma info: 0d c9 a0 57 47 98 27 12 48 4c
established: af ce 00
standard: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1: 01 1d 00 72 51 d0 1e 20 6e 28 55 00 a0 5a 00 00 00 1e
descriptor 2: 66 21 50 b0 51 00 1b 30 40 70 36 00 a0 5a 00 00 00 1e
descriptor 3: 00 00 00 fc 00 4f 52 49 4f 4e 0a 20 20 20 20 20 20 20
descriptor 4: 00 00 00 fd 00 36 4c 0f 44 0f 00 0a 20 20 20 20 20 20
extensions: 01
checksum: fc
Manufacturer: ORN Model 1207 Serial Number 0
Made week 0 of 2010
EDID version: 1.3
Digital display
Maximum image size: 16 cm x 9 cm
Gamma: 2.20
Supported color formats: RGB 4:4:4, YCrCb 4:2:2
First detailed timing is preferred timing
Established timings supported:
720x400@70Hz
640x480@60Hz
640x480@72Hz
640x480@75Hz
800x600@56Hz
800x600@60Hz
800x600@72Hz
800x600@75Hz
1024x768@60Hz
1024x768@70Hz
1024x768@75Hz
Standard timings supported:
Detailed mode: Clock 74.250 MHz, 160 mm x 90 mm
1280 1390 1430 1650 hborder 0
720 725 730 750 vborder 0
+hsync +vsync
Detailed mode: Clock 85.500 MHz, 160 mm x 90 mm
1360 1424 1536 1792 hborder 0
768 771 777 795 vborder 0
+hsync +vsync
Monitor name: ORION
Monitor ranges (GTF): 54-76Hz V, 15-68kHz H, max dotclock 150MHz
Has 1 extension blocks
Checksum: 0xfc (valid)
CEA extension block
Extension version: 3
26 bytes of CEA data
Video data block
VIC 04 1280x720@60Hz (native)
VIC 16 1920x1080@60Hz
VIC 05 1920x1080i@60Hz
VIC 03 720x480@60Hz
VIC 02 720x480@60Hz
VIC 01 640x480@60Hz
VIC 07 1440x480i@60Hz
VIC 06 1440x480i@60Hz
Audio data block
Linear PCM, max channels 1
Supported sample rates (kHz): 48 44.1 32
Supported sample sizes (bits): 24 20 16
Speaker allocation data block
Vendor-specific data block, OUI 000c03 (HDMI)
Source physical address 1.0.0.0
Supports_AI
Maximum TMDS clock: 150MHz
Basic audio support
Supports YCbCr 4:4:4
Supports YCbCr 4:2:2
1 native detailed modes
Detailed mode: Clock 148.500 MHz, 160 mm x 90 mm
1920 2008 2052 2200 hborder 0
1080 1084 1089 1125 vborder 0
+hsync +vsync
Detailed mode: Clock 74.250 MHz, 160 mm x 90 mm
1920 2008 2052 2200 hborder 0
540 542 547 562 vborder 0
+hsync +vsync interlaced
Detailed mode: Clock 27.000 MHz, 160 mm x 90 mm
720 736 798 858 hborder 0
480 489 495 525 vborder 0
-hsync -vsync
Detailed mode: Clock 27.000 MHz, 160 mm x 90 mm
1440 1478 1602 1716 hborder 0
240 244 247 262 vborder 0
-hsync -vsync interlaced
Detailed mode: Clock 79.500 MHz, 160 mm x 90 mm
1280 1344 1472 1664 hborder 0
768 771 778 798 vborder 0
-hsync +vsync
Checksum: 0x7c (valid)
Tags edid