como faço para evitar que o Xorg use o painel de exibição do meu laptop Linux?

12

Eu tenho um laptop (~ 5 anos de idade HP Compaq nc6400 rodando o Fedora Linux) que eu uso a maior parte do tempo como uma máquina desktop. Ele é conectado a uma estação de acoplamento com a tampa fechada e conectada por meio de um cabo DVI a um grande display LCD externo.

Por várias razões (a saudação de login aparece no visor fechado, a placa gráfica limitada não pode fazer 3D para ambos os monitores de uma só vez) Eu gostaria de impedir que o painel de exibição integrado do laptop fosse usado pelo X. Enquanto ancorada e na minha mesa (que é como eu uso cerca de 97% do tempo), eu gostaria que simplesmente não usasse o painel de laptop integrado. A inicialização não é um problema específico, pois, por padrão, tudo é espelhado entre as duas exibições. Além disso, não me importo com uma solução "manual", de modo que eu tenha que desfazer as configurações nas raras ocasiões em que estou usando o laptop longe da minha mesa.

Uma vez logado, eu posso configurar o Gnome para que ele use apenas o monitor externo e o painel do laptop esteja marcado como "off", mas isso não afeta o estado inicial de X e a tela de pré-login. Surpreendentemente, o laptop não parece ter um sensor de tampa, portanto, abrir ou fechar a tampa não parece acionar nenhum evento. Eu posso usar xrandr -display :0 --output LVDS1 --off --output DVI1 --auto em um VC separado antes do login, mas isso ainda é após o fato de X ter iniciado e descoberto e decidido usar os dois displays.

Eu tentei configurar o Xorg criando um arquivo /etc/X11/xorg.conf.d/01-turn-off-laptop-display.conf que contém:

Section "Monitor"
    Identifier  "laptop panel"
    Option  "Monitor-LVDS1" "laptop panel"
    Option  "Enable" "no"
EndSection
Section "Monitor"
    Identifier  "big display"
    Option  "Monitor-DVI1" "big display"
EndSection

Section "Screen"
    Identifier  "main"
    Device  "Default"
    Monitor "big display"
EndSection

No entanto, isso não teve um efeito útil. A placa de vídeo é a Intel 945GM:

[dan@khorium ~]$ sudo lspci -v -s 0:2
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) (prog-if 00 [VGA controller])
    Subsystem: Hewlett-Packard Company Device 30ad
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at f4600000 (32-bit, non-prefetchable) [size=512K]
    I/O ports at 4000 [size=8]
    Memory at e0000000 (32-bit, prefetchable) [size=256M]
    Memory at f4680000 (32-bit, non-prefetchable) [size=256K]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
    Capabilities: [d0] Power Management version 2
    Kernel driver in use: i915
    Kernel modules: i915

00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
    Subsystem: Hewlett-Packard Company Device 30ad
    Flags: bus master, fast devsel, latency 0
    Memory at f4700000 (32-bit, non-prefetchable) [size=512K]
    Capabilities: [d0] Power Management version 2

A máquina tem rodado várias versões do Fedora Linux (x86_64) desde a versão 10/11. Atualmente estou tentando o Fedora 15 beta (que inclui o Gnome 3), mas o problema já existia em versões anteriores do sistema operacional.

    
por Norky 20.05.2011 / 12:47

4 respostas

9

Consegui alcançar o objetivo desejado com o seguinte xorg.conf:

Section "Monitor"
        Identifier      "laptop panel"
        Option  "ignore"        "true"
EndSection
Section "Monitor"
        Identifier      "big display"
EndSection    
Section "Device"
        Identifier      "onboard"
        Option  "Monitor-LVDS1" "laptop panel"
        Option  "Monitor-DVI1" "big display"
EndSection

o elemento crítico é Option "Ignore" "true" . Eu posso simplificar isso ainda mais, mas funciona. Eu ainda não sei o que acontecerá quando / se eu usar o laptop longe do monitor externo, possivelmente X irá sair com um erro - não é uma solução perfeita, mas eu posso mover a configuração para fora do caminho naquele evento.

    
por 24.05.2011 / 11:45
4

Eu sugeriria uma abordagem um pouco diferente, que poderia ser mais flexível para as raras ocasiões em que você deseja usar o laptop como um laptop.

