概要
- HDMIダミープラグのEDID書き換え手順 を解説
- Raspberry Pi Zero を使ったI2C経由のプログラム方法
- EDIDバックアップと書き換え の安全な進め方
- ダミープラグを 4Kから1080pへ変更 する具体例
- 注意点やリスク も明記
HDMIダミープラグのEDIDを書き換える方法
- HDMIダミープラグ は、パソコンなどの機器に「ディスプレイが接続されている」と誤認させるための小型ドングル
- ダミープラグ内部には EDID(Extended Display Identification Data) を格納したI2C接続のEEPROMチップが搭載
- EDIDには 解像度・メーカー情報・対応音声・色空間 などの詳細情報を保存
- 今回は、 4K対応のダミープラグ を1080p認識に変更したいケース
- 目的は、 ダミープラグのEDIDをHDMIキャプチャデバイスのEDIDで上書き し、PC側でキャプチャデバイスとして認識させること
必要なもの
- Raspberry Pi Zero (I2Cコントローラ搭載、HDMI端子あり)
- HDMI-Mini HDMI変換アダプタ (Pi Zero用)
- i2c-toolsパッケージ (Raspberry Pi OS Liteにインストール)
- ダミープラグ と EDIDをコピーしたいデバイス (例:HDMIキャプチャカード)
注意事項
- 誤った操作でモニターや他のI2Cデバイスを破損する危険性
- 特に実際のモニターやPCのメモリSPD EEPROM等への書き込みは厳禁
- 書き込み前に必ずEDIDのバックアップ取得
- I2Cバス番号の選択ミスに注意
- Pi Zero/1/2/3: /dev/i2c-2
- Pi 4: /dev/i2c-20, /dev/i2c-21
- Pi 5: /dev/i2c-11, /dev/i2c-12
Raspberry Piのセットアップ
sudo raspi-configで I2Cインターフェース有効化sudo apt install i2c-toolsで i2c-toolsインストール- Pi Zeroの場合、ネットワーク接続やUSB-Ethernetアダプタが必要
- SDカードをPCに挿し、chrootでパッケージ導入という代替手段も
EDIDの読み出し・バックアップ
- 使用するI2Cバス番号を指定(例:
edid_i2c=2) i2cdetect -y $edid_i2cで EDID EEPROMの存在確認- アドレス0x50で認識されるのが一般的
get-edid -b $edid_i2c > edid-orig.binで ダミープラグのEDIDをダンプod -v -An -txC edid-orig.binで EDID内容を16進ダンプ表示- 同じ手順でキャプチャデバイスのEDIDもダンプ
EDIDの書き換え手順
- ダミープラグを再接続し、 新しいEDIDデータを書き込み
- 書き込みスクリプト例(bash/dash使用):
edidbytes=($(od -v -An -txC edid-capture-card.bin)) for i in "${!edidbytes[@]}"; do byte=0x${edidbytes[$i]} echo Writing byte $i: $byte... i2cset -f -y $edid_i2c 0x50 $i $byte done- EDIDデータを1バイトずつI2C EEPROMへ書き込み
- 書き込み後、
get-edid -b $edid_i2c > edid-test.binで再度ダンプし、diff edid-test.bin edid-capture-card.binで 完全一致を確認
動作確認とまとめ
- ダミープラグをPCに接続し、 キャプチャデバイスとして認識されるか確認
- EDID書き換え成功 で、PCは4Kモニターではなく1080pキャプチャデバイスとして認識
- 逆方向(1080p→4K)にも応用可能
- I2C書き込みはRaspberry Pi上でのみ実施推奨、PC本体では絶対に行わないこと
まとめ
- ダミープラグのEDIDはRaspberry Piとi2c-toolsで書き換え可能
- 正しいバス番号とデバイスアドレスの確認が必須
- 事前のバックアップと書き換え後の検証が安全確保の鍵
- EDID編集により、仮想ディスプレイ用途やデバイス偽装が柔軟に実現可能
- リスクを十分理解した上で慎重に作業実施