使用busctl手动发送smbus报文获取响应
更新时间: 2025/12/15
在Gitcode上查看源码以网卡为例,smbus的收发对应一个Chip,如下: 查询环境上该Chip 可发现其存在诸多方法 WriteRead用于smbus,ComboWriteRead用于stdsmbus 使用比较简单,传入data和期望读取长度即可 例如获取mac地址的请求为00 00 04 04 00 00 00 00 30 00 00 00 1E A1 83 2C 期望读取长度为64,则构造出busctl命令如下:
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Complex/Chip_Hi1822_0101010202 bmc.kepler.Chip.BlockIO WriteRead a{ss}ayu 0 0x10 00 00 04 04 00 00 00 00 0x30 00 00 00 0x1E 0xA1 0x83 0x2C 0x40
```c
可获取到响应:

手动发送结果,与代码正常收发保持一致:
