4. 第4章
04 网卡识别:lspci与mlxconfig查看网卡型号、端口与固件状态
掌握Lx网卡部署排错全套资料在网卡识别中的定位、故障信号与验证顺序。
网卡识别:从硬件发现到固件状态确认
概念块:网卡识别
网卡识别用网卡识别、mlxconfig查看网卡型号、端口连接到网卡识别的调试、验证和交付动作。
- 网卡识别
- mlxconfig查看网卡型号
- 端口
- 固件状态
在部署或排错 ConnectX-6 Lx 网卡部署排错全套资料 时,第一步永远是确认操作系统能否正确识别硬件,以及固件配置是否与预期一致。很多部署失败或性能异常,根源在于系统加载了错误的驱动、固件版本不匹配,或是端口模式(如 Eth/IB)配置错误。本节将围绕 lspci 和 mlxconfig 两个核心工具,讲解如何快速定位网卡型号、查看端口状态以及校验固件配置,并给出可复现的验证动作
拿到一台新服务器或遇到网卡异常时,先执行 lspci | grep Mellanox 确认硬件是否被 PCIe 总线枚举;再执行 mlxconfig -d /dev/mst/mt4123_pciconf0 query 读取固件当前配置。这两个命令的输出是后续所有排错动作的基线
硬件发现:lspci 定位网卡型号与端口拓扑
现场定位记录
- 对象/模块:典型技术应用现场里的网卡识别
- 问题现象:典型技术应用现场里网卡识别一开始改动很快,输入需求增加后日志记录显示状态外泄、循环依赖和接口膨胀。
- 验证动作:先把职责边界、私有状态、依赖方向、阈值标准和验证入口画清,再执行拆分动作。
- 工程判断:前后变化点能被隔离、被验证、被替换,才说明架构重构达到标准。
网卡识别要确认的对象和结果
lspci 是 Linux 下最直接的 PCIe 设备枚举工具。对于 Lx网卡识别,它不仅能显示网卡的 Vendor ID 和 Device ID,还能通过 -vvv 参数展示端口数量、链路速度(Width/ Speed)以及当前驱动绑定情况。在 Mellanox ConnectX-6 Lx 上,典型的输出会包含 Mellanox Technologies MT4125 或 MT4127 等设备名,对应单端口或双端口型号
执行 lspci -vvv -s <BDF>(BDF 为 Bus:Device.Function 编号),可以查看每个端口的 LnkSta 字段。如果显示 Speed 8GT/s, Width x8,说明链路工作在 PCIe 3.0 x8 模式;若显示 Speed 2.5GT/s 或 Width x1,则可能存在物理链路或 BIOS 配置问题。对于双端口网卡,每个端口会占用一个独立的 Function,在 lspci 输出中表现为相邻的 BDF 号
如果 lspci 输出中 Mellanox 设备显示 Unknown device 或 Class 0280(Network controller),通常意味着系统缺少对应的 核心 驱动,或者固件版本过旧导致 PCIe Class Code 未被正确识别。此时应优先检查驱动安装和固件版本
固件配置:mlxconfig 定位路径与状态校验
网卡识别落地前要同时核对网卡识别的mlxconfig查看网卡型号、失败路径和端口。
图表解读:对应正文“固件配置:mlxconfig 定位路径与状态校验”。这张图以最终 Mermaid 图中的真实节点为准,先看“网卡识别:lspci与mlxconfig查看网卡型号、端口与固件状态”的主链。读图顺序:数据入口 → fix action验证方式 → mlxconfig定位路径 → Lx → lspci → 处理 / 模型服务侧
节点说明:【mlxconfig定位路径】表示页面入口与跳转路径的组织,帮助确认用户或操作从哪里进入并如何继续;检查重点:入口设置、承接关系和跳转异常。
mlxconfig 是 Mellanox 官方提供的固件配置工具,用于读取和修改网卡的非易失性设置。在 mlxconfig定位路径 时,首先需要找到正确的 MST(Mellanox Software Tools)设备节点。执行 mst start 启动 MST 服务后,使用 mst status 查看所有可用的 MST 设备,通常格式为 /dev/mst/mt4123_pciconf0。这个路径就是 mlxconfig 的 -d 参数目标
常见的固件配置项包括 LINK_TYPE_P1(端口1链路类型,可选 ETH/IB/VPI)、NUM_OF_VFS(虚拟功能数量)以及 BOOT_OPTION(PXE 启动使能)。执行 mlxconfig -d /dev/mst/mt4123_pciconf0 query 会输出当前所有可配置参数及其值。如果发现 LINK_TYPE_P1 为 IB 而实际组网是 RoCE v2,则必须修改为 ETH 并重启系统才能生效
动作 验证方式
修改固件配置后,不能仅凭 mlxconfig 的 query 输出确认生效。正确的 动作验证方式 是:先执行 mlxconfig -d /dev/mst/mt4123_pciconf0 set LINK_TYPE_P1=ETH,然后执行 reboot 或 mlxfwreset -d /dev/mst/mt4123_pciconf0 reset 热重启固件。重启后,再次执行 mlxconfig query 确认参数已持久化,同时用 ibdev2netdev 或 ip link show 验证端口模式是否切换为 Ethernet
| 检查项 | 标准 | 是否通过 |
|---|---|---|
| PCIe 设备枚举 | lspci | grep Mellanox 输出包含… | 未检查 lspci -vvv 中的 LnkSta 链路… |
| MST 设备节点 | mst status 显示 /dev/mst/mt41… | 未执行 mst start 或系统缺少 mstflin… |
| 固件配置查询 | mlxconfig -d /dev/mst/mt412… | 仅查询未修改,或修改后未执行固件复位 |
| 端口状态验证 | ip link show 或 ibstat 显示端口… | 未区分物理端口与虚拟端口(VF) |
真实项目场景
某数据中心部署 ConnectX-6 Lx 双端口网卡,lspci 正确识别两个 Function,但 ip link show 只看到一个端口。排查发现 mlxconfig query 中 NUM_OF_VFS 被误设为 64,占用了第二个端口的 PCIe 资源。执行 mlxconfig set NUM_OF_VFS=0 并复位固件后,两个端口均正常显示
问题对照与修正
- 常见偏差:把网卡识别直接写进主流程,只验证能跑通,留下网卡识别边界、状态和验证口径不清。
- 修正做法:把网卡识别收敛成稳定接口,明确伪代码和失败返回。
- 复核方式:构造一个异常输入或超时场景,用日志、断言和稳定性与可观测性证明修复有效。
风险判断
在 查看网卡型号网卡部署排错全套资料 过程中,有两个常见风险点:一是 mlxconfig 修改参数后未执行固件复位,导致配置看似写入但实际未生效;二是 lspci 输出中的 Subsystem 字段可能被误认为网卡型号,实际应参考 Device 字段(如 4125 或 4127)
判断标准方面:如果 lspci 显示 Mellanox ConnectX-6 Lx 但 mlxconfig 无法识别设备,通常说明 MST 驱动版本与固件不匹配,应升级 mstflint 或 mlxup 工具。如果 mlxconfig 能查询但修改后端口模式未切换,需要检查是否同时修改了 LINK_TYPE_P1 和 LINK_TYPE_P2(双端口网卡需分别设置)
不要仅凭 lspci 输出中的 Mellanox Technologies 就认为驱动已加载。必须检查 lsmod | grep 核心 确认内核模块已绑定。另外,mlxconfig 的 query 输出中 FW_VERSION 字段应记录在案,作为后续固件升级的基线
最后,将 lspci 和 mlxconfig 的输出保存为日志文件,是 网卡部署排错全套资料 中不可或缺的资产。建议执行 lspci -vvv | grep -A 20 Mellanox > pci_info.log 和 mlxconfig -d /dev/mst/mt4123_pciconf0 query > 配置.log,这些日志在后续驱动升级、性能调优或向 Mellanox 支持团队提交工单时,都是关键的上下文证据
网卡识别先对齐现场任务、输入材料和输出结果,再回到Lx网卡部署排错全套资料的细节逐项核对。
网卡识别的主要风险来自网卡识别边界、状态和验证口径不清;落地前必须核对伪代码,并确认例外场景和结果记录。
本节资料使用说明
网卡识别里最先使用的工具、样例或资料是哪一个?
替换Lx网卡部署排错全套资料时,哪些位置可以改,哪些位置要保留?
输出物检查时,最不能漏掉哪一项?
如果换一套素材,使用顺序要不要调整?