如何防止Xorg使用Linux笔记本电脑的显示面板?


12

我有一台笔记本电脑(运行Fedora Linux的大约5岁的HP compaq nc6400),大部分时间都用作台式机。它的盖子关闭时插入了扩展坞,并通过DVI电缆将其连接到大型外部LCD显示器。

由于种种原因(登录问候语出现在封闭的显示器上,有限的图形卡无法同时对两个显示器进行3D处理)我想防止X完全使用笔记本电脑的集成显示面板。当停靠在我的桌子上时(这是我大约97%的时间使用它的方式),我希望它不使用集成的笔记本电脑面板。引导并不是一个特殊的问题,因为默认情况下,所有内容都在两个显示器之间进行镜像。另外,我不介意“手动”解决方案,因此在极少数情况下,当我不在办公桌旁使用笔记本电脑时,必须撤消设置。

登录后,我可以配置Gnome,使其仅使用外部显示器,并且笔记本电脑面板标记为“关闭”,但是这对X的初始自动配置状态和登录前的欢迎程序显示没有影响。令人惊讶的是,笔记本电脑似乎没有盖子传感器,因此打开或关闭盖子似乎不会触发任何事件。我可以xrandr -display :0 --output LVDS1 --off --output DVI1 --auto在登录前在单独的VC上使用,但这仍然是在X已经开始并发现并决定同时使用两个显示器的事实之后。

我尝试通过创建一个/etc/X11/xorg.conf.d/01-turn-off-laptop-display.conf包含以下内容的文件来配置Xorg :

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 beta(包括Gnome 3),但是该问题在以前的OS版本中已经存在。


嗯,好吧-我不确定哪是最好的地方。我以为代表。之1我无法在SE网站之间移动我的问题,所以我只需要让其他人去做?
2011年

@Norky我已标记主持人的问题。
Let_Me_Be

@Let_Me_Be和@Norky-这个问题也在这里。但是,@ Norky,如果您个人希望将问题放在Unix.SE上,那么请放心(并且@注释会回来,以便我可以删除此问题),但是否则这里没有任何问题。

@ DMA57361-我没有特别的偏爱,以您认为最佳的为准:)
2011年

啊,@ Norky,要点是,您可以使用自己认为最合适的方法-这是您的问题,并且在两个站点上都完全有效,您只会从其他社区获得答案。因此,如果您对此满意,我们现在将其留在此处。但是,如果该帖子在不久的将来没有收到答复,则@ me会再次回来,我将为您转移。

Answers:


9

我可以通过以下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会退出并出现错误-不是一个完美的解决方案,但是在这种情况下我可以将配置移开。


4

我建议您使用一种稍微不同的方法,在您想将笔记本电脑用作笔记本电脑的罕见情况下,该方法可能会更加灵活。

根据显示管理器(可能是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的一些文件位置信息


3

先前帖子的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用于“大显示屏”


1

如果使用Option "ignore" "true"in /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)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.