Raspberry PiでモニターのEDIDを読み取る方法
注:以前、PiDoctorのスタンドアロン版では、EDIDを読み取る機能が利用できました。このバージョンは廃止されており、EDIDを読み取る機能は、新しい PiCockpit PiDoctor そこで、今回はEDIDの読み方をマニュアルでご紹介します。
PiDoctorにはモニターモードでの出力があります。
Raspberry PiのEDIDを抽出する方法に入る前に、新しい PiCockpitの PiDoctor このアプリには、EDIDを読むことで期待される多くの出力(サポートされている解像度モード、モニター名、オーディオサポートなど)が含まれていますので、2つのサンプルスクリーンショットをご紹介します。


Raspbian / Raspberry Pi OSでEDIDを読む
コマンドラインで以下のコマンドを実行します。
tvservice -d /tmp/edid.dat

これにより、/tmpディレクトリにedid.datが作成されます。
注:Raspberry Pi 4と400では、microHDMIポートを使って2台のディスプレイを取り付けることができます。この場合、EDIDを読み取るディスプレイを指定することになります。
tvservice --list

そして、対象となるディスプレイのデバイスIDを、以下のように渡します。
tvservice --device 2 -d /tmp/edid.dat
edidparserでEDIDをデコード
このファイルに対してedidparserを実行することができます(システムにインストールされていない場合は、まずインストールしてください)。
edidparser /tmp/edid.dat
これにより、多くの出力が得られます。例えば、私のモニターでは、以下のようになります。
ファジー形式のマッチングを有効にする...
/tmp/edid.datを解析する...
HDMI:EDIDバージョン1.3、延長1回、画面サイズ48×27cm
HDMI:EDID機能 - videodef 0x80 standby suspend active off; color encoding:RGB444|YCbCr422; sRGBはデフォルトの色空間ではありません; 優先フォーマットはネイティブ; GTFをサポートしません。
HDMI:EDID found monitor range descriptor tag 0xfd
HDMI:EDIDのモニター範囲のオフセット。V min=0, V max=0, H min=0, H max=0
HDMI:EDIDモニター範囲:垂直方向は50~76Hz、水平方向は30~83kHz、最大ピクセルクロックは170MHz
HDMI:EDIDのモニター範囲がGTFに対応していない
HDMI:EDIDが見つかりました モニタ名 ディスクリプタ タグ 0xfc
HDMI:EDID モニター名はVE228
HDMI:EDID found monitor S/N descriptor tag 0xff
HDMI:EDIDは、CEAの詳細なタイミングフォーマットを見つけました。1920x1080p @ 60Hz (16)
HDMI:EDID確立タイミングI/IIバイトはBF EF 00
HDMI: EDID found DMT format: code 4, 640x480p @ 60 Hz in established timing I/II
HDMI: EDID found DMT format: code 5, 640x480p @ 72 Hz in established timing I/II
HDMI: EDID found DMT format: code 6, 640x480p @ 75 Hz in established timing I/II
HDMI: EDID found DMT format: code 8, 800x600p @ 56 Hz in established timing I/II
HDMI: EDID found DMT format: code 9, 800x600p @ 60 Hz in established timing I/II
HDMI: EDID found DMT format: code 10, 800x600p @ 72 Hz in established timing I/II
HDMI: EDID found DMT format: code 11, 800x600p @ 75 Hz in established timing I/II
HDMI: EDID found DMT format: code 16, 1024x768p @ 60 Hz in established timing I/II
HDMI:EDID found DMT format: code 17, 1024x768p @ 70 Hz in established timing I/II
HDMI:EDID found DMT format: code 18, 1024x768p @ 75 Hz in established timing I/II
HDMI: EDID found DMT format: code 36, 1280x1024p @ 75 Hz in established timing I/II
HDMI:EDID標準タイミングブロック×8:0x714F 8180 8140 9500 A940 B300 D1C0 0101
HDMI:EDID found DMT format: code 21, 1152x864p @ 75 Hz (4:3) in standard timing 0
HDMI:EDID found DMT format: code 35, 1280x1024p @ 60 Hz (5:4) in standard timing 1
HDMI:EDID found DMT format: code 32, 1280x960p @ 60 Hz (4:3) in standard timing 2
HDMI:EDID found DMT format: code 47, 1440x900p @ 60 Hz (16:10) in standard timing 3
HDMI:EDID found DMT format: code 51, 1600x1200p @ 60 Hz (4:3) in standard timing 4
HDMI:EDID found DMT format: code 58, 1680x1050p @ 60 Hz (16:10) in standard timing 5
HDMI: EDID found DMT format: code 82, 1920x1080p @ 60 Hz (16:9) in standard timing 6
HDMI:EDIDパーシング v3 CEA拡張0
HDMI:EDIDモニター対応-アンダースキャン ITフォーマット:可、ベーシックオーディオ:可、YUV444:可、YUV422:可、#native DTD:1
HDMI:EDID failed to find matching detail format for 1920x1080p hfp:48 hs:32 hbp:80 vfp:3 vs:5 vbp:22 ピクセルクロック:138 MHz
HDMI:EDID算出のリフレッシュレートは60Hz
HDMI:EDIDで[email protected]と推測されるフォーマット
HDMI:EDIDが見つかったCEA詳細タイミングフォーマット。1920x1080p @ 60 Hz (16)
HDMI:EDID found DMT detail timing format:1366×768p @ 60Hz (81)
HDMI:EDIDが見つかったCEA詳細タイミングフォーマット。1280x720p @ 60 Hz (4)
HDMI:EDIDが見つかったCEA詳細タイミングフォーマット。720x480p @ 60 Hz (2)
HDMI:EDIDが見つかったCEA詳細タイミングフォーマット。1920x1080i @ 60 Hz (5)
HDMI:EDID found CEA format: code 16, 1920x1080p @ 60Hz (native)
HDMI:EDIDが見つかりました CEAフォーマット:コード5、1920x1080i @ 60Hz
HDMI:EDID発見 CEAフォーマット:コード4、1280x720p @ 60Hz
HDMI:EDID found CEA format: code 3, 720x480p @ 60Hz
HDMI:EDID found CEA format: code 2, 720x480p @ 60Hz
HDMI:EDID found CEA format: code 1, 640x480p @ 60Hz
HDMI:EDID found CEA format: code 17, 720x576p @ 50Hz
HDMI:EDID found CEA format: code 18, 720x576p @ 50Hz
HDMI:EDID found CEA format: code 19, 1280x720p @ 50Hz
HDMI:EDID found CEA format: code 20, 1920x1080i @ 50Hz
HDMI:EDIDが見つかりました CEAフォーマット:コード31、1920x1080p @ 50Hz
HDMI:EDIDで見つかったオーディオフォーマット 2チャンネルPCM、サンプルレート。32|44|48 kHz, サンプルサイズ: 16|20|24 bits
HDMI:EDID found HDMI VSDB length 5
HDMI:EDID HDMI VSDBの物理アドレスは1.0.0.0
HDMI:EDID HDMI VSDBには拡張フィールドがありません。
HDMI:EDIDフィルタリングフォーマット、ピクセルクロック無制限MHzまたはh.ブランキング無制限
HDMI:EDIDベストスコアモードをCEAに初期化(1) [email protected]、ピクセルクロック25MHz (スコア0)
HDMI:EDIDのベストスコアモードがCEA(1) 640x480p @ 60Hz, ピクセルクロック25MHzに変更(スコア61864)
HDMI:EDIDのベストスコアモードがCEA(2) 720x480p @ 60Hz、ピクセルクロック27MHzに変更されました(スコア3066472)
HDMI:EDID CEAモード(3) [email protected]、ピクセルクロック27MHzのスコアは66472でした。
HDMI:EDIDのベストスコアモードがCEA(4) 1280x720p @ 60Hz, ピクセルクロック74MHzになりました(スコア3635592)
HDMI:EDID DMT mode (4) 640x480p @ 60 Hz, pixel clock 25 MHzのスコアが18432となりました。
HDMI:EDID CEAモード(5) [email protected]、ピクセルクロック74MHzのスコアは2773832でした。
HDMI:EDID DMT mode (5) 640x480p @ 72 Hz, pixel clock 31 MHzのスコアが5529となりました。
HDMI:EDID DMTモード(6) 640x480p @ 75Hz、ピクセルクロック31MHzの場合、スコアは5760。
HDMI:EDID DMTモード(8) 800x600p @ 56Hz、ピクセルクロック36MHzのスコアは26880です。
HDMI:EDID DMTモード(9) [email protected]、ピクセルクロック40MHzの場合、スコア28800
HDMI:EDID DMTモード(10) [email protected]、ピクセルクロック50MHzの場合、スコア8640
HDMI:EDID DMTモード(11) 800x600p @ 75Hz、ピクセルクロック49MHzの場合、スコア9000
HDMI:EDIDベストスコアモードがCEA (16) 1920x1080p @ 60 Hz, pixel clock 148 MHzになりました(スコア5398248)
HDMI:EDID DMTモード(16) 1024x768p @ 60Hz、ピクセルクロック65MHzの場合、スコアは47185。
HDMI:EDID CEAモード(17) 720x576p @ 50 Hz、ピクセルクロック27 MHzのスコアが66472となりました。
HDMI:EDID DMTモード (17) 1024x768p @ 70 Hz, ピクセルクロック 75 MHz のスコアが13762です。
HDMI:EDID CEAモード(18) 720x576p @ 50 Hz、ピクセルクロック27 MHzのスコアが66472となりました。
HDMI:EDID DMTモード(18) 1024x768p @ 75Hz、ピクセルクロック78MHzのスコアが14745となりました。
HDMI:EDID CEAモード(19) 1280x720p @ 50 Hz、ピクセルクロック74 MHzのスコアは117160です。
HDMI:EDID CEAモード(20) [email protected]、ピクセルクロック74MHzの場合、スコアは128680
HDMI:EDID DMTモード(21) 1152x864p @ 75 Hz、ピクセルクロック108 MHzのスコアが43662となりました。
HDMI:EDID CEAモード(31) 1920x1080p @ 50 Hz、ピクセルクロック148 MHzのスコアは232360です。
HDMI:EDID DMTモード(32) 1280x960p @ 60 Hz、ピクセルクロック108 MHzのスコアは98728でした。
HDMI:EDID DMTモード(35) 1280x1024p @ 60 Hz、ピクセルクロック108 MHzのスコアが103643です。
HDMI:EDID DMT mode (36) 1280x1024p @ 75 Hz, ピクセルクロック 135 MHz のスコアが 24576 でした。
HDMI:EDID DMTモード(47) 1440x900p @ 60Hz、ピクセルクロック106MHzの場合、スコアは102760。
HDMI:EDID DMTモード(51) 1600x1200p @ 60Hz、ピクセルクロック162MHzで140200のスコアが出ました。
HDMI:EDID DMTモード(58) 1680x1050p @ 60Hz、ピクセルクロック146MHzの場合、スコアは130840です。
HDMI:EDID DMTモード(81) 1366×768p @ 60Hz、ピクセルクロック85MHzの場合、スコアは4062945。
HDMI:EDID DMTモード(82) 1920x1080p @ 60Hz、ピクセルクロック148MHzの場合、スコアは149416。
HDMI0:EDID優先モードはCEAのまま (16) 1920x1080p @ 60 Hz、ピクセルクロック148 MHz
HDMI:EDIDにはHDMI対応とオーディオ対応がある
edidparserがコード0で終了しました。
オンラインデコーダツール
また、このファイルをオンラインのデコーダツールにアップロードすることもできます(例)。 edid.tv
注:私のテストでは、edid.tvが私のEDIDの1つに対して不正なチェックサムを訴えました。

