S4112F-ON交换机有12个SFP+端口;我们正在使用其中的几个。我的目标是通过 i2c 接口与 i2c-tools (linux) 访问交换机上所有 SFP 上的 EEPROM,并最终打开光学监控 (OOM) 或衍生该功能。OOM 工具在安装optoe
驱动程序后运行时会出现段错误(驱动程序安装成功)——这就是我以更直接的方式工作的原因。
现在可以访问 i2c 地址 0x50 和 0x51,但它们指向特定的 SFP+ EEPROM。地址 0x70(由驱动程序使用)是一个多路复用器,其控制寄存器确定通过 0x50 和 0x51(我认为)访问哪个 SFP。
root@OPX:/home/admin# i2cdetect -y 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: UU -- -- -- -- -- -- --
对控制寄存器 (via ) 的任何更改i2cset
都无法在没有错误消息的情况下生效。我想这是来自驱动程序的干扰,或者因为 i2cset 不保证它会工作......
root@OPX:/home/admin# i2cget -f -y 4 0x70 0x00
0x04
root@OPX:/home/admin# i2cset -f -y 4 0x70 0x00 0x05
root@OPX:/home/admin# i2cget -f -y 4 0x70 0x00
0x04
i2c 驱动程序(OPX 安装的一部分)通过 linux 的sysfs
“API”提供访问点,但我不清楚该接口如何允许访问 EEPROM。
我正在寻找一种解决方案来切换 i2c 寄存器正在访问的 SFP。任何见解都会非常有帮助。谢谢。