首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在配有AMD Ryzen 7 4800H和Nvidia RTX 2060的笔记本电脑上与20.04同时工作

无法在配有AMD Ryzen 7 4800H和Nvidia RTX 2060的笔记本电脑上与20.04同时工作
EN

Ask Ubuntu用户
提问于 2020-05-28 01:47:42
回答 2查看 22.8K关注 0票数 11

短版

在Ubuntu20.04上,内部和外部监视器不能同时工作。只能使用默认驱动程序的内部驱动程序,也可以只有手动安装NVIDIA驱动程序的外部驱动程序。帮助!

我的系统是一个ASUS A15游戏笔记本电脑(FA506)。它有一个AMD™7 4800H处理器和一个NVIDIA 2060集成图形处理器。

  • 新鲜Ubuntu 20.04安装
  • 需要在grub条目中设置nouveau.modeset=0以使图形工作
  • 未检测到外部显示
  • Ubuntu20.04在“附加驱动程序”对话框中没有显示任何内容
  • 安装nvidia-driver-440并运行nvidia-xconfig可使nvidia卡正常工作,但只检测到外部显示( usbc端口上的显示端口),内部显示无法工作。
  • 只能通过删除/etc/X11/xorg.conf和重新启动才能切换回内部显示,但随后会丢失外部显示和未使用的NVIDIA驱动程序。
  • 通过再次运行nvidia-xconfig并重新启动,可以切换回NVIDIA

长版本

经过一个新的Ubuntu20.04安装(安装了专有软件),膝上型计算机将引导到屏幕后面的文本

代码语言:javascript
运行
复制
[    7.779369] ucsi_acpi USBC000:00: PPM init failed (-110)

我可以通过切换到带有ctrl + alt + F2的虚拟终端登录。在我登录屏幕后,就会发送超过一分钟的消息:

代码语言:javascript
运行
复制
[   80.199703] nouveau 0000:01:00.0 fifo: SCHED_ERROR 08 []

紧随其后

代码语言:javascript
运行
复制
[   80.206302] nouveau 0000:01:00.0 DRM: failed to idle channel 0 [DRM]

在此之后,我可以进入终端。根据互联网建议,我可以修改linux条目,方法是从以下位置更改a行/etc/default/grub

代码语言:javascript
运行
复制
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

代码语言:javascript
运行
复制
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0"

和奔跑

代码语言:javascript
运行
复制
sudo update-grub

重新启动后,我将获得gdm登录屏幕,并可以登录到图形会话,但如果连接外部会话,则无法检测到。带有或不带外部监视器的xrandr的输出通过DisplayPort-USBC和HDMI连接

代码语言:javascript
运行
复制
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 updatesudo apt dist-upgrade更新系统,然后重新启动。我检查了“软件与更新”的“附加驱动程序”选项卡,但是上面写着“没有其他可用的驱动程序”。运行ubuntu-drivers devices显示什么都没有。

其次,最好的建议是通过apt安装nvidia驱动程序。

代码语言:javascript
运行
复制
sudo apt install nvidia-driver-440 

重新启动后,监视器的情况不变,仍然只有内部montior。xrandr输出是相同的,但是现在安装了Nvidia驱动程序。nvidia-smi显示:

代码语言:javascript
运行
复制
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显示一个小的空窗口。发射来自终端打印:

代码语言:javascript
运行
复制
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的输出现在是:

代码语言:javascript
运行
复制
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的全部输出为这里。但图形设备的条目如下:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
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。

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2020-06-18 08:03:56

我设法使用Ubuntu20.04附带的Linux内核中对Renoir的实验性支持来开发AMD图形。

您需要将amdgpu.exp_hw_support=1添加到/etc/default/grub中。

为此,打开文件作为root用户进行编辑,例如,运行

代码语言:javascript
运行
复制
sudo edit /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=开头的行中,在双引号中的参数列表中,添加amdgpu.exp_hw_support=1。例如,根据您以前的情况,编辑后的行可能如下所示:

代码语言:javascript
运行
复制
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.exp_hw_support=1"

保存文件并退出,然后运行以下命令使更改生效:

代码语言:javascript
运行
复制
sudo update-grub

然后重新启动。现在,把新司机列入黑名单。为此,请在/etc/modprobe.d/中创建一个新的配置文件,例如

代码语言:javascript
运行
复制
sudo nano /etc/modprobe.d/blacklist-nouveau.conf

添加以下条目:

代码语言:javascript
运行
复制
blacklist nouveau
options nouveau modeset=0

保存更改并退出(如果使用nano,则为ctrl+x)。现在更新initramfs

代码语言:javascript
运行
复制
sudo update-initramsfs -u

重新启动。这既支持内部显示也支持外部显示。

不过,还是没有nvidia图形。这将是一个很好的方法,以使这台机器(AsusTUF与Ryzen 7,4800H和RTX 2060)使用切开式AMD/Nvidia图形。

编辑:激活内部/外部监视器上的NVidia卡

如果您很乐意只使用集成图形(amdgpu驱动程序),请不要再读。若要更改为NVidia图形,请继续。

首先清除终端中的任何以前安装的NVidia驱动程序:

代码语言:javascript
运行
复制
sudo apt-get remove --purge '^nvidia-.*'
sudo apt-get install ubuntu-desktop
sudo rm /etc/X11/xorg.conf (if present)

重新启动系统。现在,重新安装NVidia驱动程序

代码语言:javascript
运行
复制
sudo apt-get install nvidia-driver-440

编辑用于amdgpu和nvidia驱动程序的X11配置文件。这些都位于/usr/share/X11/sorg.conf.d/。首先,更改amdgpu的conf文件:

代码语言:javascript
运行
复制
sudo nano /usr/share/X11/xorg.conf.d/10-amdgpu.conf

更改文件内容,如下所示:

代码语言:javascript
运行
复制
Section "OutputClass"
    Identifier "AMDgpu"
    MatchDriver "amdgpu"
    Driver "amdgpu"
    Option "PrimaryGPU" "no"
EndSection

现在,更改NVidia的conf文件:

代码语言:javascript
运行
复制
sudo nano /usr/share/X11/xorg.conf.d/10-nvidia.conf

使用以下条目编辑文件

代码语言:javascript
运行
复制
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模块没有正确安装(如果编译的话,与系统其他部分的集成可能会更健壮)。

票数 18
EN

Ask Ubuntu用户

发布于 2020-07-23 02:50:28

我的华硕FA506有4800 H和rtx2060也有同样的问题。我尝试了两种方法来修复它,下面是第一种方法:

  1. 安装最新的Ubuntu 20.04。
  2. 安装用于linux的AMD图形驱动程序。

那么HDMI起作用了。我在五月尝试过,但不知何故,它不能暂停。然后,我挣扎着挂起笔记本电脑,重新安装了几次Ubuntu。之后,我找到了另一种方法来启用挂起(来自另一个BBS),它还修复了HDMI问题:

  1. 安装最新的Ubuntu 20.04。
  2. 将内核升级到5.7.0-rc4。

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的方法,因为它消耗了大量的电池。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1244376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档