Não atualizando as configurações de exibição ao desconectar o monitor externo


8

Quando eu desconecto meu monitor do meu laptop, o Ubuntu ainda parece pensar que está conectado e não atualiza a tela. Esse problema é específico do Ubuntu (não ocorre no Windows) e meu monitor funcionou bem com outro laptop (Ubuntu 13.04, exatamente os mesmos drivers).

O quickfix:

  • aberto system settings
  • clique Displays

Especificações úteis:

  • Drivers gráficos : nvidia-313 (o problema também ocorre com os outros drivers proprietários)
  • Placa gráfica : Nvidia Quadro K1000M
  • Monitor : Benq ET-0019-N
  • Cabo : VGA D-sub DE15
  • SO : Ubuntu 13.04

Eu gostaria que o Ubuntu atualizasse as configurações de vídeo automaticamente sempre que o cabo do monitor fosse desconectado. Como eu faria isso?


Que monitor é esse? Alguns monitores mais antigos não enviam nenhum sinal para que o computador não saiba se está lá, mas acho que ainda não existem muitos em serviço. Além disso, qual modelo exato de placa gráfica você possui e está usando o driver proprietário ou o driver gratuito?
Gilles 'SO- stop be evil'

Editei minha pergunta para responder à sua.
Joren

1
As configurações de exibição são atualizadas quando você inicia o computador sem o cabo e o conecta? Caso contrário, eles são atualizados quando você emite o comando xrandrmanualmente?
Jorge Suárez de Lis

Você não pode tentar outro monitor e cabo? Sei que está funcionando no Windows, talvez o Windows esteja usando outro método para a detecção automática.
Jorge Suárez de Lis

Eu não tenho outro monitor :(
Joren 12/12

Respostas:


2

Há um bug antigo no Launchpad - bug # 306735 - que foi marcado como inválido, a explicação é que é um problema conhecido, mas bastante complexo (mais explicações aqui ).

Então, até onde eu sei, não existe um método automático para o que você pediu no verdadeiro sentido. Mas você pode usar autorandr(você precisa instalar disperprimeiro - execute a sudo apt-get install disperpartir do terminal ), um script de Stefan Tomanek . Usando esse script ( autorandr), você pode adicionar um atalho de teclado para autorandr --changecomando e tudo que você precisa fazer ao conectar ou desconectar um monitor externo é pressionar esse atalho de teclado. Tudo isso é explicado muito bem nesta resposta (acabei de testar no Ubuntu 13.04 e tudo vai bem).

Depois de testar o script no terminal, você deve ver a seguinte postagem se desejar adicionar um atalho de teclado personalizado para o script:


Eu tinha disper já instalada, mas autorand não foi encontrado
Joren

@Joren O que você quer dizer com não foi encontrado? É um script no link fornecido na resposta. Você precisa de ajuda sobre como usá-lo ou executá-lo?
Radu Rădeanu

Oh Nevermind, eu pensei que veio automagicamente com disper
Joren

@ Koren Não, não (pensei que minha resposta fosse clara). Você precisa criar manualmente um script de arquivo chamado autorandrou autodisper, colocar todo o texto daqui exatamente como está e salvá-lo em seu ~/bindiretório. Não se esqueça de torná-lo executável com: chmod +x ~/bin/autorandr(ou chmod +x ~/bin/autodisper) e, em seguida, basta executar autorandr --help(ou autodisper --help) para obter mais ajuda.
Radu Rădeanu 14/09

1
Eu ainda tinha esse problema usando o 16.04! = / O disperainda está por aí, mas eu tive que executar algo parecido disper -ee tudo voltou ao trabalho, até o aplicativo Display.
Nigini

1

Se você está executando algum tipo de driver proprietário da nvidia, então, como mencionado na resposta de Jorge, apenas executar xrandrpor conta própria parece corrigir o problema.


1

No Apêndice B no README do driver NVIDIA :

Option "UseHotplugEvents" "boolean"

Quando essa opção está ativada, o driver NVIDIA X gera eventos alterados no monitor RandR quando os monitores são conectados ou desconectados de uma GPU NVIDIA. Alguns ambientes de área de trabalho escutam esses eventos e reconfiguram dinamicamente a área de trabalho quando as telas são adicionadas ou removidas.

Desabilitar esta opção suprime a geração desses eventos RandR para monitores que não sejam DisplayPort, ou seja, aqueles conectados via VGA, DVI ou HDMI. Eventos de hotplug não podem ser suprimidos para monitores conectados via DisplayPort.

Observe que investigar a configuração da tela (por exemplo, com xrandr ou nvidia-settings) pode fazer com que os eventos alterados da tela do RandR sejam gerados, independentemente de esta opção estar ativada ou desativada. Além disso, algumas portas VGA são incapazes de detectar hotplug: nessas portas, a adição ou remoção de monitores só pode ser detectada analisando novamente a configuração do monitor.

Padrão: ativado. O driver irá gerar eventos RandR quando as telas forem adicionadas ou removidas.

Portanto, supondo que você não tenha desativado essa opção, o problema se restringe a uma dessas alternativas:

  • O cabo VGA ou o conector VGA na placa possui alguns pinos DDC quebrados (pino 12, pino 15 ou pino 9). Por favor, conecte outro cabo VGA e tente novamente.

  • Sua placa de vídeo baseada na Nvidia Quadro K1000M possui um conector que NÃO suporta essa detecção e chamadas xrandrou equivalentes (como abrir as Configurações de vídeo) acionam essa detecção. Se for esse o caso, isso nunca funcionará - mas a detecção não deve funcionar em outros sistemas operacionais. Mas nunca vi isso pessoalmente.

  • Ou talvez haja algum bug no driver NVIDIA que impeça que essa detecção funcione corretamente. Tente outras versões do driver (como 304) e veja se o problema persiste.


Obrigado pela sua resposta, mas como afirmei na minha pergunta: O problema não ocorre quando eu inicializo minha máquina no Windows. Portanto, podemos excluir as duas primeiras alternativas. Eu também tentei a terceira alternativa e não funcionou.
Joren

Está bem. Esta não é uma resposta válida, mas para tentar ajudá-lo: enquanto você espera por uma resposta, pergunte também no fórum do NVIDIA Linux .
Jorge Suárez de Lis

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.