如何选择用于 GPU 的内核驱动程序

如何选择用于 GPU 的内核驱动程序

Ubuntu 16.04.3:如何选择用于第一和第二个 GPU 的内核驱动程序?

lspci -k | grep -EA3 'VGA|3D|Display' 
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XT [Radeon RX Vega 64] (rev c1)
    Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device 6b76
    Kernel driver in use: amdgpu
    Kernel modules: amdgpu
--
04:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X]
    Subsystem: ASUSTeK Computer Inc. Tahiti XTL [Radeon R9 280X DirectCU II TOP]
    Kernel driver in use: amdgpu
    Kernel modules: radeon, amdgpu

对于第一个 GPU Radeon RX Vega 64,使用的内核驱动程序:amdgpu 是正确的。第二个 GPU Radeon R9 280X 不受“amdgpu”内核驱动程序支持。如何仅更改第二个 GPU 的驱动程序?

非常感谢所有建议

答案1

您可以尝试手动解除驱动程序与设备的绑定。请查看此处的指南:https://lwn.net/Articles/143397/

输入sudo tree /sys/bus/pci/drivers/amdgpu

您应该收到如下列表:

/sys/总线/pci/驱动程序/amdgpu
│ ...
│ │ 0000:04:00.0 -> ../../../../设备/pci0000:00/0000:00:05.0/0000:04:00.0
│ │ 绑定
│ │ 模块 -> ../../../../module/drm
│ │ 新_id
│ │ 删除id
│ │ 事件
└── 解除绑定

我认为您需要在解除驱动程序与显卡的绑定之前关闭窗口管理器。例如,使用 CTRL+ALT+F2 打开桌面环境之外的控制台。以 root 身份登录并输入systemctl stop lightdm.servicelightdm使用您拥有的任何管理器进行交换。

现在解除模块与设备的绑定:

echo -n "0000:04:00.0" > /sys/bus/pci/drivers/amdgpu/unbind

并将其绑定到您想要的任何模块。

echo -n "0000:04:00.0" > /sys/bus/pci/drivers/path_to_your_driver/bind

此后,您可以重新启动桌面管理器: systemctl start lightdm.service

如果一切正常,你会发现你的设备绑定到你指定的模块,直到重新启动。

相关内容