我觉得我使用的是 radeon 而不是 amdgpu?我该如何更改?

我觉得我使用的是 radeon 而不是 amdgpu?我该如何更改?

所以我在 17.04 上,我知道 amdgpu-pro 在 4.10 内核上不可用。但我很好奇我运行的是什么,所以我使用了

lspci -k | grep -EA3 'VGA|3D|Display' 

然后它又回来了

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii XT / Grenada XT [Radeon R9 290X/390X]
Subsystem: ASUSTeK Computer Inc. R9 290X DirectCU II OC
Kernel driver in use: radeon
Kernel modules: radeon, amdgpu

那么这是否意味着我有 amdgpu 但正在使用 radeon?我似乎找不到有关如何在驱动程序之间切换的信息。我还有其他相关问题,是否有人知道 oibaf 作为替代方案,或者是否有人可以告诉我是否值得努力回滚内核?我主要将其用作游戏装备,而 radeon 的兼容性非常差。我宁愿不必回到 16.10,只是因为 amd 似乎不喜欢我们这些 linux 用户。

答案1

新方法不需要将任何模块列入黑名单。您只需向内核发送两个参数:

适用于加勒比群岛 GPU

radeon.cik_support=0 amdgpu.cik_support=1

对于 Sea Islands GPU

radeon.si_support=0 amdgpu.si_support=1

我个人喜欢将其添加为默认值,因此我编辑 /etc/default/grub,然后将内核参数添加到 GRUB_CMDLINE_LINUX_DEFAULT,如下所示:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="radeon.cik_support=0 amdgpu.cik_support=1 radeon.si_support=0 amdgpu.si_support=1"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

记得跑更新 grub并重新启动系统以使更改生效。

我可以确认这适用于自 17.10 以来运行 Ubuntu 的 390x。还尝试了 18.04、18.10、19.04、19.10、20.04,因为我一直在使用它们。(我相信你也可以在 17.04 上做同样的事情)

或者,如果您想启用新的动态电源管理显示代码实验性支持,您还需要添加以下几行

amdgpu.dc=1
amdgpu.dpm=1

有关 DC 代码的更多信息,请查看以下链接: https://wiki.archlinux.org/index.php/AMDGPU#AMD_DC

从我个人使用 390x 卡的经验来看,DC 代码不稳定,我不得不禁用它才能获得稳定的内核。过去几个月我都没有尝试启用它,所以我不知道 DC 中的这个错误是否已修复。

答案2

将其列入黑名单确实奏效了。我现在正在运行 AMDGPU,至少在专业版推出之前。我将列出这些步骤作为答案,以防其他人来寻找答案。

内核模块内置的黑名单是在启动时完成的,因此 grub 会负责这项工作。编辑

/ect/default/grub

使用您选择的编辑器并添加

modprobe.blacklist=radeon

将 GRUB_CMDLINE_LINUX_DEFAULT 添加到任何可能已经存在的内容旁边,例如 quiet splash。然后,保存更改并更新 grub。

sudo update-grub2

重新启动后,您应该使用 AMDGPU 而不是 radeon。我应该强调确保您的卡兼容,否则将您的 gfx 模块列入黑名单可能会导致问题。

答案3

我能够按照以下步骤安装 amd 开源(radeon)驱动程序

- 更新内核至4.16以上:

- 添加以下内核参数,分隔符为空格:

radeon.cik_support=0
radeon.si_support=0
amdgpu.si_support=1
amdgpu.cik_support=1
amdgpu.dc=1
amdgpu.dpm=1

- 将 GPU 的电源状态设置为性能:

https://github.com/illwieckz/dpm-query/

- 安装 Vulkan 驱动程序:

https://linuxconfig.org/install-and-test-vulkan-on-linux

- 检查驱动程序:

lspci -nnk | grep -i vga -A3 | grep 'in use'

- 使用以下工具检查 openGL:

glxinfo | grep "OpenGL version    

相关内容