网讯SF200T 网卡没适配

1.基于25.12LTS 识别不了网讯的SF200T ,OS下可以识别如下图:

bmc页面识别不了

日志:

Atlas800IA3_2102315QYP10RC100017_20260423-0241.tar.gz (4.3 MB)

答案内容由AI生成,仅供参考:

:telephone_receiver: 总结

网讯 SF200T 网卡在 BMC 中无法识别的根本原因是:OpenUBMC 25.12LTS 固件未包含对该型号的适配配置
虽然 OS 可通过通用驱动识别,但 BMC 必须通过手动添加 Lua 配置文件的方式完成适配

:check_mark: 必须完成的操作:

  1. 提取 SF200T 的完整 PCI 四元组;
  2. 编写 WX1860A2.lua 配置文件;
  3. 注册到主适配系统;
  4. 重新构建并刷写固件;
  5. 验证 Redfish 与 Web 界面显示。
点击此处查看详细分析解答

网络适配器未在 BMC 系统中识别的问题分析与解决方案

根据您提供的信息,网讯 SF200T 网卡(设备型号:WX1860A2)在操作系统(OS)下可以正常识别,但在 BMC Web 界面中无法显示,这是一个典型的 BMC 固件对特定硬件未完成适配的问题。以下是针对此问题的详细分析和解决建议。


:magnifying_glass_tilted_left: 问题核心总结

