网讯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_core、wg)完成识别。
  • 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.lua 或 SF200T.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: 注意事项:

  • 命令地址(如 0x13、0x14)需参考网讯官方带外管理文档。
  • 若使用 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 版本热插拔属性变更,需注意 PowerState 和 ReadyToRemove 的迁移。


: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 通信失败 使用 i2cget、ipmi 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 日志片段。

  • conan: “libmcpp/1.2.59@openubmc/stable”

  • conan: “component_drivers/1.2.89@openubmc/stable”

  • conan: “devmon/1.2.22@openubmc/stable”

把上面这些版本加入到manifest下的framework.yml ,
然后加入南向的网卡SR到profile.txt

drivers/pcie_nic_card/wangxun/csr/14140130_80881001_80880300.sr
drivers/pcie_nic_card/wangxun/csr/14140130_8088010a_80880101.sr
drivers/pcie_nic_card/wangxun/csr/14140130_8088010b_80880102.sr
drivers/pcie_nic_card/wangxun/csr/14140130_80880101_80880201.sr
drivers/pcie_nic_card/wangxun/csr/14140130_80880103_80880401.sr
drivers/pcie_nic_card/wangxun/csr/14140130_80880105_80880202.sr
drivers/pcie_nic_card/wangxun/csr/14140130_80880107_80880402.sr

然后在os 升级升级SF200T 的固件
[root@localhost SF200T_B_5001001c]# ls
md5sum.txt SF200T_B_5001001c.sig wxtool_arm
SF200T_B_5001001c.img sha256sum.txt
[root@localhost SF200T_B_5001001c]# ./wxtool_arm -F SF200T_B_5001001c.img
It is a 1Gigabit nic image.
Please wait 1 Rocket cards flash upgrading …

SIG_FILE:SF200T_B_5001001c.sig

FILE SHA256 sum:
d0f32f48cc66fe7846d9f1c721215ced8dc8d97eb228a660d74396db7fe59cb5 SF200T_B_5001001c.sig
bccdfb60e92441a2765b943dc8c8b7f461292308712bd819990e257b3c47bda6 SF200T_B_5001001c.img

Verified OK
Checking chip/image version …
The image chip_v is B
The nic chip_v is B
Checking sub_id …
The image’s sub_id : 0201
The card’s sub_id : 0201
It is a right image
Checking dev_id …
The image’s dev_id : 0101
The card’s dev_id : 0101
flash write-protect register val : 0
Start to download No.0 adaptor card [ 0000:d1:00.0 ]:
Old: MAC Address0 is: e0e2d10776aa
MAC Address1 is: e0e2d10776ab
sn is Hex
SN is: 020186042534301336

vpd_sn_change_t
id_str: WX GbE Family Controller
pn_str: SF200T
sn_str: 020186042534301336
Erase sector1 command, return status = 0
Retore mac addr in backup area
Start to erase flash … complete 100%
Start to upgrade PCI [ 0000:d1:00.0 ] flash … complet 99%9%
New: MAC Address0 is: e0e2d10776aa
MAC Address1 is: e0e2d10776ab
SN is: 020186042534301336

Download Complete 100%

[ :slight_smile: ] [ QAQ ] Emnic PCI Utils upgrading is succeeded! 1 cards are upgraded!!

[root@localhost SF200T_B_5001001c]#

升级完然后重启OS ,识别不了。然后也重启BMC还是识别不了
有一份日志如下

MK1041_PR210K210811SZ00013_20260518-0914.tar.gz (5.2 MB)

framework.log内搜到这个报错,可能的原因是南向三个组件仓的搭配不合理,所以导致devmon服务起不来,可以试试其他版本搭配。

再看下manifest下这两个文件有没有,没有的话也加载不了devmon服务。

好的,我确认下