精简版
在 Ubuntu 20.04 上,内部和外部显示器无法同时工作。只能在内部使用默认驱动程序,或者只能在外部使用手动安装的 NVIDIA 驱动程序。帮助!
我的系统是华硕 TUF A15 游戏笔记本电脑 (FA506)。它具有带集成显卡的 AMD® Ryzen™ 7 4800H 处理器和 NVIDIA RTX 2060。
- 全新 Ubuntu 20.04 安装
- 需要
nouveau.modeset=0
在 grub 条目中设置以使图形工作 - 未检测到外部显示器
- Ubuntu 20.04 在 Additional Drivers 对话框中不显示任何内容
- 安装
nvidia-driver-440
和运行nvidia-xconfig
使 nvidia 卡工作,但仅检测到外部显示器(usbc 端口上的 displayport),内部显示器不工作 - 只能通过删除
/etc/X11/xorg.conf
并重新启动来切换回内部显示器,但随后会丢失外部显示器和未使用的 NVIDIA 驱动程序 nvidia-xconfig
可以通过再次运行并重新启动切换回 NVIDIA
长版
在全新的 Ubuntu 20.04 安装(启用安装专有软件)后,笔记本电脑启动到带有文本的背景屏幕
[ 7.779369] ucsi_acpi USBC000:00: PPM init failed (-110)
我可以通过切换到具有ctrl + alt + F2
. 在我登录后,屏幕被垃圾邮件发送了超过一分钟,并显示以下消息:
[ 80.199703] nouveau 0000:01:00.0 fifo: SCHED_ERROR 08 []
其次是
[ 80.206302] nouveau 0000:01:00.0 DRM: failed to idle channel 0 [DRM]
在此之后,我可以访问终端。根据互联网建议,我可以通过更改以下行来修改 linux grub 条目/etc/default/grub
:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
至
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0"
并运行
sudo update-grub
重新启动后,我得到 gdm 登录屏幕并可以登录到图形会话,但如果我连接外部,则不会检测到它。xrandr
通过 DisplayPort-USBC 和 HDMI 连接或不连接外部显示器的输出是
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1920 x 1080, current 1920 x 1080, maximum 1920 x 1080
default connected primary 1920x1080+0+0 0mm x 0mm
1920x1080 77.00*
Nvidia 驱动程序尚未安装,因此我首先使用 和 更新系统sudo apt update
并sudo apt dist-upgrade
重新启动。我检查了软件和更新的附加驱动程序选项卡,但它显示“没有可用的附加驱动程序”。跑步ubuntu-drivers devices
什么都没有。
下一个最佳建议是通过 apt 安装 nvidia 驱动程序
sudo apt install nvidia-driver-440
重新启动后,监视器情况没有改变,仍然只有内部监视器。xrandr
输出相同,但现在安装了 Nvidia 驱动程序。nvidia-smi
显示:
Thu May 28 09:42:22 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64 Driver Version: 440.64 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce RTX 2060 Off | 00000000:01:00.0 Off | N/A |
| N/A 46C P0 9W / N/A | 0MiB / 5934MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
nvidia-settings
显示一个小的空窗口。启动来自终端打印:
ERROR: Unable to load info from any available system
(nvidia-settings:2986): GLib-GObject-CRITICAL **: 09:45:58.786: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** Message: 09:45:58.789: PRIME: No offloading required. Abort
** Message: 09:45:58.789: PRIME: is it supported? no
现在我运行sudo nvidia-xconfig
生成/etc/X11/xorg.conf
. 重新启动后,外部监视器正在工作,我在外部(显示端口)监视器上看到了正常的 gdm 登录屏幕,并且可以登录到图形会话。遗憾的是,内部显示器不再被检测到,只显示华硕标志。nvidia-settings
对话框现在具有我期望的所有选项(从终端启动会提供与以前相同的输出)
根据kanehekili
输出的要求,xrandr -q
现在是:
Screen 0: minimum 8 x 8, current 2560 x 1440, maximum 32767 x 32767
DP-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
2560x1440 60.00*+ 144.00 120.00 84.98
1920x1080 60.00 59.94 50.00
1680x1050 59.95
1440x900 59.89
1440x576 50.00
1440x480 59.94
1280x1024 75.02 60.02
1280x960 60.00
1280x720 60.00 59.94 50.00
1152x864 75.00
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32 56.25
720x576 50.00
720x480 59.94
640x480 75.00 72.81 59.94 59.93
DP-1 disconnected (normal left inverted right x axis y axis)
的完整输出lspci -vv
在这里。但图形设备的条目如下:
01:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2060] (rev a1) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Device 1e21
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 94
Region 0: Memory at fb000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at b0000000 (64-bit, prefetchable) [size=256M]
Region 3: Memory at c0000000 (64-bit, prefetchable) [size=32M]
Region 5: I/O ports at f000 [size=128]
Expansion ROM at fc000000 [virtual] [disabled] [size=512K]
Capabilities: <access denied>
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir (rev c6) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Renoir
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 255
Region 0: Memory at d0000000 (64-bit, prefetchable) [size=256M]
Region 2: Memory at e0000000 (64-bit, prefetchable) [size=2M]
Region 4: I/O ports at c000 [disabled] [size=256]
Region 5: Memory at fc500000 (32-bit, non-prefetchable) [size=512K]
Capabilities: <access denied>
Kernel modules: amdgpu
请帮我解决这个问题
从我的互联网搜索来看,我并不是唯一一个与这种 AMD/NVIDIA 混合图形配置作斗争的人。圣杯将是两个显卡的无缝集成,以尽可能节省电池,并在需要时使用独立显卡,但我很乐意在两台显示器都工作的情况下满足永久耗电的英伟达!
根据我的研究,问题的核心是 nvidia 卡硬连线到显示端口,集成显卡连接到内部显示器。理想情况下,nvidia 可以渲染到可以复制到集成显卡的缓冲区,但我不知道具体细节,也不知道如何配置它。
注意:一些互联网建议建议在安装 nvidia 驱动程序之前添加 nvidia ppa:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
我过去曾尝试过,但没有区别,该 ppa 和 ubuntu 存储库中的 nvidia-driver-440 包是相同的版本440.82+really.440.64-0ubuntu6
,并且“附加驱动程序”选项卡没有变化。
另请注意:我已禁用安全启动
编辑:这篇文章Ubuntu 20.04 无法识别第二台显示器
建议安装nvidia-driver-435
,但在我的情况下,这并不能解决问题。
我对自己的问题有部分答案,但仍然需要帮助。
在阅读了这篇 reddit 帖子后,我开始怀疑 Ubuntu 20.04 中的内核版本 5.4 对最新的 AMD APU 没有很好的支持。为了测试这一点,我使用此处的说明安装了最新的内核 5.6.15 。安装了较新的内核后,我现在可以在集成显卡上运行时将 HDMI 端口用于外接显示器。那就是删除 xorg.confsudo rm /etc/X11/xorg.conf
并重新启动。但是当使用 nvidia 卡时,我仍然只能使用 displayport(在 usbc 上)。我仍然希望能够在内部显示器上使用 NVIDIA。