我有一些 Linux 内核和 SFP/I2C 驱动程序问题。
我正在为嵌入式板使用 buildroot Linux 内核。
我需要能够读取 SFP i2c 设备的 eeprom 文件。
<强>1。工作案例:
当 SFP 模块从一开始(在内核加载之前)插入我的开发单元板时,当启动完成时,我可以看到并读取路径中的 eeprom 文件:/sys/class/i2c-adapter/i2c- 1/1-0050/eeprom
- 内核在启动时打印 i2c 设备扫描结果:
<强>2。不工作的情况:
如果启动时没有插入 SFP 模块,并且内核完成启动过程,那么当我插入 SFP 模块时,我会观察到路径:
/sys/class/i2c-adapter/i2c-1/1-0050/不包含 eeprom 文件。
- sfp-eeprom 代码的设备树部分:
我的猜测是,SFP 驱动程序负责在插入 SFP 模块后触发该事件,并触发 eeprom 文件的创建。
想问你我错过了什么? sfp 驱动程序中的一些绑定(bind)代码来触发 i2c 扫描之类的?
有什么建议吗?
提前致谢。
最佳答案
已找到此问题的可能解决方法。
使用ethtool -m接口(interface)。
来自 ethtool 手册页:
-m --dump-module-eeprom 从插件模块(例如 SFP+、QSFP)检索并解码 EEPROM(如果可能)
关于c - 用户空间中缺少 I2c eeprom 文件 - SFP 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53515362/