update reademe

This commit is contained in:
leimingsheng 2026-03-11 14:00:26 +08:00
parent 67b07fcf8b
commit 8777d0a279

169
readme.md

@ -3,6 +3,14 @@
> 本说明仅针对 nicsensorv1.x系列脚本 > 本说明仅针对 nicsensorv1.x系列脚本
> 1.x系列工具本体: [nicsensor.sh](./nicsensor.sh) > 1.x系列工具本体: [nicsensor.sh](./nicsensor.sh)
## 快速使用
工具Usage `./nicsensor.sh help`
工具版本查询 `./nicsensor.sh version`
读取传感器:`./nicsensor.sh pcie0 ina3221 0x42` (读取PCIE_0 上网卡的 INA3221 传感器slave地址0x42)
## 目录 ## 目录
- [nicsensor工具使用说明](#nicsensor工具使用说明) - [nicsensor工具使用说明](#nicsensor工具使用说明)
@ -10,20 +18,21 @@
- [1.简介](#1_简介) - [1.简介](#1_简介)
- [2.使用方法](#2_使用方法) - [2.使用方法](#2_使用方法)
- [2.1 传感器读取](#2_1_传感器读取) - [2.1 传感器读取](#2_1_传感器读取)
- [2.2 FRU相关操作](#2_2_fru相关操作) - [2.2 FRU读写](#2_2_fru读写)
- [2.3 命令透传](#2_3_命令透传) - [2.3 命令透传](#2_3_命令透传)
- [2.4 插槽I2C信息遍历](#2_4_插槽i2c信息遍历) - [2.4 服务器网卡通道I2C信息扫描](#2_4_服务器网卡通道I2C信息扫描)
- [2.5 调试模式使用](#2_5_调试模式使用) - [2.5 调试模式](#2_5_调试模式)
- [2.6 扩展功能](#2_6_扩展功能) - [2.6 扩展功能](#2_6_扩展功能)
- [2.7 设定配置功能](#2_7_设定配置功能) - [2.7 参数配置](#2_7_参数配置)
- [2.8 PMBUS功能测试](#2_8_pmbus功能) - [2.8 PMBUS功能测试](#2_8_pmbus功能)
- [2.9 压力测试stress](#2_9_压力测试stress)
- [3.常见问题](#3_常见问题) - [3.常见问题](#3_常见问题)
- [3.1 ADC128传感器读值为0](#3_1_adc128传感器读值为0) - [3.1 ADC128传感器读值为0](#3_1_adc128传感器读值为0)
- [3.2 脚本执行时出现大批量语法错误](#3_2_脚本执行时出现大批量语法错误) - [3.2 脚本执行时出现大批量语法错误](#3_2_脚本执行时出现大批量语法错误)
- [3.3 传感器读值不正确](#3_3_传感器读值不正确) - [3.3 传感器读值不正确](#3_3_传感器读值不正确)
- [4.附属工具](#4_附属工具) - [4.附属工具](#4_附属工具)
- [4.1 FruParse](#4_1_fruparse) - [4.1 FruParse](#4_1_fruparse)
- [4.2 nicsensor\_s](#4_2_nicsensor_s) - [4.2 nicsensor\_s(已停用)](#4_2_nicsensor_s)
- [5.关于nicsensor\_v2](#5_关于nicsensor_v2) - [5.关于nicsensor\_v2](#5_关于nicsensor_v2)
- [6.附录](#6_附录) - [6.附录](#6_附录)
- [6.1 Project变量说明](#6_1_project变量说明) - [6.1 Project变量说明](#6_1_project变量说明)
@ -35,44 +44,45 @@
nicsensor工具是在带有i2ctool工具(i2ctransfer、i2cdetect)的BMC下用于测试网卡I2C功能的工具。 nicsensor工具是在带有i2ctool工具(i2ctransfer、i2cdetect)的BMC下用于测试网卡I2C功能的工具。
**当前支持的功能有:** **当前支持的功能有:**
- 读取网卡上的I2C传感器 - 读取网卡上的I2C传感器
- 读取并修改网卡上的FRU - 读取并修改网卡上的FRU
- 透传I2C命令到网卡的芯片上 - 透传I2C命令到网卡的芯片上
- 遍历服务器上的PCIE插槽的I2C信息 - 遍历服务器上的PCIE插槽的I2C信息
- 部分服务器类型支持读取OCP卡 - 部分服务器类型支持读取OCP卡
- 支持记录单次运行日志
- 支持测试PMBUS功能**(new)** - 支持测试PMBUS功能**(new)**
- 支持进行压力测试**(new)**
**当前支持测试的传感器类型** **当前支持测试的传感器类型**
- adc128 - adc128
- ina3221 - ina3221
- ina226 - ina226**(new)**
- emc1413 - emc1413
- tmp468 - tmp468
- tmp112 - tmp112
- lm95241 - lm95241**(new)**
> [!tip]
> 每次执行脚本都可以在 `/tmp/nicsensor_debug.log` 查询详细的命令执行记录
## 2_使用方法 ## 2_使用方法
> [!warning] > [!warning]
> 在使用时针对网卡的硬件特性需要定制化修改脚本的 `Project Varible` ,变量的对应关系及说明见[Project变量说明](#6_1_project变量说明) > 在使用时针对网卡的硬件特性需要定制化修改脚本的 `Project Varible` ,变量的对应关系及说明见[Project变量说明](#6_1_project变量说明)
### 2_1_传感器读取 ### 2_1_传感器读取
**命令格式** **命令格式**
``` shell ``` shell
./nicsensor.sh <pcie_slot> <sensor_tpye> <sensor_slave> ./nicsensor.sh <pcie_slot> <sensor_tpye> <sensor_slave>
``` ```
**参数说明** **参数说明**
- `pcie slot`:网卡位于的PCIE SLOT槽位,需要指定pcie/ocp, 不指定时默认为pcie类型
- `sensor type`:传感器类型 | Properties | type | 说明 |
- `sensor slave`:传感器的slave地址 | -------------- | ------- | ------------------------------------------------------------ |
| `pcie slot` | string | 网卡位于的PCIE SLOT槽位,需要指定pcie/ocp, 不指定时默认为pcie类型 |
| `sensor type` | string | 传感器类型 |
| `sensor slave` | hex num | 传感器的slave地址(7 bit) |
**命令示例** **命令示例**
``` shell ``` shell
@ -86,10 +96,10 @@ nicsensor工具是在带有i2ctool工具(i2ctransfer、i2cdetect)的BMC下用于
### 2_2_FRU相关操作 ### 2_2_FRU读写
> [!warning] > [!warning]
> 在写入网卡FRU操作时受限于服务器PCA9641的影响需要将服务器关机后执行 > 在写入网卡FRU操作时受限于服务器PCA9641的影响**建议**将服务器关机后执行
**命令格式** **命令格式**
``` shell ``` shell
@ -101,9 +111,12 @@ nicsensor工具是在带有i2ctool工具(i2ctransfer、i2cdetect)的BMC下用于
``` ```
**参数说明** **参数说明**
- `pcie slot`:网卡位于的PCIE SLOT槽位,需要指定pcie/ocp, 不指定时默认为pcie类型
- `eeprom slave`: FRU所在的eeprom芯片的slave地址 | Properties | type | 说明 |
- `filename`: 仅在写入FRU时提供, 要写入的FRU bin文件 | -------------- | ------- | ------------------------------------------------------------ |
| `pcie slot` | string | 网卡位于的PCIE SLOT槽位,需要指定pcie/ocp, 不指定时默认为pcie类型 |
| `eeprom slave` | hex num | FRU所在的eeprom芯片的slave地址(7 bit) |
| `filename` | string | 仅在写入FRU时提供, 要写入的FRU bin文件路径 |
**命令示例** **命令示例**
``` shell ``` shell
@ -118,14 +131,20 @@ nicsensor工具是在带有i2ctool工具(i2ctransfer、i2cdetect)的BMC下用于
### 2_3_命令透传 ### 2_3_命令透传
提供对芯片直接执行i2c命令的能力通常用于访问网卡核心芯片如FPGANic Controller等。
**命令格式** **命令格式**
``` shell ``` shell
./nicsensor.sh <pcie_slot> chip <chip slave> <command> ./nicsensor.sh <pcie_slot> chip <chip slave> <command>
``` ```
**参数说明** **参数说明**
- `pcie slot`:网卡位于的PCIE SLOT槽位,需要指定pcie/ocp, 不指定时默认为pcie类型
- `chip slave`: 芯片的slave地址 | Properties | type | 说明 |
- `command`: 要透传执行的I2C命令 | ------------ | ------- | ------------------------------------------------------------ |
| `pcie slot` | string | 网卡位于的PCIE SLOT槽位,需要指定pcie/ocp, 不指定时默认为pcie类型 |
| `chip slave` | hex num | 芯片的slave地址(7 bit) |
| `command` | string | 要透传执行的I2C命令 |
**命令示例** **命令示例**
``` shell ``` shell
@ -135,7 +154,7 @@ nicsensor工具是在带有i2ctool工具(i2ctransfer、i2cdetect)的BMC下用于
### 2_4_插槽I2C信息遍历 ### 2_4_服务器网卡通道I2C信息扫描
**命令格式** **命令格式**
``` shell ``` shell
@ -152,16 +171,22 @@ nicsensor工具是在带有i2ctool工具(i2ctransfer、i2cdetect)的BMC下用于
### 2_5_调试模式使用 ### 2_5_调试模式
> 关联变量 `DEBUG_MODE`, 启用调试模式时需要将该变量的值配置为1
如果不需要借助脚本来选通服务器上对应的channel, 仅需要做传感器数值测试, 可以启用调试模式。 如果不需要借助脚本来选通服务器上对应的channel, 仅需要做传感器数值测试, 可以启用调试模式。
在调试模式下, 脚本不会执行选通PCA9641以及PCA9546/9548的操作。仅直接测试传感器。因此需要手动调整两个变量 在调试模式下, 脚本不会执行选通PCA9641以及PCA9546/9548的操作。仅直接测试传感器。
- `DEBUG_MODE`
- `i2c_bus`
> 关联变量 `DISABLE_DETECT`, 启用时配置为1, 将不会在切换PCA9641和PCA9548时进行i2cdetect **开启调试模式**
``````sh
./nicsensor.sh set debug 1
``````
**关闭调试模式**
``````sh
./nicsensor.sh set debug 0
``````
@ -173,15 +198,19 @@ nicsensor工具是在带有i2ctool工具(i2ctransfer、i2cdetect)的BMC下用于
### 2_7_设定配置功能 ### 2_7_参数配置
可以通过一组名为 `get/set` 的指令对脚本中的如下变量做即时修改而无需修改脚本(下电后恢复默认)。支持修改的变量如下: 可以通过一组名为 `get/set` 的指令对脚本中的如下变量做即时修改而无需修改脚本(下电后恢复默认)。支持修改的变量如下:
- `server_type` : 对应属性值缩写 `server` | Properties | 对应脚本变量 | 说明 |
- `DEBUG_MODE` : 对应属性值缩写 `debug` | ---------- | ---------------- | ---------------------------------------- |
- `DISABLE_DETECT` : 对应属性值缩写 `n_detect` | `server` | `server_type` | 脚本应用的服务器类型 |
- `fru_size` : 对应属性值缩写`fru_size` | `debug` | `DEBUG_MODE` | 是否启用调试模式 |
| `n_detect` | `DISABLE_DETECT` | 是否禁止执行时的i2c detect操作 |
| `fru_size` | `fru_size` | 默认fru的读取字节数 |
| `i2cbus` | `i2c_bus` | 默认的i2c bus通常需要搭配debug一起使用 |
**命令格式** **命令格式**
``` shell ``` shell
./nicsensor.sh <get/set> <property> <value> ./nicsensor.sh <get/set> <property> <value>
``` ```
@ -219,6 +248,52 @@ nicsensor工具是在带有i2ctool工具(i2ctransfer、i2cdetect)的BMC下用于
### 2_9_压力测试stress
> [!Warning]
>
> 支持的脚本版本v1.10及以上
>
> 压力测试属于额外的功能,需要将 [stress_test.sh](./stress_test.sh) 拷贝到和nicsensor脚本相同的目录。
>
> 如果不添加该脚本,该功能无法正常使用
**功能介绍**
一个模块化的压力测试工具通过配置文件管理测试参数支持灵活设置测试轮次、间隔、传感器类型等方便用户进行nicsensor的稳定性测试。
**命令格式**
``````sh
./nicsensor.sh <pcie slot> stress <option> <option data>
``````
**参数说明**
| 参数名称 | 数据类型 | 说明 |
| ------------- | -------- | ------------------------------------------------------------ |
| `pcie slot` | string | nicsensor工具通用格式在这里无特殊含义 |
| `option` | string | 要执行的stress命令类型有如下取值<br>`start` : 开始执行压力测试无需option data<br>`show`: 显示压力测试的配置项, 无需option data<br>`round`: 要执行的压力测试圈数<br>`tool`: 要使用的nicsensor脚本默认为nicsensor.sh<br>`interval`: 每一圈执行的时间间隔,单位为秒(s)<br>`slot`: 目标测试的插槽号<br>`sensor`: 需要测试的传感器类型<br>`slave`: 目标传感器的slave地址 |
| `option data` | string | 依据option类型决定是否需要该字段 |
**命令示例**
``````sh
#场景说明对pcie1的网卡压测 ina3221(0x42) 100次, 读取间隔2s
# step 1 配置测试项
./nicsensor.sh pcie1 stress round 100
./nicsensor.sh pcie1 stress interval 2
./nicsensor.sh pcie1 stress slot pcie1
./nicsensor.sh pcie1 stress sensor ina3221
./nicsensor.sh pcie1 stress slave 0x42
# step 2 查看测试项是否符合预期
./nicsensor.sh pcie1 stress show
# step 3 开始测试
./nicsensor.sh pcie1 stress start
``````
## 3_常见问题 ## 3_常见问题
@ -254,9 +329,11 @@ ADC128传感器在使用时需要初始化, 因此第一次读取时传感器可
### 4_2_nicsensor_s ### 4_2_nicsensor_s
基于脚本版本1.8, 剔除了所有记日志的操作, 用于加速i2c的执行, 确保在9641工作的生命周期内尽快完成i2c任务 该工具已于`nicsensor v1.10` 移除
**工具路径**:[nicsensor_s.sh](./nicsensor_s.sh) ~~基于脚本版本1.8, 剔除了所有记日志的操作, 用于加速i2c的执行, 确保在9641工作的生命周期内尽快完成i2c任务~~
~~**工具路径**:[nicsensor_s.sh](./nicsensor_s.sh)~~
@ -269,8 +346,6 @@ nicsensor_v2将服务器选通channel和读取传感器数值的功能解耦,
## 6_附录 ## 6_附录
### 6_1_Project变量说明 ### 6_1_Project变量说明
> [!important] > [!important]
@ -323,13 +398,3 @@ nicsensor_v2将服务器选通channel和读取传感器数值的功能解耦,
**TMP112**相关 **TMP112**相关
- `TMP112_Sensor_name`: 定制化TMP112对应的名称 - `TMP112_Sensor_name`: 定制化TMP112对应的名称
**FRU**相关
- `fru_offset`: 网卡FRU所在eeprom的偏移量。默认值为 0x00 0x00
- `fru_size`: 读取FRU时要读取的长度, 默认读取长度为256, 可根据实际需要扩展
**所用服务器**
- `server_type`: 脚本将工作在哪个服务器上?支持的服务器列表见`Support_Server_List`, 默认值为`auto`,支持自动识别受支持的型号。
> [!tip]
> 当`server_type`被配置为`auto`时,脚本会尝试自动获取服务器类型,如果获取失败,仍需手动配置该变量。