- Apresenta uma forma simples de alterar o EDID de um plugue dummy HDMI usando um Raspberry Pi
- O plugue dummy serve para fazer o equipamento reconhecer que há um monitor conectado, mesmo sem um dispositivo de saída real
- É possível copiar as informações de EDID de um dispositivo de captura 1080p, para que o plugue não apareça como um monitor 4K
- Com apenas o controlador I2C do Raspberry Pi e ferramentas padrão do Linux, é possível ler e gravar a EEPROM do plugue
- Em todo o processo, é essencial escolher o barramento I2C correto e fazer backup para evitar danos ao dispositivo
Visão geral do plugue dummy e do EDID
- Um plugue dummy é um pequeno dispositivo em formato de dongle que, ao ser conectado a uma porta HDMI ou DVI, não faz processamento real de vídeo, mas usa um circuito mínimo para que o equipamento detecte a conexão de um monitor
- Há um circuito com um chip EEPROM que imita o EDID (Extended Display Identification Data) de um monitor, além de resistores pull-up ligados ao +5V
- É útil em servidores headless, dispositivos sem supervisão e outros cenários em que se deseja que o sistema operacional (SO) considere que há um display presente
Objetivo e abordagem
- Compartilha a experiência de querer alterar o EDID de um plugue dummy HDMI com suporte a 4K para que fosse reconhecido como um simples dispositivo 1080p
- O objetivo era substituir o EDID interno do plugue dummy pelas mesmas informações de EDID de um dispositivo de captura HDMI com suporte a 1080p
- Não havia certeza de que seria possível gravar na EEPROM do plugue dummy, mas valia a tentativa
- A porta HDMI do Raspberry Pi Zero está conectada ao controlador I2C, o que facilita o acesso
Cuidados de segurança e início do procedimento
- Se esse processo for feito com um monitor real conectado, há risco de dano em monitores sem proteção de EDID
- É necessário realizar o procedimento apenas em dispositivos como um plugue dummy, que possam ser danificados sem maiores consequências
- Além disso, é indispensável usar o barramento I2C correto e, antes de gravar, fazer a leitura e a verificação prévias para confirmar que o EDID está correto
Configuração do ambiente e preparação
- Após instalar o Raspberry Pi OS Lite, ajustar as configurações com
sudo raspi-config
- Instalar as ferramentas I2C com
sudo apt install i2c-tools (no Pi Zero é necessária rede; isso pode ser contornado com um adaptador USB-Ethernet ou chroot no cartão SD)
- É necessário usar um adaptador HDMI-para-Mini-HDMI
Detecção e backup da EEPROM do EDID
- No Raspberry Pi Zero, usa-se o barramento I2C 2 (em outros modelos de Pi, o número pode ser diferente)
- Com o comando
i2cdetect, confirmar que o dispositivo é reconhecido no endereço 0x50, que é o endereço padrão da EEPROM de EDID
- Curiosamente, os endereços 0x51 a 0x57 também respondem, indicando uma forma em que múltiplos blocos de EDID estão armazenados
- Fazer backup do EDID original do plugue dummy com
get-edid, lendo duas vezes e comparando para verificar consistência
- Exibir o EDID em hexadecimal com
od -v -An -txC e validar em edidreader.com
Extração do EDID do dispositivo de captura e gravação no plugue
- Desconectar o plugue dummy e conectar o dispositivo de captura HDMI ao Pi
- Extrair o EDID do dispositivo de captura da mesma forma e confirmar novamente sua validade
- Reconectar o plugue dummy e gravar o EDID do dispositivo de captura na EEPROM
- A gravação é feita byte a byte com o comando
i2cset, algo possível apenas com ferramentas padrão do Linux e bash
Verificação final e resultado
- Após o término, extrair novamente o EDID do plugue dummy e compará-lo com o arquivo original usando diff para confirmar que o conteúdo corresponde
- Ao conectar ao computador de teste, ele passa a ser reconhecido não como o monitor 4K original, mas como um dispositivo de captura HDMI
- A substituição do EDID do plugue dummy foi concluída com sucesso
Encerramento e dicas de uso
- Com o mesmo procedimento, também é possível transformar um plugue dummy 1080p antigo em um dispositivo com suporte a 4K
- Recomenda-se fazer a gravação via I2C somente no Raspberry Pi; tentar fazer isso diretamente em um PC comum pode causar danos ao hardware
- Se você precisa desse tipo de funcionalidade, este procedimento pode ser útil
1 comentários
Comentários do Hacker News