我有一个带有 ubuntu 16.04 和 Nvidia 驱动程序的 ThinkPad W520,从 Ubuntu 存储库(或 PPA,我遇到的问题与 367.57 和 375.20 驱动程序相同)安装。这是一个 Quadro 1000M 显示器。它在 BIOS 设置为离散的情况下工作正常。在离散模式下,脚本会删除 xorg.conf(好吧,移动它)并且配置工作得很好。
当我将 BIOS 设置为 Optimus 并选择 nvidia 时,我无法访问笔记本电脑面板。在启动期间,脚本会写入 xorg.conf。
xrandr 给出这个输出
Screen 0: minimum 8 x 8, current 1920 x 2280, maximum 16384 x 16384
VGA-0 disconnected (normal left inverted right x axis y axis)
LVDS-0 connected primary 1920x1080+0+1200 (normal left inverted right x axi#
1920x1080 60.00*+ 50.00••
DP-0 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 518#
我无能为力,无法与 LVDS-0 重新连接。
笔记本电脑面板显示了引导阶段的一些剩余文本(关于驱动器清洁的报告)。进入虚拟控制台会使 DP1 屏幕空白,并且控制台位于笔记本电脑面板中。恢复 X 会话会重新唤醒 DP1 屏幕,而笔记本电脑会恢复到启动文本屏幕。
我已将 grub 设置为仅文本,它没有任何区别。我猜我得到的 xorg.conf 有问题。
Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "intel"
EndSection
Section "Device"
Identifier "intel"
Driver "modesetting"
BusID "PCI:0@0:2:0"
Option "AccelMethod" "None"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1@0:0:0"
Option "ConstrainCursor" "off"
EndSection
Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration" "on"
Option "IgnoreDisplayDevices" "CRT"
EndSection
奇怪的是,对于这么旧的硬件,升级到内核 4.8 会有很大的不同。这适用于 16.04 中可用的 16.10 或 4.8 内核(目前正在提议中)。
要使用 Optimus 或专用 Nvidia 硬件启动,只需要一个内核启动参数:
nox2picnox2apic
我使用的是 16.04.1,但使用的是 16.04.2 的 4.8 内核没有必要指定其他任何内容。也不需要手动为 xorg.conf 文件提供亮度设置。事实上,我发现为 xorg.conf 添加亮度处理的旧调整导致英特尔卡作为提供程序消失,我通过将 /usr/share/X11/xorg.conf.d 的内容分块添加回来发现了这一点平分麻烦。
因此,在那之后,在 Nvidia 和两个外部显示器中使用 optimus 启动现在连接两个 DP 显示器和内部屏幕(换句话说,英特尔卡和 Nvidia 卡现在都显示通过
xrandr --listproviders
哪个是关键结果)。但是,当光标出现在笔记本电脑屏幕上时,背景是黑色的,并且无法将任何窗口拖到那里。所以这是部分成功更新:最后一个问题(黑色背景,没有可拖动的窗口)是 Unity。安装 XFCE 并使用 XFCE 会话有效:所有三个显示器都很好。我仍然使用lightdm。Gnome 也可以,虽然我不使用它。
所以这对我来说已经足够好了。将所有三个显示器从左到右水平排列。