comment empêcher Xorg d'utiliser le panneau d'affichage de mon ordinateur portable Linux?

12

J'ai un ordinateur portable (~ 5 ans HP compaq nc6400 exécutant Fedora Linux) que j'utilise la plupart du temps comme ordinateur de bureau. Il est branché sur une station d'accueil avec son couvercle fermé et connecté via celui-ci par un câble DVI à un grand écran LCD externe.

Pour diverses raisons (l'accueil de connexion apparaît sur un écran fermé, une carte graphique limitée ne peut pas faire de la 3D sur les deux écrans à la fois) Je voudrais éviter que le panneau d'affichage intégré de l'ordinateur portable soit utilisé par X. Une fois connecté et sur mon bureau (c'est ainsi que je l'utilise environ 97% du temps), j'aimerais simplement qu'il n'utilise pas le panneau d'ordinateur portable intégré. Le démarrage n'est pas un problème particulier, car par défaut, tout est mis en miroir entre les deux écrans. En outre, cela ne me dérange pas une solution «manuelle», de sorte que je dois annuler les paramètres dans les rares occasions où j'utilise l'ordinateur portable loin de mon bureau.

Une fois connecté, je peux configurer Gnome pour qu'il n'utilise que le moniteur externe et le panneau de l'ordinateur portable est marqué "off", mais cela n'a aucun effet sur l'état initial configuré automatiquement de X et sur l'écran d'accueil avant la connexion. Étonnamment, l'ordinateur portable ne semble pas avoir de capteur de couvercle, donc l'ouverture ou la fermeture du couvercle ne semble déclencher aucun événement. Je peux utiliser xrandr -display :0 --output LVDS1 --off --output DVI1 --autosur un VC séparé avant la connexion, mais c'est toujours après le fait que X ait démarré et découvert et décidé d'utiliser les deux écrans.

J'ai essayé de configurer Xorg en créant un fichier /etc/X11/xorg.conf.d/01-turn-off-laptop-display.confqui contient:

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

Mais cela n'a pas eu d'effet utile. La carte vidéo est 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 machine utilise plusieurs versions de Fedora Linux (x86_64) depuis la version 10/11 environ). J'essaie actuellement Fedora 15 beta (qui inclut Gnome 3), mais le problème existait dans les versions précédentes du système d'exploitation.

Norky
la source
ahh, d'accord - je ne savais pas quel était le meilleur endroit pour demander. Je présume avec un représentant. sur 1 Je ne peux pas déplacer ma question entre les sites SE donc je dois juste laisser quelqu'un d'autre le faire?
Norky
@Norky J'ai signalé la question aux modérateurs.
Let_Me_Be
@Let_Me_Be et @Norky - cette question est également sur le sujet ici. Mais, @Norky, si vous préférez personnellement poser la question sur Unix.SE, n'hésitez pas (et @ commentez afin que je puisse supprimer celui-ci), mais sinon il n'y a rien de mal à cela ici.
@ DMA57361 - Je n'ai pas de préférence particulière, selon ce que vous pensez être le mieux :)
Norky
Ah, @Norky, le fait est que vous pouvez utiliser celui qui vous semble le mieux - c'est votre question et c'est parfaitement valable sur les deux sites, vous obtiendrez simplement des réponses d'une communauté différente. Donc, si cela vous convient ici, nous le laisserons ici pour l'instant. Cependant, si le message n'a pas reçu de réponse dans un proche avenir, le @ me revient à nouveau et je vais le changer pour vous.

Réponses:

9

J'ai pu atteindre l'objectif souhaité avec le xorg.conf suivant:

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'élément critique étant Option "Ignore" "true". Je pourrais peut-être simplifier davantage, mais cela fonctionne. Je ne sais pas encore ce qui se passera lorsque / si j'utilise l'ordinateur portable loin de l'écran externe, il se peut que X se termine avec une erreur - ce n'est pas une solution parfaite mais je peux déplacer la configuration à l'écart dans ce cas.

Norky
la source
4

Je suggérerais une approche légèrement différente qui pourrait être plus flexible pour les rares occasions où vous souhaitez utiliser l'ordinateur portable comme ordinateur portable.

Selon votre gestionnaire d'affichage (probablement GDM, KDM ou LightDM), vous pouvez exécuter un script au démarrage du gestionnaire d'affichage. Vous n'aurez pas du tout besoin d'un fichier xorg.conf modifié. l'emplacement du script est le suivant (1):

  • KDM: / etc / kde / kdm / Xsetup (en bas)
  • SDDM: / etc / X11 / xdm / Xsetup (en bas)
  • XDM: / etc / X11 / xdm / Xsetup (en bas)
  • GDM: / etc / gdm / Init / Default - placez le code de script juste au-dessus de la ligne "/ sbin / initctl". (1)
  • LightDM: /etc/lightdm/lightdm.conf - "display-setup-script =" pointe vers le script où vous le souhaitez. Assurez-vous que la première ligne du script est #! / Bin / sh et qu'elle est exécutable.

Le script peut être quelque chose comme ça. Vous devrez remplacer les noms de moniteur par ceux appropriés à votre machine. J'ai essayé de deviner sur la base de votre xorg.conf ci-dessus.

/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

Cela permettra de tester si votre moniteur DVI est connecté et s'il est activé au lieu de l'affichage intégré. J'ai une version beaucoup plus compliquée de cela qui fait que ma station d'accueil pour ordinateur portable fonctionne bien, mais je peux toujours l'utiliser ailleurs. C'est plus compliqué pour moi car j'utilise 5 écrans au travail.

(1) quelques informations sur l'emplacement des fichiers sur http://forum.xfce.org/viewtopic.php?pid=25026#p25026

Concasseur
la source
3

version légèrement modifiée du xorg.conf du post précédent

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

semble fonctionner pour la puce Intel NM10. La boîte a vga pour le "grand écran"

tpost
la source
1

Si vous utilisez Option "ignore" "true"dans, /etc/X11/xorg.confvous ne pourrez pas du tout utiliser cette sortie avec xrandr(ou selon les outils). En utilisant cette configuration, je viens de désactiver ma sortie 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

Notez que chaque ligne de configuration est nécessaire pour activer le DVI-D (en pleine résolution) et pour désactiver HDMI.

Pour trouver vos sorties, exécutez xrandr -qet adaptez en Option "Monitor-...conséquence. Les sections de page de manuel pertinentes sont les suivantes:

   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
la source