在Ubuntu20.04上,内部和外部监视器不能同时工作。只能使用默认驱动程序的内部驱动程序,也可以只有手动安装NVIDIA驱动程序的外部驱动程序。帮助!
我的系统是一个ASUS A15游戏笔记本电脑(FA506)。它有一个AMD™7 4800H处理器和一个NVIDIA 2060集成图形处理器。
nouveau.modeset=0
以使图形工作nvidia-driver-440
并运行nvidia-xconfig
可使nvidia卡正常工作,但只检测到外部显示( usbc端口上的显示端口),内部显示无法工作。/etc/X11/xorg.conf
和重新启动才能切换回内部显示,但随后会丢失外部显示和未使用的NVIDIA驱动程序。nvidia-xconfig
并重新启动,可以切换回NVIDIA经过一个新的Ubuntu20.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条目,方法是从以下位置更改a行/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
重新启动后,监视器的情况不变,仍然只有内部montior。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
。重新启动后,外部监视器开始工作,我在我的外部(displayport)监视器上获得了普通的gdm登录屏幕,并且可以登录到图形化会话yay。可悲的是,内部监视器不再被检测到,而只是显示ASUS的标志。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卡硬连接到displayport,集成的图形连接到内部montior。理想情况下,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
,附加驱动程序选项卡没有任何更改。
还要注意:我已经禁用了安全的引导。
编辑:这篇文章是Ubuntu20.04不识别第二个监视器
建议安装nvidia-driver-435
,但在我的例子中,这并不能解决问题。
我对我自己的问题有一个部分的答案,但我仍然希望得到帮助。
在阅读了这个编辑职位之后,我开始怀疑Ubuntu20.04( 5.4 )的内核版本对最新的AMD没有很好的支持。为了测试这一点,我使用这里指令安装了最新的5.6.15内核。安装了较新的内核后,我现在可以使用我的HDMI端口作为外部监视器,同时在集成的图形上运行。这是通过删除xorg.conf sudo rm /etc/X11/xorg.conf
并重新启动。但是当使用nvidia卡时,我仍然只能使用displayport (在usbc上)。我仍然希望能够在内部显示器上使用NVIDIA。
发布于 2020-06-18 08:03:56
我设法使用Ubuntu20.04附带的Linux内核中对Renoir的实验性支持来开发AMD图形。
您需要将amdgpu.exp_hw_support=1
添加到/etc/default/grub
中。
为此,打开文件作为root用户进行编辑,例如,运行
sudo edit /etc/default/grub
在GRUB_CMDLINE_LINUX_DEFAULT=
开头的行中,在双引号中的参数列表中,添加amdgpu.exp_hw_support=1
。例如,根据您以前的情况,编辑后的行可能如下所示:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.exp_hw_support=1"
保存文件并退出,然后运行以下命令使更改生效:
sudo update-grub
然后重新启动。现在,把新司机列入黑名单。为此,请在/etc/modprobe.d/
中创建一个新的配置文件,例如
sudo nano /etc/modprobe.d/blacklist-nouveau.conf
添加以下条目:
blacklist nouveau
options nouveau modeset=0
保存更改并退出(如果使用nano,则为ctrl+x)。现在更新initramfs
sudo update-initramsfs -u
重新启动。这既支持内部显示也支持外部显示。
不过,还是没有nvidia图形。这将是一个很好的方法,以使这台机器(AsusTUF与Ryzen 7,4800H和RTX 2060)使用切开式AMD/Nvidia图形。
如果您很乐意只使用集成图形(amdgpu驱动程序),请不要再读。若要更改为NVidia图形,请继续。
首先清除终端中的任何以前安装的NVidia驱动程序:
sudo apt-get remove --purge '^nvidia-.*'
sudo apt-get install ubuntu-desktop
sudo rm /etc/X11/xorg.conf (if present)
重新启动系统。现在,重新安装NVidia驱动程序
sudo apt-get install nvidia-driver-440
编辑用于amdgpu和nvidia驱动程序的X11配置文件。这些都位于/usr/share/X11/sorg.conf.d/
。首先,更改amdgpu的conf文件:
sudo nano /usr/share/X11/xorg.conf.d/10-amdgpu.conf
更改文件内容,如下所示:
Section "OutputClass"
Identifier "AMDgpu"
MatchDriver "amdgpu"
Driver "amdgpu"
Option "PrimaryGPU" "no"
EndSection
现在,更改NVidia的conf文件:
sudo nano /usr/share/X11/xorg.conf.d/10-nvidia.conf
使用以下条目编辑文件
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "PrimaryGPU" "yes"
ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg"
EndSection
重新启动系统。这个解决方案对我有效。现在,您应该可以使用HDMI为内部/外部监视器配置配备Nvidia驱动程序的工作系统(我没有显示端口或USB来测试)。
若要返回到amdgpu,则可酌情将"PrimaryGPU“条目的标志从”是“替换为”否“。这个解决方案是次优,我将继续寻找一个更健壮的交换解决方案(例如,nvidia按需)。另外,我无法通过更新内核(尝试5.5.19和5.6.19)使任何东西正常工作。尽管有一些有趣的特性将使这台笔记本电脑在新的内核版本中受益。在我的尝试中,Nvidia模块没有正确安装(如果编译的话,与系统其他部分的集成可能会更健壮)。
发布于 2020-07-23 02:50:28
我的华硕FA506有4800 H和rtx2060也有同样的问题。我尝试了两种方法来修复它,下面是第一种方法:
那么HDMI起作用了。我在五月尝试过,但不知何故,它不能暂停。然后,我挣扎着挂起笔记本电脑,重新安装了几次Ubuntu。之后,我找到了另一种方法来启用挂起(来自另一个BBS),它还修复了HDMI问题:
Ubuntu20.04与内核5.4兼容,看起来内核5.7已经添加了和图形驱动程序,所以在升级内核之后,HDMI就可以工作了。
事实上,这并不是那么简单,我也需要修复nvme设置,我不记得我是否有块新手。
我听说这个用于FA506的HDMI接口只是4800 H上的AMD图形芯片,如果rtx2060工作,它的数据仍然需要输出到RYZEN图形芯片,然后该芯片输出到HDMI端口。HDMI端口不直接连接到rtx2060。不过,我也听说,如果您通过USB导出HDMI端口,那么它将直接连接到rtx2060,但我没有尝试。不过,我的笔记本电脑运行的内核是5.7.0rc4,没有nvidia驱动程序。
尽管如此,我还是找到了一种只使用AMD图形芯片和关机rtx2060的方法,因为它消耗了大量的电池。
https://askubuntu.com/questions/1244376
复制相似问题