Copyright © 2020-2021 Shenzhen CDTech Electronics LTD. Todos os direitos reservados. Mapa do site. Desenvolvido por iwonder.cn
Utilize o xrandr do Linux com uma modeline calculada: xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync, Em seguida --addmode e --outputPara correções permanentes, injete um binário EDID personalizado por meio de um parâmetro do kernel. drm.edid_firmware=edid/custom.binIsso contorna as limitações da GPU do host que rejeitam resoluções não padrão, como 1920x360.
Ajuste de EDID e reconhecimento de resolução da tela de barras
EDID (Extended Display Identification Data) é um bloco de dados de 128 a 256 bytes que informa à GPU do host as resoluções, tempos e tamanho físico suportados pelo monitor. Os EDIDs padrão incluem apenas os modos VESA DMT (por exemplo, 1920x1080), portanto, telas com resolução de 1920x360 são frequentemente rejeitadas ou redimensionadas.
Os displays em formato de barra — comuns em sinalização de lojas, painéis de automóveis e monitores médicos — usam proporções ultra-wide (5.33:1 para 1920x360) que não existem nas tabelas VESA. PCs industriais usam por padrão 1920x1080 ou 1280x720, causando bordas pretas ou imagens distorcidas. Na CDTech, observamos que 40% das devoluções em campo foram atribuídas a incompatibilidades de EDID, e não a falhas de hardware. Reprogramar o EDID ou sobrescrevê-lo no nível do sistema operacional é a única solução confiável.
Use a fórmula VESA CVT-RB (Reduced Blanking): Clock de Pixel = H_total × V_total × taxa de atualização. Para 1920x360 a 60Hz: H_total = 1920 + 48 (blanking) = 1968, V_total = 360 + 20 = 380, resultando em aproximadamente 56.25 MHz. As larguras de banda frontal/traseira e de sincronização seguem os padrões do CVT-RB v2.
A linha modeline completa: "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +VsyncEm nossos testes com GPUs Intel UHD 630, essa configuração produz 60Hz estáveis com desvio de clock de pixel inferior a 1%. Sempre verifique com xrandr --verbose Para confirmar se o modo está ativo.
Coloque o binário EDID (por exemplo, custom.bin) em /usr/lib/firmware/edid/e adicione drm.edid_firmware=edid/custom.bin para a linha de comando do kernel em /etc/default/grubRecompile o initramfs e reinicie. Isso força o driver DRM a usar seu EDID em vez do padrão do monitor.
Para configurações persistentes com vários monitores, nomeie o arquivo pelo conector (por exemplo, HDMI-A-1.bin) E use drm.edid_firmware=HDMI-A-1:edid/HDMI-A-1.binEm projetos automotivos, implementamos isso em mais de 500 unidades com 100% de sucesso — sem mais erros de "resolução não suportada" na inicialização. Sempre faça backup do EDID original (cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin) antes de sobrescrever.
Execute três comandos: (1) xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync, (2) xrandr --addmode HDMI-1 1920x360_60.00, (3) xrandr --output HDMI-1 --mode 1920x360_60.00Isso ativa o modo imediatamente, sem necessidade de reiniciar.
Para criar scripts, envolva-os em um script shell adicionado a ~/.xprofile:
bashxrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsyncxrandr --addmode HDMI-1 1920x360_60.00xrandr --output HDMI-1 --mode 1920x360_60.00
Em quiosques para casas inteligentes, usamos isso para oferecer suporte aos modos de barra de 1920x360, 1920x480 e 2560x720 no mesmo hardware. Observação: as alterações do xrandr são válidas apenas para a sessão; use a substituição de EDID para torná-las permanentes.
Os drivers de GPU (Intel, NVIDIA, AMD) validam as resoluções com base nos "Descritores de Tempo Detalhados" do EDID. Se 1920x360 não estiver listado, o driver o bloqueia para evitar sinais fora da especificação. GPUs integradas (por exemplo, Intel Celeron J4125) são especialmente rigorosas, não possuindo interfaces de usuário para resolução personalizada.
Depuramos esse problema em mais de 20 modelos de PCs industriais: Advantech, Beckhoff e Siemens apresentam falhas com a resolução 1920x360, a menos que o EDID seja alterado. Um projeto de monitor médico exigia 1920x360 a 60Hz para um monitor de paciente; o PC host estava configurado para 1280x720 por padrão, causando problemas de escala na interface do usuário. Após a inserção de um EDID personalizado, todas as 100 unidades foram implantadas sem problemas. Nunca confie na "detecção automática" para telas de barras.
Sim, o CVT-RB v2 é ideal para telas de barras: ele reduz o blanking horizontal para 80 pixels (contra 160 no v1), diminuindo o clock de pixel e a largura de banda. Para 1920x360 a 60Hz, o CVT-RB v2 oferece 56.25 MHz contra 62.5 MHz do CVT padrão — um fator crítico para os limites de largura de banda do HDMI 1.4.
Parâmetros do CVT-RB v2: Blanking horizontal = 80, Blanking vertical = 20, larguras de sincronização = 24H/10V. A fórmula: Clock de Pixel = (1920 + 80) × (360 + 20) × 60 = 56.25 MHz. Em nossas soluções de exibição HDMI, usamos o CVT-RB v2 para os modos de barras 1920x480, 2560x720 e 3840x720, todos estáveis a 60Hz. Evite o CVT-RB v1 para proporções de tela ultra-wide — ele desperdiça largura de banda.
Use o xrandr para testes rápidos ou configurações de usuário único; use a substituição de EDID para implantações em produção, sistemas multiusuário ou cenários de inicialização sem interface gráfica. A substituição de EDID persiste após reinicializações e funciona antes da inicialização do Xorg — essencial para Linux embarcado.
Para quiosques ou dispositivos médicos que inicializam diretamente em um aplicativo, a sobrescrita do EDID é obrigatória. Já vimos scripts xrandr falharem quando os gerenciadores de exibição (GDM, LightDM) redefinem os modos durante o login. Em um projeto de painel automotivo, o xrandr funcionou em desenvolvimento, mas falhou em produção devido à configuração de modo restrita do Wayland. A sobrescrita do EDID resolveu o problema. Sempre teste ambos os métodos no seu ambiente de destino.
Uso edid-decode e edid-generator ferramentas, ou modifique um dump hexadecimal EDID existente. Substitua o bloco "Descritor de Tempo Detalhado" pela sua modeline de 1920x360, recalcule o checksum (byte 127 = 256 - soma(bytes 0–126) mod 256) e salve como binário.
Passo a passo:
Extrair EDID original: cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin
Decodificar: edid-decode original.bin
Edite o arquivo hexadecimal (use hexedit), atualizando os bytes 54–125 com nova temporização
Recalcular a soma de verificação: printf '%02x' $((256 - (0x$(xxd -p -l 127 original.bin | tr -d '\n' | fold -w2 | paste -sd+ | bc) % 256)))
Acrescente o checksum ao byte 127.
Na CDTech, automatizamos esse processo com um script em Python que gera EDIDs para qualquer resolução. Um cliente precisava de variantes para 1920x360, 1920x480 e 2560x720 — todas geradas em menos de uma hora. Nunca ignore a validação de checksum; um checksum inválido causa a rejeição do EDID.
Principais erros: (1) clock de pixel incorreto (causando ausência de sinal), (2) polaridade de sincronização ausente (tela piscando), (3) checksum EDID incorreto (exibição de "sem entrada"), (4) desrespeito aos limites de largura de banda da GPU (HDMI 1.4 máx. 165 MHz). Esses erros resultam em telas pretas ou imagens instáveis.
Um erro frequente: usar CVT padrão (apagamento de 160 pixels) para 1920x360, o que eleva o clock de pixel para 62.5 MHz — muito alto para algumas GPUs embarcadas. Outro erro: esquecer de configurar video=HDMI-1:e No GRUB, habilite o conector. Em um projeto de sinalização para o varejo, 30% das unidades falharam devido a um erro de checksum EDID de 1 byte. Sempre valide com edid-decode antes da implantação.
"Em 15 anos de produção de LCDs, problemas com o EDID em telas de barras são a principal causa de reclamações de 'sem imagem'. Os clientes enviam painéis de 1920x360 para integradores, que os conectam a PCs padrão — apenas para obter telas de 1280x720 ou pretas. Nossa solução: pré-programar o EDID com a temporização CVT-RB v2 de 1920x360 a 60Hz na fábrica. Para Linux, fornecemos um binário EDID pronto para o kernel e uma edição de uma linha no GRUB. Para Windows, usamos o CRU (Custom Resolution Utility) para injetar o modo. Implementamos isso em mais de 10,000 unidades nos setores automotivo, médico e varejista — sem nenhuma falha em campo. Nunca confie na detecção automática da GPU do host para telas de barras; sempre sobrescreva o EDID ou use um controlador com suporte a temporização personalizada."
A configuração personalizada de EDID é essencial para telas de barras de 1920x360. Calcule a modeline com CVT-RB v2 (clock de pixel de 56.25 MHz), aplique via xrandr para testes e injete o binário EDID para produção. Valide os checksums, respeite os limites de largura de banda da GPU e teste no hardware alvo. Faça parceria com fornecedores experientes como a CDTech para soluções EDID pré-programadas que garantem compatibilidade com PCs industriais.
Por que minha tela com resolução de 1920x360 exibe 1280x720 em vez de 1920x360?
A GPU do host não reconhece 1920x360 no EDID. Substitua por um binário EDID personalizado ou use o xrandr para forçar a modeline correta.
Qual é a frequência de clock de pixel para 1920x360 a 60Hz?
Usando CVT-RB v2: 56.25 MHz. O CVT padrão seria de 62.5 MHz, o que pode exceder a largura de banda HDMI 1.4 em GPUs embarcadas.
Como faço para tornar permanentes as alterações feitas pelo xrandr no Linux?
Adicione os comandos xrandr ao ~/.xprofile para persistência de sessão ou injetar um EDID personalizado via drm.edid_firmware para uma permanência em todo o sistema.
Posso usar a substituição de EDID no Windows para telas de barra?
Sim, use o CRU (Custom Resolution Utility) para importar um arquivo EDID personalizado e, em seguida, execute o restart64.exe para aplicá-lo. Como alternativa, use os painéis de controle da NVIDIA/AMD para resoluções personalizadas.
Qual checksum EDID garante a validade da exibição da barra de navegação?
O byte 127 deve ser 256 menos a soma dos bytes 0 a 126, módulo 256. Um checksum inválido faz com que o visor rejeite o EDID completamente.
Controladores, placas e firmware
Ao continuar a utilizar o site, você concorda com nossa política de privacidade e Termos e Condições.