Wie verhindere ich, dass Xorg das Anzeigefeld meines Linux-Laptops verwendet?

12

Ich habe einen Laptop (~ 5 Jahre alter HP Compaq nc6400 mit Fedora Linux), den ich die meiste Zeit als Desktop-Computer verwende. Es wird mit geschlossenem Deckel an eine Dockingstation angeschlossen und über das DVI-Kabel mit einem großen externen LCD-Display verbunden.

Aus verschiedenen Gründen (Anmelde-Begrüßer erscheint auf geschlossenem Display, eingeschränkte Grafikkarte kann nicht auf beiden Displays gleichzeitig 3D ausführen) möchte ich verhindern, dass das integrierte Display des Laptops überhaupt von X verwendet wird. Im Dock und auf meinem Schreibtisch (so benutze ich ihn in etwa 97% der Fälle) möchte ich, dass das integrierte Laptop-Panel einfach nicht verwendet wird. Das Booten ist kein besonderes Problem, da standardmäßig alles zwischen den beiden Displays gespiegelt wird. Außerdem macht mir eine manuelle Lösung nichts aus, sodass ich Einstellungen in den seltenen Fällen rückgängig machen muss, wenn ich den Laptop nicht auf meinem Schreibtisch verwende.

Sobald ich mich angemeldet habe, kann ich Gnome so konfigurieren, dass es nur den externen Monitor verwendet und das Laptop-Panel als "Aus" markiert ist. Dies hat jedoch keine Auswirkungen auf den anfänglichen automatisch konfigurierten Status von X und die Begrüßungsanzeige vor der Anmeldung. Überraschenderweise scheint der Laptop keinen Deckelsensor zu haben, sodass das Öffnen oder Schließen des Deckels keine Ereignisse auslöst. Ich kann es xrandr -display :0 --output LVDS1 --off --output DVI1 --autovor dem Anmelden in einer separaten VC verwenden, aber dies ist immer noch der Fall, nachdem X gestartet und erkannt wurde und sich entschieden hat, beide Anzeigen zu verwenden.

Ich habe versucht, Xorg zu konfigurieren, indem ich eine Datei erstellt habe, /etc/X11/xorg.conf.d/01-turn-off-laptop-display.confdie Folgendes enthält:

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

Dies hatte jedoch keinen nützlichen Effekt. Die Grafikkarte ist 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

Auf dem Computer werden seit ungefähr Version 10/11 verschiedene Versionen von Fedora Linux (x86_64) ausgeführt. Ich versuche derzeit Fedora 15 Beta (einschließlich Gnome 3), aber das Problem bestand in früheren Betriebssystemversionen.

Norky
quelle
ahh, okay - ich war mir nicht sicher, welcher der beste Ort war, um zu fragen. Ich nehme mit einem Repräsentanten an. von 1 Ich kann meine Frage nicht zwischen SE-Sites verschieben, sodass ich es nur jemand anderem überlassen muss?
Norky
@Norky Ich habe die Frage für Moderatoren markiert.
Let_Me_Be
@Let_Me_Be und @Norky - auch diese Frage ist hier ein Thema. @Norky, wenn Sie die Frage lieber persönlich auf Unix.SE stellen möchten, wenden Sie sich bitte an uns.
@ DMA57361 - Ich habe keine besondere Präferenz, was auch immer Sie für am besten halten :)
Norky
Ah, @Norky, der Punkt ist, dass Sie das verwenden können, was Sie für am besten halten - es ist Ihre Frage und es ist auf beiden Seiten vollkommen gültig. Sie erhalten nur Antworten von einer anderen Community. Also, wenn es dir hier recht ist, werden wir es hier für den Moment belassen. Wenn der Beitrag jedoch in naher Zukunft keine Antwort erhalten hat, kehre das @ me zurück und ich werde es für dich verschieben.

Antworten:

9

Das gewünschte Ziel konnte ich mit folgender xorg.conf erreichen:

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

das kritische Element ist Option "Ignore" "true". Ich könnte dies weiter vereinfachen, aber es funktioniert. Ich weiß noch nicht, was passieren wird, wenn / wenn ich den Laptop außerhalb des externen Bildschirms verwende, wird X möglicherweise mit einem Fehler beendet - keine perfekte Lösung, aber ich kann die Konfiguration in diesem Fall aus dem Weg räumen.

Norky
quelle
4

Ich würde einen etwas anderen Ansatz vorschlagen, der für die seltenen Fälle, in denen Sie den Laptop als Laptop verwenden möchten, flexibler sein könnte.

Abhängig von Ihrem Display Manager (wahrscheinlich GDM, KDM oder LightDM) können Sie beim Start des Display Managers ein Skript ausführen. Sie benötigen überhaupt keine geänderte xorg.conf-Datei. Der Speicherort für das Skript lautet wie folgt (1):

  • KDM: / etc / kde / kdm / Xsetup (unten)
  • SDDM: / etc / X11 / xdm / Xsetup (unten)
  • XDM: / etc / X11 / xdm / Xsetup (unten)
  • GDM: / etc / gdm / Init / Default - Platzieren Sie den Skriptcode direkt über der Zeile "/ sbin / initctl". (1)
  • LightDM: /etc/lightdm/lightdm.conf - "display-setup-script =" zeigt auf das Skript, wo immer Sie es haben möchten. Stellen Sie sicher, dass die erste Zeile des Skripts #! / Bin / sh lautet und ausführbar ist.

Das Skript kann ungefähr so ​​aussehen. Sie müssen die Monitornamen durch die für Ihren Computer geeigneten Namen ersetzen. Ich habe versucht, basierend auf Ihrer xorg.conf oben zu erraten.

/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

Hiermit wird geprüft, ob Ihr DVI-Monitor angeschlossen ist und ob er anstelle des eingebauten Displays aktiviert ist. Ich habe eine viel kompliziertere Version davon, mit der mein Laptop bei der Arbeit gut angedockt werden kann, aber für die Verwendung an anderer Stelle noch in Ordnung ist. Es ist komplizierter für mich, weil ich 5 Bildschirme bei der Arbeit benutze.

(1) Informationen zum Speicherort der Datei finden Sie unter http://forum.xfce.org/viewtopic.php?pid=25026#p25026

Steinbrecher
quelle
3

leicht modifizierte Version der xorg.conf des vorherigen Beitrags

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

scheint für Intel NM10 Chip zu funktionieren. Die box hat vga out für das "big display"

tpost
quelle
1

Wenn Sie Option "ignore" "true"in verwenden, können /etc/X11/xorg.confSie diese Ausgabe mit xrandr(oder abhängigen Tools) überhaupt nicht verwenden. Mit dieser Konfiguration habe ich gerade meinen HDMI-Ausgang deaktiviert:

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

Beachten Sie, dass jede einzelne Konfigurationszeile erforderlich ist, um DVI-D (bei voller Auflösung) zu aktivieren und HDMI zu deaktivieren.

Um Ihre Ausgaben zu finden, führen Sie xrandr -qund passen Sie sich Option "Monitor-...entsprechend an. Die relevanten Manpage-Abschnitte sind:

   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)
Jakob
quelle