如何使用笔记本电脑 (Intel i965) 的 2 个显示器解决空白登录屏幕问题

如何使用笔记本电脑 (Intel i965) 的 2 个显示器解决空白登录屏幕问题

我刚刚在 Dell Latitude D630(Intel GM965 显卡)上安装了 Ubuntu 16.04.3 LTS(内核:Linux 4.10.0-40-generic (x86_64),桌面:LXDE(Lubuntu))。它只在(未对接的)笔记本电脑上运行良好,但如果我尝试在连接了 2 个外接显示器(VGA + DVI)的情况下启动(笔记本电脑盖打开或关闭),登录时会出现空白屏幕。登录后,可以通过在 xrandr-autostart.desktop 中执行以下命令明确关闭笔记本电脑屏幕(“LVDS-1”)来解决此问题:

xrandr --output DVI-D-1 --mode 1920x1200 --rate 59.95 --pos 1280x0 --rotate normal
--output VGA-1 --mode 1280x1024 --rate 60.02 --pos 0x128 --rotate normal
--output LVDS-1 --off
--output VIRTUAL1 --off'

查看 dmesg 的输出,这似乎是一个(并不少见的)固件问题(尽管我在我的机器的后续固件发行说明中没有看到任何修复说明):

[Firmware Bug]: Duplicate ACPI video bus devices for the same VGA
  controller, please try module parameter "video.allow_duplicates=1"if the
  current driver doesn't work.

毫无效果,我尝试将以下内容添加到 /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="video.allow_duplicates=1 quiet splash"

虽然这个(或我尝试过的各种方法)确实让我看到了“Lubuntu”图形徽标,后面跟着一个终端样式的消息屏幕(在两个外部显示器上),最后显示“Plymouth 启动屏幕”,但它只是停留在那个屏幕上而不显示登录(即使它允许我盲目登录)。

检查与 ACPI 警告相关的 VGA 内核模块...

lspci -nnk | grep -A3 VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) [8086:2a02] (rev 0c)
    Subsystem: Dell Latitude D630 [1028:01f9]
    Kernel driver in use: i915
    Kernel modules: i915, intelfb

似乎早期的 4.6 版 Linux 内核已经修复了各种 i915 错误,但我对本论坛或其他地方的各种建议没有多大帮助。我尝试在控制文件 /etc/modprobe.d/fix-video.conf 中设置一个或两个相关视频模块的选项:

options i915 video.allow_duplicates=1
options intelfb video.allow_duplicates=1

但这并没有解决问题,反而使系统变得不太稳定。它确实在终端样式屏幕中 (plymouth 启动屏幕消息) 后添加了 2 行与背光控制相关的额外内容,但我认为这不是问题所在。

我当前的设置没有额外的 modprobe.d 文件,但 grub 中有以下内容(它给我 Lubuntu 徽标,然后是终端样式的屏幕):

GRUB_CMDLINE_LINUX_DEFAULT="i915.modeset=1 quiet splash"

即使我无法克服固件错误,如果有办法设置关闭笔记本电脑屏幕以显示登录屏幕(如上面的 arandr 脚本所示),那就太好了 - 特别是当笔记本电脑独立运行时,使用 arandr 脚本,它就会被忽略(笔记本电脑屏幕会亮起)。

关于视频的其他信息可能会有帮助,从我的桌面内部确定,其中 2 个外接显示器已使用 arandr 关闭了笔记本电脑显示器:

sudo lshw -c video
  *-display:0             
       description: VGA compatible controller
       product: Mobile GM965/GL960 Integrated Graphics Controller (primary)
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 0c
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:27 memory:f6e00000-f6efffff memory:e0000000-efffffff ioport:efe8(size=8) memory:c0000-dffff
  *-display:1 UNCLAIMED
       description: Display controller
       product: Mobile GM965/GL960 Integrated Graphics Controller (secondary)
       vendor: Intel Corporation
       physical id: 2.1
       bus info: pci@0000:00:02.1
       version: 0c
       width: 64 bits
       clock: 33MHz
       capabilities: pm bus_master cap_list
       configuration: latency=0
       resources: memory:f6f00000-f6ffffff

答案1

以下解决方案并不理想,因为它不能修复驱动程序错误,但它确实使登录屏幕在笔记本电脑和(其中一个)外接显示器上可见(在显示 Lubuntu 徽标的一段时间后出现空白)...

正如 @ravery 指出的那样(谢谢!)由于我的系统设置为使用 Lightdm 欢迎程序,我可以修改欢迎程序脚本以使用 arandr 启用/禁用显示:

添加一个新的配置文件(使用 sudo)以使用您选择的编辑器覆盖默认的欢迎脚本:

sudo gvim /etc/lightdm/lightdm.conf.d/50-myconfig.conf

并输入以下内容:

# Redirect greeter script to my version
[Seat:*]
greeter-wrapper=/etc/lightdm/lightdm.conf.d/my-lightdm-greeter-session

复制现有的欢迎脚本并编辑它:

sudo cp -p /usr/lib/lightdm/lightdm-greeter-session /etc/lightdm/lightdm.conf.d/my-lightdm-greeter-session
sudo gvim /etc/lightdm/lightdm.conf.d/my-lightdm-greeter-session

添加以下行以打开笔记本电脑屏幕(“LVDS-1”)和 VGA,但关闭 DVI-D:

xrandr --output LVDS-1 --auto --output VGA-1 --auto --same-as LVDS-1 --output DVI-D-1 --off

虽然这只能打开两个可能的外接显示器中的一个,但在 Lubuntu 中,可以将用户会话配置为使用“显示器设置”菜单项配置设置文件,以切换到所需的显示器设置:~/.config/autostart/lxrandr-autostart.desktop(有帮助的是,即使我已将此文件设置为关闭笔记本电脑屏幕,当笔记本电脑未对接使用时,它会合理地忽略此建议并显示在笔记本电脑屏幕上……但如果在 my-lightdm-greeter-session 脚本中为欢迎程序类似地调用 lxrandr,则情况并非如此)。

相关内容