- HDMI डमी प्लग के EDID को Raspberry Pi की मदद से आसानी से बदलने का तरीका परिचित कराया गया है
- डमी प्लग का उपयोग किसी वास्तविक आउटपुट डिवाइस के बिना भी सिस्टम को यह महसूस कराने के लिए होता है कि उससे मॉनिटर जुड़ा हुआ है
- EDID जानकारी को 1080p capture device वाली जानकारी के समान कॉपी करके प्लग को 4K मॉनिटर के रूप में दिखने से रोका जा सकता है
- Raspberry Pi के I2C controller और standard Linux tools की मदद से प्लग के EEPROM को पढ़ा और लिखा जा सकता है
- पूरी प्रक्रिया में डिवाइस को नुकसान से बचाने के लिए सही I2C bus चुनना और backup लेना ज़रूरी है
डमी प्लग और EDID का अवलोकन
- डमी प्लग एक छोटा dongle जैसा डिवाइस होता है, जिसे HDMI या DVI पोर्ट में लगाने पर वास्तविक वीडियो प्रोसेसिंग नहीं होती, लेकिन न्यूनतम सर्किट की मदद से सिस्टम को मॉनिटर कनेक्टेड होने का पता चल जाता है
- इसमें मॉनिटर के EDID (Extended Display Identification Data) की नकल करने वाली EEPROM chip और +5V से जुड़े pull-up resistor जैसे सर्किट मौजूद होते हैं
- यह headless server, unattended devices आदि में operating system (OS) को डिस्प्ले मौजूद होने का आभास देने के लिए उपयोगी है
उद्देश्य और तरीका
- लेख में एक मौजूदा 4K resolution सपोर्ट करने वाले HDMI डमी प्लग को साधारण 1080p डिवाइस के रूप में पहचान कराने के लिए EDID बदलने का अनुभव साझा किया गया है
- लक्ष्य था कि डमी प्लग के अंदर का EDID, HDMI capture device (1080p समर्थित) के EDID डेटा जैसा बना दिया जाए
- यह निश्चित नहीं था कि डमी प्लग की EEPROM पर लिखा जा सकेगा या नहीं, लेकिन इसे आज़माना उचित लगा
- Raspberry Pi Zero का HDMI पोर्ट I2C controller से जुड़ा होने के कारण उस तक पहुँचना आसान था
सुरक्षा सावधानियाँ और प्रक्रिया की शुरुआत
- यदि यह प्रक्रिया किसी वास्तविक मॉनिटर के जुड़े होने पर की जाए, तो EDID protection न होने वाले मॉनिटर को नुकसान पहुँचने का जोखिम हो सकता है
- इसलिए काम केवल डमी प्लग जैसे ऐसे डिवाइस पर ही करना चाहिए, जिसके खराब होने का जोखिम स्वीकार्य हो
- साथ ही सही I2C bus का उपयोग करना, और write करने से पहले EDID को पढ़कर उसकी जाँच करना अनिवार्य है
environment setup और तैयारी
- Raspberry Pi OS Lite इंस्टॉल करने के बाद
sudo raspi-config से सेटिंग्स समायोजित की जाती हैं
sudo apt install i2c-tools से I2C tools इंस्टॉल किए जाते हैं (Pi Zero के लिए नेटवर्क चाहिए; USB-Ethernet adapter या SD card chroot से इसका विकल्प निकाला जा सकता है)
- HDMI-to-Mini-HDMI adapter की आवश्यकता होती है
EDID EEPROM की पहचान और backup
- Raspberry Pi Zero में I2C bus 2 का उपयोग किया जाता है (दूसरे Pi मॉडल में bus नंबर अलग हो सकता है)
i2cdetect कमांड से 0x50 address पर डिवाइस की पहचान की पुष्टि की जाती है, जो EDID EEPROM का standard address है
- दिलचस्प रूप से 0x51~0x57 address भी response देते हैं, यानी EDID कई प्रतियों में स्टोर है
get-edid से डमी प्लग के मूल EDID का backup लिया जाता है, और दो बार पढ़कर मिलान करके उसकी consistency जाँची जाती है
od -v -An -txC से EDID को hexadecimal array के रूप में प्रिंट किया जाता है, और edidreader.com से validity जाँची जाती है
capture device का EDID निकालना और प्लग में लिखना
- डमी प्लग हटाने के बाद HDMI capture device को Pi से जोड़ा जाता है
- उसी तरीके से capture device का EDID निकाला जाता है और उसकी validity फिर से जाँची जाती है
- फिर डमी प्लग दोबारा जोड़कर capture device का EDID EEPROM में लिखा जाता है
- हर byte को
i2cset कमांड से लिखा जाता है, और यह standard Linux tools तथा bash से किया जा सकता है
अंतिम सत्यापन और परिणाम
- काम पूरा होने के बाद डमी प्लग का EDID फिर से निकालकर मूल फ़ाइल से diff द्वारा तुलना की जाती है और सामग्री के मेल की पुष्टि होती है
- test computer से जोड़ने पर यह पहले वाले 4K मॉनिटर की जगह HDMI capture device के रूप में पहचाना जाता है
- इस तरह डमी प्लग का EDID सफलतापूर्वक बदल दिया गया
समापन और उपयोग संबंधी सलाह
- इसी प्रक्रिया से पुराने 1080p डमी प्लग को 4K समर्थित डिवाइस में भी बदला जा सकता है
- I2C write का काम केवल Raspberry Pi पर ही करने की सलाह दी गई है; सामान्य PC पर सीधे करने से hardware damage का जोखिम हो सकता है
- यदि इस तरह की functionality की ज़रूरत हो, तो यह प्रक्रिया उपयोगी साबित हो सकती है
1 टिप्पणियां
Hacker News राय