- HDMI dummy plug'ın EDID'sini Raspberry Pi kullanarak kolayca değiştirmenin bir yolu tanıtılıyor
- Dummy plug, gerçek bir çıkış aygıtı olmadan cihaza bir monitör bağlıymış gibi algılatmak için kullanılır
- EDID bilgisi, 1080p yakalama aygıtınınkiyle aynı olacak şekilde kopyalanarak plug'ın 4K monitör olarak görünmesi engellenebilir
- Raspberry Pi'nin I2C denetleyicisi ve standart Linux araçlarıyla plug'ın EEPROM'u okunup yazılabilir
- Tüm süreç boyunca cihaz hasarını önlemek için doğru I2C veriyolunu seçmek ve yedek almak şarttır
Dummy plug ve EDID'ye genel bakış
- Dummy plug, HDMI veya DVI portuna takıldığında gerçek görüntü işleme yapmayan, yalnızca asgari devre ile cihazın monitör bağlı olduğunu algılamasını sağlayan küçük bir dongle türü aygıttır
- Monitörün EDID(Extended Display Identification Data) bilgisini taklit eden bir EEPROM yongası ve +5V'a bağlı pull-up dirençler gibi devreler bulunur
- Headless sunucular, insansız aygıtlar gibi ortamlarda işletim sisteminin (OS) bir ekranın var olduğunu düşünmesini sağlamak için kullanışlıdır
Amaç ve yaklaşım
- Mevcut 4K çözünürlüğü destekleyen bir HDMI dummy plug'ı basit bir 1080p aygıt olarak algılanacak şekilde EDID'sini değiştirme deneyimi paylaşılıyor
- Amaç, dummy plug içindeki EDID'yi bir HDMI yakalama aygıtının (1080p destekli) EDID bilgisiyle aynı olacak şekilde değiştirmek
- Dummy plug'ın EEPROM'una yazmanın mümkün olup olmadığı kesin değildi, ancak denemeye değerdi
- Raspberry Pi Zero'nun HDMI portu I2C denetleyicisine bağlı olduğundan erişim kolaydı
Güvenlik uyarıları ve sürecin başlangıcı
- Gerçek bir monitör bağlıyken bu işlemler yapılırsa, EDID koruması olmayan monitörlerde hasar riski vardır
- Bu yüzden işlemler yalnızca dummy plug gibi bozulsa da sorun olmayacak aygıtlarda yapılmalıdır
- Ayrıca doğru I2C veriyolunu kullanmak ve yazmadan önce EDID'yi mutlaka okuyup doğrulamak gerekir
Ortam kurulumu ve hazırlık
- Raspberry Pi OS Lite kurulduktan sonra
sudo raspi-config ile ayarlar düzenlenir
sudo apt install i2c-tools ile I2C araçları kurulur (Pi Zero'da ağ gerekir; USB-Ethernet adaptörü veya SD kart üzerinde chroot ile aşılabilir)
- HDMI-to-Mini-HDMI adaptörü gerekir
EDID EEPROM'unu algılama ve yedekleme
- Raspberry Pi Zero için I2C veriyolu 2 kullanılır (diğer Pi modellerinde numara farklı olabilir)
i2cdetect komutuyla 0x50 adresinde aygıtın görüldüğü doğrulanır; bu, EDID EEPROM'unun standart adresidir
- İlginç biçimde 0x51~0x57 adresleri de yanıt verir; yani EDID birden fazla blok halinde depolanmış durumdadır
get-edid ile mevcut dummy plug'ın orijinal EDID yedeği alınır, iki kez okunup karşılaştırılarak tutarlılık doğrulanır
od -v -An -txC ile EDID hex çıktısı alınır ve edidreader.com ile geçerliliği kontrol edilir
Yakalama aygıtının EDID'sini çıkarma ve plug'a yazma
- Dummy plug çıkarıldıktan sonra HDMI yakalama aygıtı Pi'ye bağlanır
- Aynı yöntemle yakalama aygıtının EDID'si çıkarılır ve geçerliliği yeniden doğrulanır
- Ardından dummy plug tekrar bağlanır ve yakalama aygıtının EDID'si EEPROM'a yazılır
- Her bayt için
i2cset komutuyla yazma yapılır; bu işlem yalnızca standart Linux araçları ve bash ile mümkündür
Son doğrulama ve sonuç
- İşlem bittikten sonra dummy plug'ın EDID'si yeniden çıkarılır ve orijinal dosyayla diff karşılaştırması yapılarak içeriğin eşleştiği doğrulanır
- Test bilgisayarına bağlandığında artık orijinal 4K monitör olarak değil, HDMI yakalama aygıtı olarak tanınır
- Böylece dummy plug'ın EDID'si başarıyla değiştirilmiş olur
Kapanış ve kullanım önerileri
- Aynı yöntemle eski bir 1080p dummy plug da 4K destekli bir aygıta dönüştürülebilir
- I2C yazma işlemlerinin yalnızca Raspberry Pi üzerinde yapılması önerilir; sıradan bir PC'de doğrudan denemek donanım hasarı riski taşır
- Bu tür bir işleve ihtiyaç varsa, bu prosedür faydalı olabilir
1 yorum
Hacker News yorumu