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

Hos*_*shi 6 nvidia multiple-monitors graphics drivers dual-graphics

因此,对于一些背景知识:我在 HP 笔记本电脑上使用 Ubuntu 18.04,它使用双 GPU 设置。之前,我一直只使用 Nouveau 驱动程序,但最近我想添加第二台显示器,所以我切换到专有的 Nvidia 驱动程序 390.77(这本身就是一种奥德赛)。

现在的问题是,虽然辅助显示器(通过 HDMI 连接)工作正常,但主要的内置笔记本电脑屏幕却没有。在启动序列期间,笔记本电脑屏幕上的所有内容都正常显示,包括 grub 菜单和启动日志。

但是,当日志到达“UID 120 的启动用户管理器”(此时大概是图形驱动程序已启动)时,笔记本电脑屏幕在那里冻结,所有进一步的输出都显示在辅助监视器上。Ubuntu 显示设置仅识别单个显示器(外部显示器),nvidia-settings.

可能值得注意的是,我将这个系统与 Windows 10 一起双启动,在 Windows 下这个问题不会发生,两个显示器都可以正常工作,就像你在那里期望的那样。

现在,我个人怀疑它可能与双 GPU 有关系,因为英特尔的通常输出到笔记本电脑的屏幕,而 Nvidia 的输出到 HDMI 端口,但我不确定。

我曾尝试通过 使用英特尔 GPU sudo prime-select intel,但在这种情况下,Nvidia 驱动程序根本没有加载,我只能使用笔记本电脑的主屏幕,而无法识别外部显示器(即类似于下的行为新风)。此外,这会导致分辨率非常低,只能通过手动添加新模式来规避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
Run Code Online (Sandbox Code Playgroud)

这是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 
Run Code Online (Sandbox Code Playgroud)

最后,这里是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
Run Code Online (Sandbox Code Playgroud)

小智 11

一些类似的事情发生在我身上。原来是/etc/X11/xorg.conf文件里的东西引起的。幸运的是,我可以使用默认的 nvidia 配置文件。

这解决了我的问题:

cd /etc/X11
sudo rm xorg.conf
sudo cp xorg.conf.nvidia-xconfig-original xorg.conf
reboot
Run Code Online (Sandbox Code Playgroud)


小智 7

重置 X11 配置文件(nvidia-config仅由 1 台显示器默认生成)也为我解决了同样的问题:

sudo > /etc/X11/xorg.conf

reboot
Run Code Online (Sandbox Code Playgroud)

注意:这与前面评论中的解决方案相同,只是因为/etc/X11/xorg.conf.nvidia-xconfig-original实际上是空(零)文件。

  • 使用“sudo su”对我有用;echo '' > /etc/X11/xorg.conf; 重新启动`。谢谢。 (2认同)

Hos*_*shi 0

在我的修复尝试中,我最终通过“尝试 Ubuntu”从 U 盘启动 Ubuntu。事实证明,在这种环境下,两台显示器都可以完美工作,无需任何进一步的配置。所以我得出的结论是,这个问题不一定与任何硬件配置有关,而是与我的 Ubuntu 配置中的一些错误有关。为此,解决方案归结为简单地重新安装 Ubuntu。

如果有人发现自己处于类似情况,我采取的具体步骤是:

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

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