As informações sobre hardware de cache do Linux?

3

Perguntas

O Linux armazena informações de hardware entre as inicializações? (Como EDIDs)

Se for assim, é possível configurar o que é armazenado em cache?

Antecedentes

O motivo que eu pergunto é que atualmente estou tentando configurar um segundo monitor, e este monitor tem um conversor passivo VGA (display) para exibir porta (placa gráfica) (eu sei que isso é uma má idéia, e não foi meu próprio). No meu entender, o uso de um conversor passivo requer que a placa gráfica faça algum trabalho para que o sinal seja exibido corretamente.

Posso fazer o monitor funcionar, mas se eu desligar o monitor ou o computador, ele deixará de funcionar quando for ligado novamente. Minha solução até agora, que é muito bem-sucedida, é desconectar a porta de exibição da placa gráfica, reiniciar a máquina, conectar a porta da tela de volta, reinicializar novamente e ela funciona bem. Isso é muito entediante, porque eu tenho muitos computadores com essa configuração.

Após desligar / ligar e trabalhar novamente, o segundo monitor tem um EDID diferente.

Pensamentos

Meu primeiro palpite é que a placa gráfica está recebendo uma certa quantidade de informações da tela e fazendo algum trabalho adicional para produzir o EDID final por causa do adaptador passivo. Como a placa realiza esse trabalho, o EDID não é consistente entre os ciclos de energia.

Meu segundo palpite é que o Linux (especificamente o RHEL 7.0) armazena em cache as informações de hardware (devido ao quão normalmente está estático) e quando o EDID em cache e o EDID atual entram em conflito, o monitor não funciona mais.

Minha solução alternativa corrobora isso, porque desconectar o monitor e inicializar seria uma mudança significativa o suficiente para detectar o hardware novamente (o que não seria nenhum na porta de exibição), então conectar a porta de exibição e a inicialização causaria a exibição para ser tratado como novo hardware e detectado de novo. Esta solução alternativa basicamente parece uma maneira de esvaziar o cache para esta exibição.

    
por Centimane 27.06.2016 / 19:57

1 resposta

0

Eu não acho que os dados EDID são armazenados em cache em qualquer lugar, mas você pode jogar com sudo ddccontrol -p para ver se você pode lê-lo a qualquer momento através do barramento i2c em um cabo vga. Consulte doc .

Além disso, use xrandr para controlar seus monitores. Ele deve listar quais portas da sua placa gráfica têm algo conectado a elas e permitir que você toque com as configurações.

Por padrão, o servidor Xorg tenta determinar dinamicamente quais telas estão conectadas quando são inicializadas, a menos que você tenha um arquivo xorg.conf sobrescrito. Você pode tentar criar um arquivo com sudo X -configure quando o X não estiver em execução e seus monitores estiverem funcionando corretamente. Veja archlinux para alguns exemplos.

    
por 28.06.2016 / 17:18