6.10.2
版本 6.10.2 2022-05-27
tg3 驱动可能导致数据损坏,当启用 Intel VT-d 时
Linux 5.15 内核、tg3 驱动程序与开启的 Intel VT-d 结合使用 似乎导致数据损坏。此问题已在多个平台上验证,这些平台包括 Broadcom NetXtreme Gigabit Ethernet NIC(注意:可能还有其他平台)。本版本包括以下 解决方法:
在服务器启动的早期阶段(rc.S),如果检测到启用了 Intel VT-d,脚本将无条件创建文件:
/etc/modprobe.d/tg3.conf
内容如下:
blacklist tg3
因此,如果默认状态下启用了 VT-d,即没有在 Bios 或通过内核"intel_iommu=off"禁用,那么我们将在所有平台上将 tg3 驱动程序列入黑名单。如果某些人在某个平台上启用 VT-d 后,tg3 驱动程序没有出现问题, 那么他们必须在闪存设备中创建一个_空白_文件:
config/modprobe.d/tg3.conf
当启动序列继续时,它将执行:
install -p -m 0644 /boot/config/modprobe.d/* /etc/modprobe.d
在闪存上存储一个_空白_的tg3.conf文件,然后有效地将其解除黑名单。
会有用户因为他们的 NIC 被列入黑名单而失去网络连接。如果您正在使用问题平台,您应该进入您的 Bios 并禁用 VT-d。如果这是一个没有问题的平台, 那么您需要在您的闪存 config/modprobe.d 目录中创建空白的 tg3.conf 文件。
可能需要一些时间来识别和集成对此问题的适当修复,然后我们将删除自动将其列入黑名单的代码。
如何在带 E3-1265LV2 的 HP MicroServer Gen 8 上禁用 Intel VT-d
重启服务器,然后:
- 启动时按 F9 键进入 BIOS。
- 一旦 bios 加载完成,进入菜单 系统选项 → 处理器选项 → Intel(R) VT-d
- 将其设置为禁用
- 按 Esc 返回到顶部菜单
- 按 F10 退出 BIOS 并保存
服务器现在应该能够正常启动。向社区成员 Oceanic 表示感谢 对于指导。