与 IPMI 查询的内容类似,我如何通过 SMBus/I2C 访问目标服务器中每个设备的 VPD?我是否需要驱动程序,或者 i2c-dev 模块就足够了?如果我有多个存储设备连接到服务器,如何验证目标总线上的哪个是哪个?
我正在使用 i2cDetect 来验证 i2c 总线,但是,我无法验证我的设备连接的是哪条总线,或者它首先是否有总线。我知道我需要一个 i2c 总线/适配器来确定实际的 i2c 设备。创建 i2c 客户端可以这样做,但我仍然需要验证其总线连接,并且创建 i2c 客户端使其仅限于定义 id_table 中枚举的 i2c 设备。我希望它尽可能检测所有存储设备,无论它是否有 i2c 设备。
任何答复将不胜感激。非常感谢。
答案1
部分答案(由于问题老了,询问细节很困难):
如果你的设备的 VPD 存储在标准 EEPROM 中,那么可能标准 EEPROM 驱动程序就足够了。 (如果以不同的方式访问它,那么我不知道)。
modprobe i2c-dev
将允许从用户空间进行 I2C 访问,如果您可以使用i2cdetect
.modprobe eeprom
将安装标准 EEPROM 驱动程序,探测其支持的设备的所有总线,并允许访问/sys/bus/i2c/drivers/eeprom
.
但是,我无法验证我的设备连接的是哪条总线,或者它首先是否有总线。
是的,这有点痛苦,您必须充分了解您的硬件,并根据您在总线上看到的设备进行一些猜测。
看着
/sys/bus/i2c/devices/i2c-*/name
/sys/bus/i2c/devices/i2c-*/device/driver/
也会有帮助。