コンテンツへスキップ

BENQ G2400WのDVI 直りました

BENQ G2400Wは持病というか、DVIに接続した際にPC側から読み取るEDIDが破損するという症状がたまに発生します(私は今まで2回発生)。EDIDが破損するとWindows環境ではOS起動後に画面が映らなくなってしまいます。

これの修理方法について記載します。

(2016年8月現在、すでに発売から時間が経過したディスプレイですが、現役で稼働しています)

 

映らない原因はEDID破損

先日にDVIが壊れてしまったディスプレイ、暫くは諦めてHDMIで接続していました。が、どうにも諦められない。。。

と、いうことでネットで再度情報を探したところ、海外で同じ症状になった人の書き込みを発見。

その人の場合は、なんでかディスプレイのEDIDが壊れていたらしい。
こちらも同じようにツールでEDIDを取得してみると、、、んん?

無事に動くHDMIポートからもEDIDを取得して比べてみると、どうやらヘッダ部分が壊れている模様。
(海外の方も同じようにヘッダが壊れていた)

これなら書き直せば直るかも、と思ってツールを探すと、おお、Linuxで動作するツールが無償公開されているではないですか!

早速とubuntuをライブCDで立ち上げてツールをダウンロード。
EDIDを読み出して、エディタでヘッダ部分を修正して書き戻すと、、、直った!

多少四苦八苦する場面もありましたが、無事にDVIポートで標準されるようになりました。
このディスプレイ、何度も同じ症状でサポートセンターに送り直している人もいるそうですので、また発生する可能性ありそうです。

同じ症状でた人&未来の自分(笑)に向けて、近いうちにもうちょっと詳しくまとめておこうかと思います。

 

BENQ 2400 DVIの直し方

Linux環境を用意する

まず、Linux環境が必要になります。すでにお持ちの方はそれを使うとして、手元に無い方はCD/DVD/USBブートのいずれかのLinux環境を入手してください。インターネット上に多数の環境が公開されています。

私は以下のツールを使用しました。とても使いやすく便利です。ご参考までに。

 

必要なツールを入手する

上記で入手したLinuxを立ち上げます。

EDIDが破損した場合、Windows環境では全く画面が表示されませんがLinux環境では表示されました。どうやら、Windowsの方がEDIDのチェックが厳密なようです。

早速、EDID修正に必要なツールを入手します。


lubuntu@lubuntu:~/ sudo apt-get install vim git python-smbus edid-decode

git clone https://github.com/bulletmark/edid-rw

 

EDIDを確認する

BENG G2400Wの場合、どうやらDVIポートとD-SUBポートで別々にEDIDを持っているようです。そこで、入手したツールを使用してそれぞれのEDIDを見比べてみます。

DVI,D-SUBともにPCに接続して、ターミナルからコマンドを入力します。
(コマンドの"2"は環境によって異なると思います。0から順番に試して表示されるものを見つけてください)


lubuntu@lubuntu:~/edid-rw$ sudo ./edid-rw 2 | edid-decode

すると、header部分に差異が見受けられました。どうやらこの部分が原因のようです。

D-SUB側(正常)

lubuntu@lubuntu:~/edid-rw$ sudo ./edid-rw 2 | edid-decode
 Extracted contents:
 header: 00 ff ff ff ff ff ff 00
 serial number: 26 cd a8 46 f8 12 00 00 07 0d
 version: 01 03
 basic params: 68 22 1b 78 2a
 chroma info: 2c 12 a2 5a 4a 99 25 1b 4e 56
 established: bf ef 00
 standard: 81 80 01 01 01 01 01 01 01 01 01 01 01 01 01 01
 descriptor 1: bc 34 00 98 51 00 2a 40 10 90 13 00 54 0e 11 00 00 1e
 descriptor 2: 00 00 00 ff 00 31 30 30 30 35 4b 33 32 30 34 38 35 36
 descriptor 3: 00 00 00 fd 00 37 4b 18 53 0e 00 0a 20 20 20 20 20 20
 descriptor 4: 00 00 00 fc 00 31 37 41 43 31 0a 20 20 20 20 20 20 20
 extensions: 00
 checksum: 06

