- Memperkenalkan cara mudah mengubah EDID HDMI dummy plug dengan memanfaatkan Raspberry Pi
- Dummy plug digunakan agar perangkat mengenali seolah-olah monitor terhubung meskipun tidak ada perangkat output yang sebenarnya
- Dengan menyalin informasi EDID agar sama dengan milik perangkat capture 1080p, plug dapat diatur agar tidak ditampilkan sebagai monitor 4K
- Hanya dengan pengendali I2C pada Raspberry Pi dan alat Linux standar, EEPROM pada plug dapat dibaca dan ditulis
- Sepanjang proses, pemilihan bus I2C yang benar dan pencadangan wajib dilakukan untuk mencegah kerusakan perangkat
Gambaran dummy plug dan EDID
- Dummy plug adalah perangkat kecil berbentuk dongle yang saat dihubungkan ke port HDMI atau DVI tidak melakukan pemrosesan video nyata, tetapi dengan rangkaian minimal membuat perangkat mendeteksi adanya monitor yang terhubung
- Terdapat rangkaian seperti chip EEPROM yang meniru EDID (Extended Display Identification Data) monitor, serta resistor pull-up yang terhubung ke +5V
- Ini berguna untuk server headless, perangkat tanpa operator, dan kasus lain agar sistem operasi (OS) menganggap ada layar yang terpasang
Tujuan dan pendekatan
- Berbagi pengalaman ingin mengubah EDID dari HDMI dummy plug yang semula mendukung resolusi 4K agar dikenali sebagai perangkat 1080p biasa
- Tujuannya adalah mengganti EDID di dalam dummy plug agar identik dengan informasi EDID milik perangkat capture HDMI yang mendukung 1080p
- Belum ada kepastian apakah EEPROM pada dummy plug bisa ditulisi, tetapi layak untuk dicoba
- Port HDMI pada Raspberry Pi Zero terhubung ke pengendali I2C, sehingga mudah diakses
Peringatan keselamatan dan awal prosedur
- Jika proses seperti ini dilakukan saat monitor sungguhan terhubung, monitor yang tidak memiliki perlindungan EDID berisiko rusak
- Pekerjaan ini harus dilakukan hanya pada perangkat seperti dummy plug yang tidak masalah jika sampai rusak
- Selain itu, wajib menggunakan bus I2C yang benar, dan sebelum menulis harus membaca serta memverifikasi EDID terlebih dahulu
Pengaturan lingkungan dan persiapan
- Setelah memasang Raspberry Pi OS Lite, sesuaikan pengaturan dengan
sudo raspi-config
- Pasang alat I2C dengan
sudo apt install i2c-tools (untuk Pi Zero perlu jaringan; bisa diakali dengan adaptor USB-Ethernet atau chroot pada kartu SD)
- Diperlukan penggunaan adaptor HDMI-to-Mini-HDMI
Pengenalan dan pencadangan EEPROM EDID
- Untuk Raspberry Pi Zero digunakan bus I2C 2 (pada model Pi lain nomornya berbeda)
- Dengan perintah
i2cdetect, pastikan perangkat terdeteksi di alamat 0x50, yang merupakan alamat standar untuk EEPROM EDID
- Menariknya, alamat 0x51~0x57 juga merespons, menunjukkan bentuk penyimpanan EDID yang berlipat
- Lakukan pencadangan EDID asli dari dummy plug dengan
get-edid, lalu baca dua kali dan bandingkan untuk memverifikasi konsistensi
- Gunakan
od -v -An -txC untuk menampilkan EDID dalam heksadesimal, lalu periksa validitasnya di edidreader.com
Mengekstrak EDID perangkat capture dan menuliskannya ke plug
- Lepaskan dummy plug lalu hubungkan perangkat capture HDMI ke Pi
- Ekstrak EDID perangkat capture dengan cara yang sama, lalu konfirmasi kembali validitasnya
- Sambungkan lagi dummy plug, lalu tulis EDID perangkat capture ke EEPROM
- Penulisan dilakukan per byte melalui perintah
i2cset, sehingga dapat dikerjakan hanya dengan alat Linux standar dan bash
Verifikasi akhir dan hasil
- Setelah selesai, ekstrak kembali EDID dari dummy plug dan bandingkan dengan file sumber menggunakan diff untuk memastikan isinya sama
- Saat dihubungkan ke komputer uji, perangkat tidak lagi dikenali sebagai monitor 4K asli, melainkan sebagai perangkat capture HDMI
- Penggantian EDID pada dummy plug berhasil dilakukan
Penutup dan saran pemanfaatan
- Dengan prosedur yang sama, dummy plug 1080p lama juga bisa diubah menjadi perangkat yang mendukung 4K
- Penulisan I2C disarankan dilakukan hanya dari Raspberry Pi; jika dilakukan langsung dari PC biasa ada risiko kerusakan perangkat keras
- Jika membutuhkan fungsi terkait, prosedur ini dapat berguna
1 komentar
Komentar Hacker News