新系统
HP544+ 网卡太老,在新硬件和新系统下使用时,可能会有一些问题。本章节主要记录遇到的问题和解决方法。
网卡消失
问题描述:
- 硬件: z790m 主板,14代 cpu,14700hx 处理器
- 操作系统: pve9
- 问题描述: 插了两块 HP544+ 网卡,开机正常。几分钟之后,只有第一槽的网卡正常,另一块插在 pcie 4x 槽的网卡消失了。体现为 lspci 可以看到网卡,但是 ip addr 无法看到。重启后正常,但几分钟后问题依旧,第二块网卡继续消失。
问题分析:
-
PCIe ASPM (节能模式) 冲突
Z790 是消费级芯片组,默认 BIOS 和 OS 设置会积极地尝试让 PCIe 设备进入睡眠(L0s/L1 状态)以省电。企业级网卡通常不支持这种频繁的电源状态切换,会导致链路不稳定或直接掉卡。
验证方法:查看系统日志 dmesg。
dmesg | grep -iE "mlx|pci|error"如果看到类似 unrecoverable error、PCIe Bus Error 或者 mlx4_core: Internal error detected,大概率是这个问题。
-
PCIe 版本
日志显示 limited by 8.0 GT/s PCIe x4 link,说明卡协商在 PCIe 3.0。但是,Z790 芯片组的 PCH 通道默认通常是 PCIe 4.0 甚至自动协商。ConnectX-3 是老设备,信号电气特性可能与 Z790 的自动协商机制打架,导致链路重置(Retraining)
解决方法:
-
关闭PCIe ASPM (节能模式)
在 PVE 的启动参数中强制关闭 PCIe 节能。
编辑 grub 配置:
nano /etc/default/grub找到 GRUB_CMDLINE_LINUX_DEFAULT 这一行,在引号内添加 pcie_aspm=off。
GRUB_CMDLINE_LINUX_DEFAULT="quiet pcie_aspm=off"更新 grub 并重启:
update-grub reboot -
在主板 bios 中将 pcie 版本设置为 pcie 3.0
-
在主板 bios 中启用 Above 4G Decoding(大于 4G 地址解码)。
-
在主板 bios 中关闭 Resizable BAR Support(可调整大小的 BAR)。
设置之后,问题临时解决。但后续发现,长时间之后这块网卡依然会消失,主要原因猜测是 pch 通道的 pcie 通道信号不稳定,导致网卡掉线。
参考:
https://aistudio.google.com/prompts/1-qQ-dKCwzsas-y81yh2x5pcL8JR1Aq75
期间用到的排查问题的命令:
ip addr
lspci | grep controller
dmesg | grep -iE "mlx|pci|error"