- Presenta una forma sencilla de cambiar el EDID de un plug dummy HDMI usando una Raspberry Pi
- Un plug dummy se utiliza para que un equipo detecte que hay un monitor conectado aunque no exista un dispositivo de salida real
- Al copiar la información EDID para que sea igual a la de un dispositivo de captura 1080p, se puede configurar el plug para que no aparezca como un monitor 4K
- Con el controlador I2C de una Raspberry Pi y solo herramientas estándar de Linux, es posible leer y escribir la EEPROM del plug
- En todo el proceso es indispensable elegir el bus I2C correcto y hacer respaldos para evitar daños al dispositivo
Descripción general del plug dummy y del EDID
- Un plug dummy es un pequeño dispositivo tipo dongle que, al conectarse a un puerto HDMI o DVI, no realiza procesamiento de video real y solo usa un circuito mínimo para que el equipo detecte una conexión de monitor
- Incluye un chip EEPROM que imita el EDID (Extended Display Identification Data) de un monitor, junto con circuitos como resistencias pull-up conectadas a +5V
- Es útil para hacer que un sistema operativo (OS) determine que existe una pantalla en servidores headless, equipos desatendidos y casos similares
Objetivo y enfoque
- Comparte la experiencia de querer cambiar el EDID de un plug dummy HDMI con soporte 4K para que fuera reconocido como un dispositivo simple de 1080p
- El objetivo era reemplazar el EDID interno del plug dummy para que coincidiera con la información EDID de un dispositivo de captura HDMI compatible con 1080p
- No estaba claro si sería posible escribir en la EEPROM del plug dummy, pero valía la pena intentarlo
- El puerto HDMI de una Raspberry Pi Zero está conectado al controlador I2C, lo que facilita el acceso
Precauciones de seguridad e inicio del procedimiento
- Si se realiza este proceso con un monitor real conectado, existe riesgo de daño en monitores sin protección de EDID
- Es necesario trabajar únicamente con dispositivos como un plug dummy cuyo daño no sea problemático
- Además, es imprescindible usar el bus I2C correcto y, antes de escribir, leer y verificar previamente que el EDID sea el adecuado
Configuración del entorno y preparación
- Después de instalar Raspberry Pi OS Lite, ajustar la configuración con
sudo raspi-config
- Instalar las herramientas I2C con
sudo apt install i2c-tools (en una Pi Zero se necesita red; se puede resolver con un adaptador USB-Ethernet o mediante chroot en la tarjeta SD)
- Es necesario usar un adaptador HDMI a Mini-HDMI
Detección y respaldo de la EEPROM del EDID
- En una Raspberry Pi Zero se usa el bus I2C 2 (en otros modelos de Pi el número puede variar)
- Con el comando
i2cdetect se verifica que el dispositivo responda en la dirección 0x50, que es la dirección estándar de una EEPROM de EDID
- De forma curiosa, también responden las direcciones 0x51~0x57, como si hubiera múltiples copias del EDID almacenadas
- Con
get-edid se realiza un respaldo del EDID original del plug dummy; se lee dos veces y se comparan los resultados para verificar consistencia
- Con
od -v -An -txC se muestra el EDID en hexadecimal y se valida con edidreader.com
Extracción del EDID del dispositivo de captura y escritura en el plug
- Después de desconectar el plug dummy, se conecta el dispositivo de captura HDMI a la Pi
- Se extrae el EDID del dispositivo de captura del mismo modo y se vuelve a comprobar su validez
- Luego se vuelve a conectar el plug dummy y se escribe en la EEPROM el EDID del dispositivo de captura
- La escritura se realiza byte por byte mediante el comando
i2cset, algo posible usando solo herramientas estándar de Linux y bash
Verificación final y resultado
- Al terminar, se vuelve a extraer el EDID del plug dummy y se compara con diff contra el archivo original para confirmar que el contenido coincide
- Al conectarlo a una computadora de prueba, ya no se reconoce como el monitor 4K original sino como un dispositivo de captura HDMI
- El reemplazo del EDID del plug dummy se completó con éxito
Cierre y consejos de uso
- Con el mismo procedimiento también es posible convertir un plug dummy 1080p antiguo en un dispositivo con soporte 4K
- Se recomienda realizar la escritura I2C solo desde una Raspberry Pi; hacerlo directamente desde una PC común puede implicar riesgo de daño de hardware
- Si se necesita esta funcionalidad, este procedimiento puede ser útil
1 comentarios
Comentarios en Hacker News
dummy plugbaratos solo tienen una EEPROM de 256 bytes, así que no alcanza para guardar todos los bloques de extensión EDID necesarios para alta resolución y alta tasa de refresco. Solo pueden simular hasta 1080p60; por ejemplo, es imposible hacer que se hagan pasar por un monitor 4k240. Además, algunos productos ya traen conectada la línea de protección contra escritura, así que para poder grabar datos hay que intervenirlos físicamente, por ejemplo soldandodummy pluges que no manejan HDCP. Son excelentes para forzar salida de video en máquinas headless, pero no sirven para probar servicios de streaming que requieren HDCP. ¿Alguien conoce alguna solución dedummy plugHDMI que también pueda negociar HDCP? Es molesto tener que usar una TV como equipo de prueba cada vez. Una solución que encontré es un multiviewer HDMI, que negocia HDCP por separado en cada puertodummy plugcon función de passthrough, y son útiles cuando hay problemas de compatibilidad entre sistemas viejos y monitores de alta resolución. Por ejemplo, mi sistema AMD FX8350 de 2011 tiene problemas para sacar 4K, así que si conecto el plug en línea para forzarlo a 1080p, el monitor hace automáticamente upscale 2x y lo muestra limpio en 4Kdummy plug? Me pregunto si hay algo que no pueda resolverse por software; yo uso 18 pantallas virtuales sin ningún problemadummy pluges la única alternativadummy pluges mucho más simple. A veces funciona en Linux+Xorg+drivers open source o en Windows+Nvidia, pero en MacOS o Windows+GPU AMD/Intel casi nunca funcionadummy plug, quedo bloqueadodummy pluges mucho más fácil y práctico para la gente común. Configurar solo por software un monitor virtual 4K para streaming remoto de juegos es muchísimo más complicado de lo que parece. Ver configurador 4k-sunshinedummy pluges lo mejor