トラブルシューティング tvservice / EDID dump
何も書かれていない
私が走ると
tvservice -device 2 -d tmp/edid.dat
"Nothing written!"と表示されます。
以下の項目を試して確認してください。
- モニターがHDMIポートに接続されているか(いや、マジで)。
- デバイスIDが正しいかどうかを確認してください。 tvservice -list をクリックすると、IDのリストが表示されますが、私の例のデバイスID 2をコピー&ペーストするだけではありません。
- tvserviceを-device 2なしで試してみてください。
- Raspberry Piを再起動して(この用途ではモニターがホットプラグされていると問題があります)、再度コマンドを実行します。
- 他のtvserviceのパラメータを試して、特定のモニタからの出力が可能かどうかをデバッグします。tvserviceのドキュメントはこちらです。)
- 一部のテレビ/モニターに欠陥があり、EDIDを提供できない - 他のモニターで違いを確認してください。
Bonjour, j'obtiens cette erreur :
vc4-kms-v3dドライバーを使用する場合、tvserviceはサポートされていません。
同様の機能は、標準的なLinuxツールで利用可能です。
libdrm-tests の modetest のようなものです。
別の方法はないのですか?
メルシー。
こんにちは、Yoannさん。私はPi Zero 2でこの問題を経験しましたが、もしかしたらこの修正方法があなたのためになるかもしれません。 https://picockpit.com/raspberry-pi/the-big-raspberry-pi-zero-2-w-troubleshooting-guide/#Command_tvservice_throws_error