因此,先介绍一下背景:我在 HP 笔记本电脑上使用 Ubuntu 18.04,它使用双 GPU 设置。以前,我一直只使用 Nouveau 驱动程序,但最近我想添加第二台显示器,所以我切换到专有的 Nvidia 驱动程序 390.77(这本身就是一次冒险)。
现在的问题是,虽然辅助显示器(通过 HDMI 连接)工作正常,但主内置笔记本电脑屏幕却不工作。在启动过程中,笔记本电脑屏幕上的所有内容都正常显示,包括 grub 菜单和启动日志。
但是,当日志到达“已启动 UID 120 的用户管理器”(此时大概是图形驱动程序已启动)时,笔记本电脑屏幕会冻结在那里,并且所有进一步的输出都显示在辅助显示器上。Ubuntu 显示设置只能识别单个显示器(外接显示器),也是如此nvidia-settings
。
值得注意的是,我将该系统与 Windows 10 双启动,在 Windows 下不会发生此问题,两个显示器都可以正常工作,就像您期望的那样。
现在,我个人怀疑它可能与双 GPU 有关,因为英特尔 GPU 通常输出到笔记本电脑屏幕,而 Nvidia GPU 输出到 HDMI 端口,但我不确定。
我曾尝试通过 改用 Intel GPU sudo prime-select intel
,但在这种情况下,Nvidia 驱动程序根本无法加载,我只能使用笔记本电脑的主屏幕,而无法识别外接显示器(即类似于 Nouveau 下的行为)。此外,这会导致分辨率非常低,只能通过 手动添加新模式来解决xrandr
。
至于一些可能相关的数据,这里是输出lswh -C video
:
*-display
description: VGA compatible controller
product: GP107M [GeForce GTX 1050 Ti Mobile]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: irq:142 memory:b3000000-b3ffffff memory:a0000000-afffffff memory:b0000000-b1ffffff ioport:4000(size=128) memory:b4000000-b407ffff
*-display
description: VGA compatible controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 04
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:141 memory:b2000000-b2ffffff memory:c0000000-cfffffff ioport:5000(size=64) memory:c0000-dffff
这是xrandr
。值得注意的是,笔记本电脑显示屏的常用名称eDP-1
甚至没有列出在这里:
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
HDMI-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
1920x1080 60.00*+ 59.94 50.00 50.00
1680x1050 59.95
1600x900 60.00
1440x900 59.89
1280x1024 60.02
1280x800 59.81
1280x720 60.00 59.94 50.00
1024x768 60.00
800x600 60.32
720x576 50.00
720x480 59.94
640x480 59.94
最后,这里是xorg.conf
:
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 390.77 (buildmeister@swio-display-x64-rhel04-14) Tue Jul 10 23:19:22 PDT 2018
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
答案1
我也遇到过类似的事情。结果发现这是由/etc/X11/xorg.conf
文件中的某些内容引起的。幸运的是,我可以使用默认的 nvidia 配置文件。
这解决了我的问题:
cd /etc/X11
sudo rm xorg.conf
sudo cp xorg.conf.nvidia-xconfig-original xorg.conf
reboot
答案2
重置 X11 配置文件(仅由 1 个监视器默认生成nvidia-config
)也为我解决了同样的问题:
sudo > /etc/X11/xorg.conf
reboot
注意:这与上一条评论中的解决方案相同,只是因为/etc/X11/xorg.conf.nvidia-xconfig-original事实上是空(零)文件。
答案3
我直接删除了 /etc/X11/xorg.conf 和 /etc/X11/xorg.conf.nvidia-xconfig-original 然后重启。对我来说,这个方法有效!
答案4
在尝试修复的过程中,我最终通过“试用 Ubuntu”从 USB 启动了 Ubuntu。结果发现,在这种环境下,两个显示器都运行正常,无需进一步配置。因此,我得出结论,问题不一定与硬件配置有关,而是与我的 Ubuntu 配置中的某些错误有关。为此,解决方案归结为简单地重新安装 Ubuntu。
我采取的具体步骤,以防有人遇到类似的情况:
- 备份我的 /home/ 文件夹以及 Ubuntu 分区中的所有重要数据。
- 从 Ubuntu USB 驱动器启动,选择“安装 Ubuntu”,然后选择“擦除 Ubuntu 18.04 并重新安装”。
- 安装后,由于图形硬件问题,第一次启动尝试失败。我通过在 grub 命令行默认值中添加“nouveau.modeset=0”来解决这个问题。这只需要一次启动,之后就不再需要了。
- 我通过 Ubuntu 的“附加驱动程序”UI 安装了 Nvidia 390.77 驱动器。
- 再次重新启动,一切正常!
我仍然不知道是什么原因导致了这个问题,但它再次表明,当你有疑问时,你可能只想尝试整理系统并重新安装。