使用 Nvidia 驱动程序时无法检测到笔记本电脑内部屏幕

使用 Nvidia 驱动程序时无法检测到笔记本电脑内部屏幕

因此,先介绍一下背景:我在 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。

我采取的具体步骤,以防有人遇到类似的情况:

  1. 备份我的 /home/ 文件夹以及 Ubuntu 分区中的所有重要数据。
  2. 从 Ubuntu USB 驱动器启动,选择“安装 Ubuntu”,然后选择“擦除 Ubuntu 18.04 并重新安装”。
  3. 安装后,由于图形硬件问题,第一次启动尝试失败。我通过在 grub 命令行默认值中添加“nouveau.modeset=0”来解决这个问题。这只需要一次启动,之后就不再需要了。
  4. 我通过 Ubuntu 的“附加驱动程序”UI 安装了 Nvidia 390.77 驱动器。
  5. 再次重新启动,一切正常!

我仍然不知道是什么原因导致了这个问题,但它再次表明,当你有疑问时,你可能只想尝试整理系统并重新安装。

相关内容