Manufacturer: IVM Model 46a8 Serial Number 4856
 EDID version: 1.3
 Analog display, Input voltage level: 0.7/0.7 V
 Sync: Separate
 Maximum image size: 34 cm x 27 cm
 Gamma: 2.20
 DPMS levels: Off
 RGB color display
 First detailed timing is preferred timing
 Established timings supported:
 720x400@70Hz
 640x480@60Hz
 640x480@67Hz
 640x480@72Hz
 640x480@75Hz
 800x600@56Hz
 800x600@60Hz
 800x600@72Hz
 800x600@75Hz
 832x624@75Hz
 1024x768@60Hz
 1024x768@70Hz
 1024x768@75Hz
 1280x1024@75Hz
 Standard timings supported:
 1280x1024@60Hz
 Detailed mode: Clock 135.000 MHz, 340 mm x 270 mm
 1280 1296 1440 1688 hborder 0
 1024 1025 1028 1066 vborder 0
 +hsync +vsync
 Serial number: 10005K3204856Monitor ranges: 55-75HZ vertical, 24-83kHz horizontal, max dotclock 140MHz
 Monitor name: 17AC1
 Checksum: 0x6
 EDID block does not conform at all!
 Bad year of manufacture

 

DVI側(異常)

lubuntu@lubuntu:~/edid-rw$ sudo ./edid-rw 4 | edid-decode
 Extracted contents:
 header: a1 ff ff ff ff ff ff 00
 serial number: 09 d1 0a 78 45 54 00 00 03 12
 version: 01 03
 basic params: 80 34 20 78 2e
 chroma info: c5 c4 a3 57 4a 9c 23 12 4f 52
 established: a5 6b 80
 standard: 71 00 81 00 95 00 81 80 b3 00 a9 40 d1 00 01 01
 descriptor 1: 28 3c 80 a0 70 b0 23 40 30 20 36 00 07 44 21 00 00 1a
 descriptor 2: 00 00 00 ff 00 38 31 38 30 39 34 36 31 53 4c 30 0a 20
 descriptor 3: 00 00 00 fd 00 32 55 1f 5e 11 00 0a 20 20 20 20 20 20
 descriptor 4: 00 00 00 fc 00 42 65 6e 51 20 47 32 34 30 30 57 0a 20
 extensions: 00
 checksum: 1c

No header found
 Manufacturer: BNQ Model 780a Serial Number 21573
 Made week 3 of 2008
 EDID version: 1.3
 Digital display
 Maximum image size: 52 cm x 32 cm
 Gamma: 2.20
 DPMS levels: Off
 Supported color formats: RGB 4:4:4, YCrCb 4:2:2
 Default (sRGB) color space is primary color space
 First detailed timing is preferred timing
 Established timings supported:
 720x400@70Hz
 640x480@60Hz
 640x480@75Hz
 800x600@60Hz
 800x600@75Hz
 832x624@75Hz
 1024x768@60Hz
 1024x768@75Hz
 1280x1024@75Hz
 1152x870@75Hz
 Standard timings supported:
 1152x720@60Hz
 1280x800@60Hz
 1440x900@60Hz
 1280x1024@60Hz
 1680x1050@60Hz
 1600x1200@60Hz
 1920x1200@60Hz
 Detailed mode: Clock 154.000 MHz, 519 mm x 324 mm
 1920 1968 2000 2080 hborder 0
 1200 1203 1209 1235 vborder 0
 +hsync -vsync
 Serial number: 81809461SL0
 Monitor ranges: 50-85HZ vertical, 31-94kHz horizontal, max dotclock 170MHz
 Monitor name: BenQ G2400W
 Checksum: 0x1c (should be 0x7b)
 EDID block does not conform at all!
 Block has broken checksum

 

EDIDを読み込んで編集

まず、一旦EDIDをファイルに書き出します。


<span style="font-weight: 400;">lubuntu@lubuntu:~/edid-rw$ sudo ./edid-rw 4 > benq.bin</span>

次にエディタを使って問題の箇所を修正します。私はvimを使用しました。vimコマンドで"%xxd"とするとバイナリ編集ができます。


lubuntu@lubuntu:~/edid-rw$ vim -b benq.bin

修正前

