kfd:获取 iommu 信息时出错

mli*_*bre 7 linux boot

我在启动过程中收到此错误。

[15.757121] kfd kfd: error getting iommu info. is the iommu enabled?
[15.757182] kfd kfd: Error initializing iommuv2 for device (1002:1318)
[15.757245] Creating topology SYSFS entries
[15.757376] kfd kfd: device (1002:1318) NOT added due to errors
Run Code Online (Sandbox Code Playgroud)

我该如何修复它?

小智 5

错误的 BIOS UEFI 表是一个常见问题,它会产生无法正常工作的 iommu。

如果在 X86 或 AMD64 上尝试:

编辑文件/etc/default/grub

换线

GRUB_CMDLINE_LINUX=""
Run Code Online (Sandbox Code Playgroud)

到:

GRUB_CMDLINE_LINUX="iommu=pt"
Run Code Online (Sandbox Code Playgroud)

跑步:

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

重启。


在许多情况下,内核的“直通”功能将提供 iommu 功能,BIOS也是foobar。HSA 软件堆栈将在具有有效 iommu 功能的系统上运行,而不会触发 iommu 错误消息。


小智 1

从谷歌搜索中找到了这个:

UEFI 启动是一个转移注意力的话题。真正的问题是您需要kfd.rules一个/etc/udev/rules.d. 该文件必须说明:

KERNEL=="kfd", GROUP="video", MODE="0660"
Run Code Online (Sandbox Code Playgroud)

您可能还需要设置适当的 selinux 策略

restorecon /etc/udev/rules.d/kfd.rules
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 14.10 中安装 mainline 3.19 在软件包安装过程中创建了此文件(我们认为?),但 Ubuntu 15.04 默认情况下不会创建此文件。你必须手工完成。然后 HSA 软件堆栈就可以工作了!

问题解决了。