我刚刚在 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,则情况并非如此)。