Dependendo do gerenciador de exibição (provavelmente GDM, KDM ou LightDM), é possível executar um script à medida que o gerenciador de exibição é iniciado. Você não precisará de um arquivo xorg.conf modificado. a localização do script é a seguinte (1):

  • KDM: / etc / kde / kdm / Xsetup (na parte inferior)
  • SDDM: / etc / X11 / xdm / Xsetup (na parte inferior)
  • XDM: / etc / X11 / xdm / Xsetup (na parte inferior)
  • GDM: / etc / gdm / Init / Default - insira o código de script logo acima da linha "/ sbin / initctl". (1)
  • LightDM: /etc/lightdm/lightdm.conf - "display-setup-script=" aponta para o script onde quer que ele esteja. Certifique-se de que a primeira linha do script seja #! / Bin / sh e que seja executável.

O script pode ser algo assim. Você precisará substituir os nomes dos monitores pelos adequados para sua máquina. Eu tentei adivinhar com base no seu xorg.conf acima.

/usr/bin/xrandr --current | grep "DVI1 connected "
if [ $? -eq 0 ]; then
  echo "DVI found"
  sleep 1s 
  /usr/bin/xrandr --output LVDS1 --off
  /usr/bin/xrandr --output DVI1 --auto --primary
fi

Isso testará se o seu monitor DVI está conectado e se está habilitado em vez do monitor embutido. Eu tenho uma versão muito mais complicada disso que faz meu laptop atracar bem no trabalho, mas ainda assim estar bem para uso em outros lugares. É mais complicado para mim porque estou usando 5 telas no trabalho.

(1) algumas informações de localização de arquivos do link

    
por 01.07.2013 / 19:59
3

versão ligeiramente modificada do xorg.conf da postagem anterior

Section "Monitor"
   Identifier "hdmi out"
   Option "ignore" "true"
EndSection

Section "Monitor"
   Identifier "big display"
EndSection

Section "Device"
   Identifier "onboard"
   Option "Monitor-LVDS1" "hdmi out"
   Option "Monitor-VGA1" "big display"
EndSection

parece funcionar para chip Intel NM10. A caixa tem vga para o "grande display"

    
por 13.01.2012 / 18:07
1

Se você usar Option "ignore" "true" em /etc/X11/xorg.conf , você não poderá usar essa saída com xrandr (ou ferramentas dependentes). Usando essa configuração eu apenas desativei minha saída HDMI:

Section "Monitor"
        Identifier "My-DVI-D"
        Option "Primary" "true"
        Option "PreferredMode" "1920x1080x60.0"
EndSection

Section "Monitor"
        Identifier "My-HDMI"
        Option "Enable" "false"
        Option "RightOf" "My-DVI-D"
EndSection

Section "Device"
        Identifier "onboard"
        Option "Monitor-HDMI1" "My-DVI-D"
        Option "Monitor-HDMI2" "My-HDMI"
EndSection

Note que cada linha de configuração é necessária para ativar o DVI-D (em resolução máxima) e para desativar o HDMI.

Para encontrar suas saídas, execute xrandr -q e adapte Option "Monitor-... de acordo. As seções relevantes do manpage são:

   Option "Enable" "bool"
          This optional entry specifies whether the monitor should be turned on at  startup.   By  default,  the  server  will
          attempt to enable all connected monitors.  (RandR 1.2-supporting drivers only)
...
   Option "PreferredMode" "name"
          This optional entry specifies a mode to be marked as the preferred initial mode of the monitor.  (RandR 1.2-support‐
          ing drivers only)
...
   Option "Primary" "bool"
          This optional entry specifies that the monitor should be treated as the primary monitor. (RandR 1.2-supporting driv‐
          ers only)
...
   With RandR 1.2-enabled drivers, monitor sections may be tied to specific outputs of the video card.  Using the name of  the
   output  defined by the video driver plus the identifier of a monitor section, one associates a monitor section with an out‐
   put by adding an option to the Device section in the following format:

   Option "Monitor-outputname" "monitorsection"

   (for example, Option "Monitor-VGA" "VGA monitor" for a VGA output)
    
por 06.02.2017 / 21:33