Como fazer com que o linux detecte / re-monitore monitores com o driver intel i915?

1

Eu tenho um laptop rodando linux com nvidia optimus / intel hybrid graphics onde todas as saídas estão conectadas ao cartão intel. É acionado pelo driver i915.

Um monitor externo ou beamer é descoberto apenas uma vez em um ciclo de inicialização: Se eu desabilitá-lo (e conectá-lo novamente), ele não pode ser ativado novamente, porque o kernel do Linux não o detecta mais: Não há Eventos udev ou acpi em plug / unplug e sysfs, no meu caso /sys/class/drm/card0-DP-1/status , indica que a saída está desconectada. Após a reinicialização, a tela é detectada novamente e novamente exatamente uma vez. Suspender / hibernar e retomar também é suficiente, mas somente se a saída for desconectada durante a reinicialização.

Eu acho que isso é de alguma forma relacionado ao kernel sondando / reprovando para dispositivos de saída na inicialização. O kernel pode, de alguma forma, ser induzido a testar novamente os monitores e, assim, esperançosamente, detectá-los novamente?

    
por jorsn 23.04.2018 / 19:46

1 resposta

3

Esta não é a abordagem xrandr que eu sei que funciona no X, mas para o console você pode tentar isso - você pode escrever para o arquivo /sys/class/drm/card0-DP-1/status também. Não consegui encontrar documentação adequada, mas felizmente o Linux é open source. Analisando o código-fonte , parece que são necessários alguns valores: detect , on , on-digital e off .

Portanto, echo detect > /sys/class/drm/card0-DP-1/status deve forçar uma nova verificação de um monitor. Ou echo on-digital > /sys/class/drm/card0-DP-1/status pode conseguir ativá-lo, independentemente do que a detecção julgue.

edit: Em X, usei isso para lidar com HDMI que não detectou a conexão - ele ativará a saída. Mas infelizmente apenas vídeo, o áudio HDMI não funciona (e aparentemente não é possível sem um patch de kernel):

xrandr --newmode "Mode 2" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
xrandr --addmode HDMI-1 "Mode 2"
xrandr --output HDMI-1 --mode "Mode 2" --right-of LVDS-1

Todos esses números especificam os horários dos vídeos; normalmente ele é detectado automaticamente, a maneira mais fácil de obtê-los é pegar o modo que ele está usando quando você inicializa com ele, então está funcionando ( xrandr --verbose irá mostrá-los).

    
por 23.04.2018 / 21:27