web-dev-qa-db-ja.com

LinuxラップトップのディスプレイパネルをXorgが使用できないようにするにはどうすればよいですか?

私はほとんどの場合デスクトップマシンとして使用しているラップトップ(Fedora Linuxを実行する5年前のHP compaq nc6400)を持っています。ふたを閉じてドッキングステーションに接続し、DVIケーブルを介して大型の外部LCD=ディスプレイに接続します。

さまざまな理由(クローズドディスプレイにログイングリッターが表示される、限られたグラフィックカードでは両方のディスプレイに同時に3Dを実行できない)ラップトップの統合ディスプレイパネルがXでまったく使用されないようにしたいと思います。ドッキングして机の上にいる間(これは私が使用する方法の約97%です)、統合されたラップトップパネルを使用しないようにしたいと思います。デフォルトではすべてが2つのディスプレイ間でミラーリングされるため、起動は特定の問題ではありません。また、自分のデスクから離れた場所でラップトップを使用しているときに、まれに設定を元に戻さなければならないなど、「手動」のソリューションを気にしません。

ログインしたら、外部モニターのみを使用してラップトップパネルが「オフ」とマークされるようにGnomeを構成できますが、Xの初期自動構成状態およびログイン前のグリーターの表示には影響しません。驚いたことに、ラップトップにはふたセンサーがないように見えるので、ふたを開いたり閉じたりしても、イベントはトリガーされません。私は使えます xrandr -display :0 --output LVDS1 --off --output DVI1 --auto別のVCをログイン前に使用しますが、これはXが起動して検出され、両方のディスプレイを使用することを決定した後のことです。

ファイルを作成してXorgを設定してみました/etc/X11/xorg.conf.d/01-turn-off-laptop-display.conf を含む:

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

しかし、それは有益な効果をもたらしませんでした。ビデオカードは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

マシンは、バージョン10/11以来、Fedora Linux(x86_64)のさまざまなバージョンを実行しています。現在、Fedora 15ベータ(Gnome 3を含む)を試していますが、以前のOSリリースにも問題がありました。

12
Norky

次の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

重要な要素はOption "Ignore" "true"。これをさらに簡略化できるかもしれませんが、うまくいきます。ラップトップを外部ディスプレイから離して使用した場合、またはXがエラーで終了する可能性があるので、何が起こるかはまだわかりません。

9
Norky

ラップトップとしてラップトップを使用したいというまれな場合に、より柔軟であるかもしれない少し異なるアプローチを提案します。

ディスプレイマネージャー(おそらくGDM、KDM、またはLightDM)に応じて、ディスプレイマネージャーの起動時にスクリプトを実行できます。変更されたxorg.confファイルはまったく必要ありません。スクリプトの場所は次のとおりです(1)。

  • KDM:/ etc/kde/kdm/Xsetup(下部)
  • SDDM:/ etc/X11/xdm/Xsetup(下部)
  • XDM:/ etc/X11/xdm/Xsetup(下部)
  • GDM:/ etc/gdm/Init/Default-"/ sbin/initctl"行のすぐ上にスクリプトコードを配置します。 (1)
  • LightDM:/etc/lightdm/lightdm.conf-"display-setup-script ="は、スクリプトを任意の場所にポイントします。スクリプトの最初の行が#!/ bin/shであり、実行可能であることを確認してください。

スクリプトは次のようなものにすることができます。モニター名をマシンに適した名前に置き換える必要があります。上記のxorg.confに基づいて推測を試みました。

/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

これは、DVIモニターが接続されているかどうか、および内蔵ディスプレイの代わりに有効になっているかどうかをテストします。私のラップトップドックを仕事でうまく利用できるようにする、もっと複雑なバージョンがありますが、それでも他の場所での使用には問題ありません。私は仕事で5つの画面を使用しているため、私にとってはより複雑です。

(1) http://forum.xfce.org/viewtopic.php?pid=25026#p25026 からのファイルの場所情報

4
stonecrusher

以前の投稿のxorg.confのわずかに変更されたバージョン

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

インテルNM10チップで動作するようです。ボックスには、「大きなディスプレイ」用のVGAがあります。

3
tpost

Option "ignore" "true"/etc/X11/xorg.confを使用すると、その出力をxrandr(または依存するツール)で使用できなくなります。この設定を使用して、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

DVI-Dを(フル解像度で)有効にし、HDMIを無効にするには、すべての構成行が必要です。

出力を見つけるには、xrandr -qを実行し、それに応じてOption "Monitor-...を調整します。関連するマンページのセクションは次のとおりです。

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