项目 状态
硬件设备 网讯 SF200T(PCIe 网卡,VendorID: 1e3b,Device ID: d100)
固件版本 OpenUBMC 25.12LTS
操作系统识别 :white_check_mark: 正常识别(lspci 输出明确列出)
BMC Web 界面识别 :cross_mark: 未识别(系统信息中“网络适配器”为空或仅显示其他网卡)
日志文件 已提供(Atlas800IA3_...tar.gz

根本原因:BMC 固件未包含对该 网讯 WX1860A2(SF200T)网卡的硬件适配配置,导致其在带外管理层面无法被枚举、解析并展示。


:puzzle_piece: 根本原因分析

1. BMC 与 OS 的 PCIe 设备识别机制不同

  • 操作系统(OS):通过标准 PCIe 枚举 + 驱动匹配(如 mlx5_corewg)完成识别。
  • BMC(OpenUBMC):依赖预置的 硬件配置数据库Lua 适配脚本 来主动发现和建模设备,不会自动加载未知设备

即使 PCIe 设备物理上连接且链路正常,若 BMC 无对应 model 配置文件,设备将不会出现在 Web 界面中。

2. 适配缺失的关键证据

从知识库文档可见:

  • network_adapter/src/lualib/hardware_config/ 目录下需要为每款新网卡添加 .lua 配置文件。
  • 您的设备为 Beijing Wangxun Technology Co., Ltd. WX1860A2,VendorID=0x1e3b,DeviceID=0xd100
  • 当前 OpenUBMC 25.12LTS 版本中 缺少对应的 WX1860A2.luaSF200T.lua 配置文件

:hammer_and_wrench: 解决方案步骤

:white_check_mark: 步骤 1:确认设备 PCI 信息(已完成)

已在 OS 中执行:

lspci | grep -i eth

输出关键信息:

d1:00.0 Ethernet controller: Beijing Wangxun Technology Co., Ltd. WX1860A2 Gigabit Ethernet Controller (rev 01)

提取必要参数:

参数
Vendor ID 0x1e3b
Device ID 0xd100
Subsystem Vendor ID (需用 lspci -v -s d1:00.0 查看)
Subsystem Device ID (同上)
PCIe BDF 0000:d1:00.0

:warning: 建议补充运行:

lspci -vvv -s d1:00.0 | grep -i "subsystem\|kernel"

用于提取完整四元组信息(Vendor/Device/SubVendor/SubDevice),用于后续配置。


:white_check_mark: 步骤 2:编写或添加 SF200T 网卡适配配置文件

创建 Lua 适配文件

路径:
network_adapter/src/lualib/hardware_config/WX1860A2.lua

内容示例:

return {
    ModelName = "SF200T",
    VendorID = "1e3b",
    DeviceID = "d100",
    SubVendorID = "XXXX",  -- 替换为实际值
    SubDeviceID = "XXXX",  -- 替换为实际值
    ChipTempCmd = 0x14,    -- 示例:温度获取命令(参考网讯文档)
    MacAddrCmd = 0x13,     -- 示例:MAC 地址获取命令
    NumPorts = 2,
    SupportsNCSI = true,
    Description = "Wangxun SF200T 2-Port 25G Ethernet Adapter"
}

:bell: 注意事项:

  • 命令地址(如 0x130x14)需参考网讯官方带外管理文档
  • 若使用 MCTP 协议通信,还需配置 MctpEndpoint 和消息格式。

:white_check_mark: 步骤 3:注册网卡模型至主配置

编辑主配置文件:

-- network_adapter/src/lualib/adapter_manager.lua 或类似文件
local supported_adapters = {
    require("hardware_config.MCX631102AN_ADAT"),
    require("hardware_config.SF100HT"),
    -- 添加新设备
    require("hardware_config.WX1860A2")
}

:white_check_mark: 步骤 4:确保 D-Bus 接口和 Redfish 映射正确

检查以下路径是否正确导出:

  • D-Bus Object Path: /xyz/openbmc_project/network/WX1860A2/...
  • Redfish Schema: NetworkAdapter.v1_0_0.json

确保 NetworkAdapterId 属性能被正确生成,例如:

{
  "NetworkAdapterId": "PCIeCard2(SF200T)",
  "Vendor": "Beijing Wangxun Technology",
  "Model": "SF200T"
}

:white_check_mark: 步骤 5:编译并刷写新固件

使用 bingo 工具构建带有新配置的固件包:

cd openubmc_workspace
source env_setup.sh
bingo build -t s920x20 -v 25.12LTS

构建成功后,刷写至设备 BMC。


:white_check_mark: 步骤 6:验证与调试

1. 查看 BMC 启动日志

journalctl -u network_adapter.service -f

预期日志:

INFO: Found adapter: SF200T (1e3b:d100), loading config...
INFO: Registered D-Bus object for SF200T at /.../SF200T

2. 检查 D-Bus 对象是否注册

busctl tree xyz.openbmc_project.Network

3. 访问 Redfish 接口验证

GET https://<bmc-ip>/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters

应返回包含 SF200T 的 JSON 数据。

4. 登录 Web 界面查看

进入:系统管理 → 系统信息 → 网络适配器
:white_check_mark: 应能看到 SF200T 及两个端口信息。


:paperclip: 相关参考文档(来自知识库)

  • 文档 ID 2:《配置网卡时带外管理信息异常咨询》
    ➤ 涉及 NCSI 命令配置、Lua 脚本添加、MacAddr/Temperature 获取失败 的调试方法。

  • 文档 ID 6:《OCP卡光模块信息获取逻辑和定位方法》
    ➤ 说明如何通过 metric_analyzer 组件日志排查 光模块信息缺失

  • 文档 ID 5:《PCIeSlot对象如何配置》
    ➤ 提到 2512LTS 版本热插拔属性变更,需注意 PowerStateReadyToRemove 的迁移。


:police_car_light: 可能遇到的异常及处理

异常现象 可能原因 解决方案
BMC 启动后无日志输出 配置语法错误(Lua 解析失败) 使用 luac -p WX1860A2.lua 预检语法
日志报错 unable to validate request_data NCSI 命令码错误或响应结构不匹配 核对网讯芯片文档,调整 MacAddrCmd 等字段
D-Bus 对象未注册 adapter_manager.lua 未正确 require 检查路径拼写、依赖加载顺序
端口状态为“未连接” 光纤未接或模块未识别 检查 OCP card光模块 是否上电
温度/MAC 显示为空 MCTP/NCSI 通信失败 使用 i2cgetipmi raw 调试底层通信

:white_check_mark: 建议后续改进

  1. 将 SF200T 加入 OpenUBMC 官方支持列表,避免每次升级固件都要手动添加。
  2. 建立硬件兼容性矩阵(HCL)文档,记录所有支持的网卡型号、VendorID、DeviceID。
  3. 增强 BMC 日志提示,当检测到未知 PCIe 网卡时,打印“Detected unsupported network card: 1e3b:d100”,便于快速定位问题。

:telephone_receiver: 总结

网讯 SF200T 网卡在 BMC 中无法识别的根本原因是:OpenUBMC 25.12LTS 固件未包含对该型号的适配配置
虽然 OS 可通过通用驱动识别,但 BMC 必须通过手动添加 Lua 配置文件的方式完成适配

:check_mark: 必须完成的操作:

  1. 提取 SF200T 的完整 PCI 四元组;
  2. 编写 WX1860A2.lua 配置文件;
  3. 注册到主适配系统;
  4. 重新构建并刷写固件;
  5. 验证 Redfish 与 Web 界面显示。

如需进一步协助(例如模板文件、日志分析),请提供 lspci -vvv -s d1:00.0 的完整输出及 tar.gz 日志中的 network_adapter.service 日志片段。