3.5 KiB
3.5 KiB
nicsensor tool V2 使用说明
1 简介
相比于v1.x版本的主要差异点:
- 脚本模块化, 易于阅读和扩展
- 支持单独测试传感器数据
- 可扩展在多个平台的服务器使用
2 使用方法
2.1 标准执行
标准执行前需要修改
nicsensor.sh, 以及部分对应的plugin_xxx.sh对于
nicsensor.sh, 使用前需要先修改脚本中的如下变量:server_type: 要应用的服务器类型server_platform: 要应用服务器平台名称对于
plugin_xxx.sh, 使用前需要针对具体的sensor指定对应的特殊变量
标准执行命令格式
./nicsensor.sh [nic_slot] [sensor_type] [sensor_slave]
参数说明
nic_slot: 网卡所在的服务器槽位, 例如pcie2或ocp0sensor_type: 需要测试的传感器类型, 例如adc128,ina3221,tmp468sensor_slave: 传感器的I2C地址(7bit), 例如0x48
命令示例
# 读取服务器 PCIE2 号槽位上的 adc128 传感器, slave地址0x1f
./nicsensor.sh pcie2 adc128 0x1f
2.2 I2C Scan
类似于标准执行, 使用前需要现先在 nicsensor.sh 脚本中指定使用的服务器类型
命令格式
./nicsensor.sh detect [nic_type]
参数说明
nic_type: 要扫描的网卡类型, 默认值是pcie, 可选值:pcieocp
命令示例
./nicsensor.sh detect pcie
2.3 传感器单独调试
nicsensor v2 提供了针对每类传感器将十六进制读值直接可视化的功能用于单独调试
每一类可使用的sensor都有对应的 plugin_xxx.sh, 例如:
plugin_adc128.shplugin_emc1413.shplugin_ina3221.shplugin_tmp112.shplugin_tmp468.sh
这些脚本都实现了一个 test 方法用于单独解析传感器的16进制的读值为可视化十进制数值
常见命令, 以 plugin_tmp112.sh 举例
# 使用方法
./plugin_tmp112.sh help
# 单次调试数据
./plugin_tmp112.sh test 0x24 0x00
3 代码结构
3.1 脚本结构
- 主控脚本
- nicsensor: 标准执行的入口脚本
- I2C接口脚本
- 服务器平台脚本
- platform_5280m7: 5280M7的对应逻辑
- platform_5688m7: 5688M7的对应逻辑
- 传感器脚本
- 功能类脚本
- format_print: 用于生成格式化console打印或者记录日志
- auto_auth: 用于一键执行为每个脚本文件赋予可执行权限
3.2 执行顺序
nicsensor.sh
|
+--> init debug log 初始化日志文件
|
+--> is detect?
|
+-yes-> perform_detect : 调用 platform_xx.sh 的 detect 方法开始执行
|
+<--no--+
|
+--> conf_pre_check: 检查文件系统中脚本文件是否满足执行需求
|
+--> parse_slot_name: 根据 slot_name 解析槽位信息
|
+--> connect_i2c: 调用 platform_xx.sh 的 connect 方法选通对应槽位 I2C 通路
|
+--> start_sensor_reading: 调用 plugin_xx.sh 的 read 方法读取传感器的读值并解析