web-dev-qa-db-ja.com

i2cデバイスでEDIDのバイトを設定する方法

私はモニターを持っていますLG E2251(モニター 詳細 )。

私のコンピューターはDVI-Iケーブルを介してモニターに接続されていました。電源が切れた後、ディスプレイが真っ暗になりました。システムを再起動しましたが、すべて問題ないようでした。いつものようにPOSTを渡しますが、DVI-Iに接続するとGUIもCLIも表示されません。DVI-IのEDIDコードが破損していると思います。他の2つでも試しました。接続:HDMIに損傷がないかどうか、DVI-Iに対して次のメッセージが表示されます

nouveau 0000:01:00.0: DRM: VRAM: 1024 MiB
[    9.292129] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
[    9.292133] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
[    9.292135] nouveau 0000:01:00.0: DRM: DCB version 4.0
[    9.292137] nouveau 0000:01:00.0: DRM: DCB outp 00: 01000302 00020030
[    9.292139] nouveau 0000:01:00.0: DRM: DCB outp 01: 02000300 00000000
[    9.292141] nouveau 0000:01:00.0: DRM: DCB outp 02: 02011362 00020010
[    9.292143] nouveau 0000:01:00.0: DRM: DCB outp 03: 01022310 00000000
[    9.292145] nouveau 0000:01:00.0: DRM: DCB conn 00: 00001030
[    9.292146] nouveau 0000:01:00.0: DRM: DCB conn 01: 00002161
[    9.292148] nouveau 0000:01:00.0: DRM: DCB conn 02: 00000200
[    9.296293] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    9.296294] [drm] Driver supports precise vblank timestamp query.
[    9.309393] nouveau 0000:01:00.0: DRM: MM: using COPY for buffer copies
 [drm:drm_edid_block_valid [drm]] *ERROR* EDID checksum is invalid, remainder is 185
[    9.449801] nouveau 0000:01:00.0: DVI-I-1: EDID block 0 invalid.
[    9.449803] nouveau 0000:01:00.0: DRM: DDC responded, but no EDID for DVI-I-1
[    9.470675] nouveau 0000:01:00.0: No connectors reported connected with modes
[    9.470678] [drm] Cannot find any crtc or sizes - going 1024x768
[    9.472105] nouveau 0000:01:00.0: DRM: allocated 1024x768 fb: 0x70000, bo ffff9d41b8eafc00
[    9.472196] fbcon: nouveaufb (fb0) is primary device
[    9.474979] Console: switching to colour frame buffer device 128x48
[    9.476170] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
[    9.508021] [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 0

vGA用の同様のもの

 [drm:drm_edid_block_valid [drm]] *ERROR* EDID checksum is invalid, remainder is 198
[   95.783329] nouveau 0000:01:00.0: VGA-1: EDID block 0 invalid.
[   95.783331] nouveau 0000:01:00.0: DRM: DDC responded, but no EDID for VGA-1

私のアプローチ

  • インストール済みi2c-tools私のDebianマシンで。
  • 見つかったi2c-1私のDVIインターフェースになる
  • i2cdump -y 1 0x50EDIDコードをダンプできます。

i2cset

ただし、バイトのブロックを設定したい場合
i2cset -y 1 0x50 0x00 0x00 0xff iEDIDは変更されません。

これらのEDIDを修正するにはどうすればよいですか?アセンブリプログラミングなしでUserSpaceに高速なソリューションはありますか?

私はEDID、nou​​veauドライバー、I2CまたはSMBus通信に不慣れだと言います。アドバイスや訂正をいただければ幸いです。

そのI2Cバスでバイトのブロックを送信できるようですi2cdetect -F 1

Functionalities implemented by /dev/i2c-1:
I2C Block Write                  yes
I2C Block Read                   yes
...

でも何が悪いのかわかりません。

リンク

3
xplovir

これが役立つかどうかはわかりませんが、EDIDダンプがモニターモデルと一致していることがわかりました(ダンプと比較するため)。

LG Electronics Inc.(GoldStar Technology、Inc。)E2251

https://github.com/linuxhw/EDID

MFG       Model    Name   Res        Size       Inch  Made  ID
Goldstar  GSM586D  E2251  1920x1080  480x270mm  21.7  2011  8A799
Goldstar  GSM586E  E2251  1920x1080  480x270mm  21.7  2011  011A9
Goldstar  GSM586E  E2251  1920x1080  480x270mm  21.7  2011  2F15B
Goldstar  GSM586E  E2251  1920x1080  480x270mm  21.7  2011  F721B
Goldstar  GSM586F  E2251  1920x1080  480x270mm  21.7  2011  2CA66

Windowsを使用している場合は、 Powerstrip を試してEDIDデータの読み取り/書き込みを行う必要があります。

このトピックをカバーする素晴らしい記事: 表示EDIDを変更する (ドイツ語から翻訳されたグーグル)

2
Freddy