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.service
。lightdm
使用您拥有的任何管理器进行交换。
现在解除模块与设备的绑定:
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
如果一切正常,你会发现你的设备绑定到你指定的模块,直到重新启动。