0000000: a1ff ffff ffff ff00 09d1 0a78 4554 0000  ...........xET..
0000010: 0312 0103 8034 2078 2ec5 c4a3 574a 9c23  .....4 x....WJ.#
0000020: 124f 52a5 6b80 7100 8100 9500 8180 b300  .OR.k.q.........
0000030: a940 d100 0101 283c 80a0 70b0 2340 3020  .@....(<..p.#@0
0000040: 3600 0744 2100 001a 0000 00ff 0038 3138  6..D!........818
0000050: 3039 3436 3153 4c30 0a20 0000 00fd 0032  09461SL0. .....2
0000060: 551f 5e11 000a 2020 2020 2020 0000 00fc  U.^...   ....
0000070: 0042 656e 5120 4732 3430 3057 0a20 001c  .BenQ G2400W. ..

修正後

0000000: 00ff ffff ffff ff00 09d1 0a78 4554 0000  ...........xET..
0000010: 0312 0103 8034 2078 2ec5 c4a3 574a 9c23  .....4 x....WJ.#
0000020: 124f 52a5 6b80 7100 8100 9500 8180 b300  .OR.k.q.........
0000030: a940 d100 0101 283c 80a0 70b0 2340 3020  .@....(<..p.#@0
0000040: 3600 0744 2100 001a 0000 00ff 0038 3138  6..D!........818
0000050: 3039 3436 3153 4c30 0a20 0000 00fd 0032  09461SL0. .....2
0000060: 551f 5e11 000a 2020 2020 2020 0000 00fc  U.^...   ....
0000070: 0042 656e 5120 4732 3430 3057 0a20 001c  .BenQ G2400W. ..

 

修正したEDIDを書き込む

最後に修正したEDIDをディスプレイ側に書き込みます。このときに私の環境ではエラーが発生してしまい上手く書き込めませんでした。sleep(i2cのwait時間?)を追加してやると上手くいきました。

最後に正常に書き込めたかEDIDを読み出し、header部分が書き変わっていることを確認して完了です。これでWindows環境で正常に表示されるようになりました。

エラーで書き込めなかった


lubuntu@lubuntu:~/edid-rw$ sudo ./edid-rw -w 4 <benq.bin
Traceback (most recent call last):
File "./edid-rw", line 141, in <module>
main()
File "./edid-rw", line 125, in main
dev.write(i, val)
File "./edid-rw", line 52, in write
self.smb.write_byte_data(EDID_ADDR, n, val)
IOError: [Errno 6] No such device or address

add sleep(10msec) option

sleepを追加してやると問題なく書き込める


lubuntu@lubuntu:~/edid-rw$ sudo ./edid-rw -f -w 4 <span style="color: #ff0000;">-s 0.01</span> <benq.bin

念のためEDIDを読み込んで確認


lubuntu@lubuntu:~/edid-rw$ sudo ./edid-rw 4 | edid-decode
Extracted contents:
header: 00 ff ff ff ff ff ff 00
serial number: 09 d1 0a 78 45 54 00 00 03 12
version: 01 03
basic params: 80 34 20 78 2e
chroma info: c5 c4 a3 57 4a 9c 23 12 4f 52
established: a5 6b 80
standard: 71 00 81 00 95 00 81 80 b3 00 a9 40 d1 00 01 01
descriptor 1: 28 3c 80 a0 70 b0 23 40 30 20 36 00 07 44 21 00 00 1a
descriptor 2: 00 00 00 ff 00 38 31 38 30 39 34 36 31 53 4c 30 0a 20
descriptor 3: 00 00 00 fd 00 32 55 1f 5e 11 00 0a 20 20 20 20 20 20
descriptor 4: 00 00 00 fc 00 42 65 6e 51 20 47 32 34 30 30 57 0a 20
extensions: 00
checksum: 1c

 

参考

この記事は以下のサイトを参考にさせて頂きました。

6 thoughts on “BENQ G2400WのDVI 直りました

  1. reppi

    EDIDの壊れたGL2460HMを直すのにかなり参考になりました 🙂
    GL2460ではEEPROMのライトプロテクトを解除する必要がありました。(最近のディスプレイは全部そうらしいです)
    私のブログでこの記事へのリンクを張ってもいいですか?

    返信
    1. suke

      こんにちは。

      お役に立てたようで何よりです。でも、最近のBENQでもEDID壊れたりするんですね(汗
      リンクはご自由にして頂いて大丈夫です。

      返信
      1. reppi

        ありがとうございます。
        たぶん滅多なことではEDIDは壊れないと思いますが、運がなかったんでしょうね

        返信
  2. pollo

    Hey man, I know this article was written 5 years ago, but I just wanted to thank you. Same monitor, same corrupted EDID header. Followed your steps and worked like a charm. You rock!

    返信
  3. ポチ

    おめでとうございます。

    EDIDの破損は、接続する側の機器の不具合で、ありがちなのですが、
    自分自身で破壊するとは....。

    いずれにせよ、自己解決おめでとうさんです。

    追)29インチウルトラワイドの道はなくなったんだ(^^ゞ

    返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください