我有一台双启动 PC,运行 Windows 10 和 Ububtu 18.04.4,内核为 5.3.0-51-generic。在 Windows 上,显卡工作正常,但在 Linux 上,我遇到了很多麻烦。我尝试安装 amdgpu,安装与最新版本的驱动程序(20.10)配合得很好,但重启后,屏幕闪烁得如此之快,以至于唯一的登录是一项艰难的操作。现在我尝试遵循第二点本指南但它也没有效果。至少没有负面影响。我的输出sudo lshw -C video
是:
*-display UNCLAIMED
description: VGA compatible controller
product: Advanced Micro Devices, Inc. [AMD/ATI]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:0a:00.0
version: c5
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi vga_controller bus_master cap_list
configuration: latency=0
resources: memory:e0000000-efffffff memory:f0000000-f01fffff ioport:e000(size=256) memory:fcc00000-fcc7ffff memory:c0000-dffff
信息屏幕显示我正在使用llvmpipe (LLVM 9.0.1, 256 bits)
正如你在这里看到的。所以我想使用合适的驱动程序,有人能帮助我吗?
编辑
我想我错过了 amdgpu 的内核模块,lsmod |grep amdgpu
没有给出结果,在我的lspci
输出中也Kernel modules
没有声音
lspci -k | grep -EA3 'VGA|3D|Display'
0a:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 7340 (rev c5)
Subsystem: Sapphire Technology Limited Device e421
0a:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device ab38
Subsystem: Sapphire Technology Limited Device e421
也$ sudo lshw -c display | grep driver
没有给出任何输出。
glxinfo
相反,告诉我直接渲染是可以的
$ glxinfo | grep render
direct rendering: Yes
GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer,
Extended renderer info (GLX_MESA_query_renderer):
OpenGL renderer string: llvmpipe (LLVM 9.0.1, 256 bits)
GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,
GL_MESA_ycbcr_texture, GL_NV_conditional_render, GL_NV_copy_image,
GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,
GL_NV_conditional_render, GL_NV_copy_image, GL_NV_depth_clamp,
GL_EXT_read_format_bgra, GL_EXT_render_snorm, GL_EXT_sRGB_write_control,
GL_MESA_shader_integer_functions, GL_NV_conditional_render,
GL_OES_element_index_uint, GL_OES_fbo_render_mipmap,
答案1
如果您在 Ubuntu 18.04.4 上安装了 amdgpu,那么 radeon 驱动程序将被禁用。您需要旧卡的 radeon 驱动程序 - 我有一台 Radeon HD5000 和一台 Radeon R9 290X。我能够使用 amdgpu 运行 290X,但 HD5000 停止工作。
重新启用 radeon 驱动程序并强制 HD5000 使用它可以使两个显示器再次工作!
您需要执行以下操作:
删除 radeon 的黑名单文件(先保存一份副本)
sudo cp /etc/modprobe.d/blacklist-radeon.conf ~
sudo rm /etc/modprobe.d/blacklist-radeon.conf
创建 Xorg 配置文件
sudo vim /etc/X11/xorg.conf
其中应包含您的每张视频卡的详细信息以及您想要为它们使用的驱动程序。
Section "Device"
Identifier "Screen0"
Driver "amdgpu"
VendorName "Advanced Micro Devices, Inc. [AMD/ATI]"
BusID "PCI:X:0:0"
EndSection
Section "Device"
Identifier "Screen1"
Driver "radeon"
VendorName "Advanced Micro Devices, Inc. [AMD/ATI]"
BusID "PCI:X:0:0"
EndSection
您可以从以下命令获取 BusID (PCI:X:0:0) 的值:
lspci | grep VGA
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii XT / Grenada XT [Radeon R9 290X/390X]
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series]
第一张卡位于总线 1 上,xorg 文件中的值为 PCI:1:0:0。第二张卡位于总线 5 上,xorg 文件中的值为 PCI:5:0:0。
希望这对某人有帮助。