come posso impedire a Xorg di usare il display del mio laptop Linux?


12

Ho un laptop (~ 5 anni HP compaq nc6400 con Fedora Linux) che uso la maggior parte delle volte come una macchina desktop. È collegato a una docking station con il coperchio chiuso e collegato tramite cavo DVI a un ampio display LCD esterno.

Per vari motivi (la schermata di accesso appare su uno schermo chiuso, una scheda grafica limitata non è in grado di eseguire il 3D su entrambi gli schermi contemporaneamente) Vorrei impedire a X di utilizzare il pannello di visualizzazione integrato del laptop. Mentre ancorato e sulla mia scrivania (che è il modo in cui lo uso circa il 97% delle volte), vorrei semplicemente non utilizzare il pannello del laptop integrato. L'avvio non è un problema particolare, poiché per impostazione predefinita tutto è speculare tra i due display. Inoltre, non mi dispiace una soluzione "manuale", tale da dover annullare le impostazioni in quelle rare occasioni in cui utilizzo il laptop lontano dalla mia scrivania.

Una volta effettuato l'accesso, posso configurare Gnome in modo che utilizzi solo il monitor esterno e il pannello del laptop sia contrassegnato "off", tuttavia ciò non ha alcun effetto sullo stato iniziale auto-configurato di X e sul display di benvenuto pre-login. Sorprendentemente il laptop non sembra avere un sensore del coperchio, quindi l'apertura o la chiusura del coperchio non sembra innescare alcun evento. Posso usare xrandr -display :0 --output LVDS1 --off --output DVI1 --autosu un VC separato prima dell'accesso, ma questo è ancora dopo il fatto che X ha iniziato, scoperto e deciso di utilizzare entrambi i display.

Ho provato a configurare Xorg creando un file /etc/X11/xorg.conf.d/01-turn-off-laptop-display.conf che contiene:

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

Tuttavia, ciò non ha avuto un effetto utile. La scheda video è 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

La macchina esegue varie versioni di Fedora Linux (x86_64) dalla versione 10/11). Attualmente sto provando Fedora 15 beta (che include Gnome 3), ma il problema si è verificato nelle versioni precedenti del sistema operativo.


ah, okay - Non ero sicuro di quale fosse il posto migliore per chiedere. Presumo con un rappresentante. di 1 Non riesco a spostare la mia domanda tra i siti SE quindi devo lasciare che qualcun altro lo faccia?
Norky,

@Norky Ho segnalato la domanda ai moderatori.
Let_Me_Be

@Let_Me_Be e @Norky: anche questa domanda è in tema qui. Ma, @Norky, se personalmente preferisce porre la questione su Unix.SE invece poi non esitate (e @ commentare essere di nuovo in modo da poter rimuovere questo), ma per il resto non c'è niente di sbagliato qui.

@ DMA57361 - Non ho preferenze particolari, qualunque pensi sia la migliore :)
Norky,

Ah, @Norky, il punto è che puoi usare quello che pensi sia il migliore - è la tua domanda ed è perfettamente valido su entrambi i siti, otterrai risposte da una comunità diversa. Quindi, se stai bene qui, lo lasceremo qui per ora. Tuttavia, se il post non ha ricevuto una risposta nel prossimo futuro, @ me torna di nuovo e lo sposterò per te.

Risposte:


9

Sono stato in grado di raggiungere l'obiettivo desiderato con il seguente 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

l'elemento critico è Option "Ignore" "true". Potrei essere in grado di semplificare ulteriormente questo, ma funziona. Non so ancora cosa succederà quando / se uso il laptop lontano dal display esterno, forse X uscirà con un errore - non una soluzione perfetta ma in questo caso posso spostare la configurazione di mezzo.


4

Suggerirei un approccio leggermente diverso che potrebbe essere più flessibile per quelle rare occasioni in cui si desidera utilizzare il laptop come laptop.

A seconda del display manager (probabilmente GDM, KDM o LightDM) è possibile eseguire uno script all'avvio del display manager. Non avrai bisogno di un file xorg.conf modificato. la posizione dello script è la seguente (1):

  • KDM: / etc / kde / kdm / Xsetup (in basso)
  • SDDM: / etc / X11 / xdm / Xsetup (in basso)
  • XDM: / etc / X11 / xdm / Xsetup (in basso)
  • GDM: / etc / gdm / Init / Default - posiziona il codice dello script appena sopra la riga "/ sbin / initctl". (1)
  • LightDM: /etc/lightdm/lightdm.conf - "display-setup-script =" punta allo script dove vuoi che sia. Assicurati che la prima riga dello script sia #! / Bin / sh ed è eseguibile.

La sceneggiatura può essere qualcosa del genere. Dovrai sostituire i nomi dei monitor con quelli appropriati per il tuo computer. Ho provato a indovinare in base al tuo xorg.conf sopra.

/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

Questo verificherà se il tuo monitor DVI è collegato e se è abilitato al posto del display integrato. Ho una versione molto più complicata di questo che rende il mio laptop dock ben funzionante, ma va comunque bene per l'uso altrove. È più complicato per me perché sto usando 5 schermi al lavoro.

(1) alcune informazioni sulla posizione del file da http://forum.xfce.org/viewtopic.php?pid=25026#p25026


3

versione leggermente modificata del precedente xorg.conf del post

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

sembra funzionare per il chip Intel NM10. La scatola ha vga fuori per il "grande display"


1

Se si utilizza Option "ignore" "true"in /etc/X11/xorg.confpoi non sarà in grado di utilizzare tale uscita con xrandr(o strumenti di base) a tutti. Usando questa configurazione ho appena disabilitato la mia uscita 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

Si noti che ogni singola riga di configurazione è necessaria per abilitare DVI-D (alla massima risoluzione) e disabilitare HDMI.

Per trovare le uscite eseguite xrandr -qe adattarsi di Option "Monitor-...conseguenza. Le sezioni manpage rilevanti sono:

   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)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.