内核参数 intel_iommu=on 导致启动失败

内核参数 intel_iommu=on 导致启动失败

使用原装内核(4.4.0-34-generic 和 4.4.0-31-generic)和全新安装的 16.04。VT-d 受我的硬件(Xeon E3-1245 v5 和 ASrock Rack C236M WS 主板)支持,并在 BIOS 中启用。我打电话给 ASrock 技术支持,那里的人向我保证 VT-d 受支持。

在启动失败期间,我看到内核消息滚动得太快,无法阅读(我删除了quietsplash),持续了大约一到三秒(从 SSD 启动),然后屏幕显示一堆行,系统完全没有响应。在我看来,故障发生在 GUI 启动后 - 首先控制台的分辨率很差,然后分辨率提高一秒钟,然后就失败了。

失败后,我拔出驱动器并复制了系统日志,这就是全部内容。

在我看来,所有 gnome-session 断言失败后,一切都开始关闭。但是为什么在内核中启用 PCI 直通会终止 gnome-session?

我倾向于认为这是某种不为人知的硬件错误,因为当我设置时intel_iommu=soft,Ubuntu 启动正常,并且 dmesg 报告 IOMMU 已启用,但它实际上不起作用(中没有出现任何内容/sys/kernel/iommu_groups)。我尝试过的其他内核参数没有任何不同,除了成功启动会x2apic is disabled because BIOS sets x2apic opt out bit在 syslog 中显示,并且设置intremap=no_x2apic_optout会使消息消失。

编辑

(在顶部添加了确切的内核版本。)

我手头有一张 Crunchbang++(基本上只是重新设计的 Debian Jessie)安装光盘,所以我把它安装在备用驱动器上,它启动正常,IOMMU 功能正常!默认的运行内核是 3.16.0-4-amd64。

我想在这个项目中使用 Ubuntu 的部分原因是因为它的内核比较新,所以我尝试安装 jessie-backports 内核 (4.6.0-0.bpo.1-amd64),结果遇到了和 Ubuntu 一样的失败(看看这里是什么样子的)。

现在我猜想 3.16 之后有一些与 IOMMU 相关的更改或功能添加,无法与此硬件很好地兼容。除了尝试另一块主板或对 3.16 内核感到满意之外,还有什么想法吗?

相关内容