[以太网/USB/其他总线] 如何在 Linux 上读取以太网桥的 OTP 或 EEPROM 的内容?

[复制链接]
2586|15
 楼主| elearn123 发表于 2024-10-25 15:28 | 显示全部楼层 |阅读模式
本帖最后由 elearn123 于 2024-10-25 15:30 编辑

对于 OTP EEPROM,需要通过ifconfig找到设备名称。

EEPROM:
要验证是否正在读取EEPROM,运行sudo ethtool show-priv-flags<DEVNAME>,其中<DEVNAME> 是从ifconfig 确定的设备名称。
验证是否看到OTP_ACCESSoff
要读取EEPROM,运行sudo ethtool -e <DEVNAME>
如果要将内容保存到文件中,可以运行sudo ethtool -e <DEVNAME> > <FILENAME>

OTP
为了访问 OTP,需要打开OTP_ACCESS。通过sudo ethtool set-priv-flags<DEVNAME> OTP_ACCESS on 来完成,其中<DEVNAME> 是从ifconfig 确定的设备名称。
通过运行sudo ethtool show-priv-flags<DEVNAME> 来验证它是否成功
通过运行sudo ethtool -e <DEVNAME> 来访问OTP


dongnanxibei 发表于 2024-10-28 21:04 | 显示全部楼层
原来会了竟然如此简单。
teaccch 发表于 2024-11-15 23:02 | 显示全部楼层
在Linux上读取以太网桥的OTP(One-Time Programmable)或EEPROM(Electrically Erasable Programmable Read-Only Memory)内容通常需要使用特定的工具和驱动程序。

twinkhahale 发表于 2024-11-16 06:18 | 显示全部楼层
使用 ethtool 工具,ethtool 是一个常用的工具,用于查询和控制网络接口的参数。它可以用来读取和显示网卡的EEPROM内容。

suiziq 发表于 2024-11-16 07:16 | 显示全部楼层
首先,确保你已经安装了 ethtool。读取EEPROM内容其中 <interface> 是你的网络接口名称,例如 eth0 或 enp0s3。这将显示接口的EEPROM内容,通常以十六进制格式输出。

canfeil 发表于 2024-11-16 08:44 | 显示全部楼层
使用 mii-tool 或 mii-diag,mii-tool 和 mii-diag 是用于管理MII(Media Independent Interface)的工具,它们可以用来读取和配置网络接口的MII寄存器。

wamed 发表于 2024-11-16 11:55 | 显示全部楼层
使用 i2c-tools,如果你的网卡使用I2C接口连接EEPROM,你可以使用 i2c-tools 来读取EEPROM内容。

一切D都好 发表于 2024-11-16 13:51 | 显示全部楼层
一般可以使用 devmem,devmem 是一个用于直接读取和写入内存地址的工具。如果你的网卡驱动程序允许直接访问EEPROM寄存器,你可以使用 devmem 来读取EEPROM内容。

星星点点didi 发表于 2024-11-16 15:47 | 显示全部楼层
通常情况下,ethtool 是最常用的工具,因为它广泛支持各种网卡。

清芯芯清 发表于 2024-11-16 17:22 | 显示全部楼层
可以用I2C工具读取,比较直观

pe66ak 发表于 2024-11-16 21:01 | 显示全部楼层
我觉得可以使用ETHTOOL来读取确实没啥问题

yuliangren 发表于 2024-11-16 23:12 | 显示全部楼层
OTP的好像是不能用I2C工具进行读取吧
玫瑰凋零日记 发表于 2025-9-20 15:50 | 显示全部楼层
在 Linux 上读取以太网桥的 OTP 或 EEPROM,可先确定网卡型号,用ethtool -i ethX查驱动。若支持,通过ethtool -e ethX读取 EEPROM 内容;部分需用dd访问对应设备文件(如/sys/class/net/ethX/device/eeprom),或专用工具如mii-tool配合驱动接口
灰色与青 发表于 2025-9-22 17:12 | 显示全部楼层
在 Linux 上读取以太网桥的 OTP 或 EEPROM,可通过 sysfs 接口:先确定网卡名(如 eth0),访问 /sys/class/net/eth0/device/ 下的 eeprom 或 otp 文件,用 hexdump 或 cat 读取,如 hexdump /sys/class/net/eth0/device/eeprom。需 root 权限,具体路径依硬件驱动而定。
波尔街道的松柏 发表于 2025-10-20 11:18 | 显示全部楼层
在 Linux 上读取以太网桥的 OTP 或 EEPROM,可通过 ethtool 工具:先确认桥接物理网卡(如 eth0),执行ethtool -e eth0直接读取 EEPROM;若支持 OTP,部分驱动需用ethtool --flash-otp-read导出。也可编写程序,通过 sysfs 接口(如 /sys/class/net/eth0/device/eeprom)或调用 ioctl 读取,需内核支持对应驱动。
桃花落满山前 发表于 2025-10-27 15:23 | 显示全部楼层
在 Linux 上读取以太网桥的 OTP 或 EEPROM:先确认桥芯片型号(如 KSZ 系列),通过 I2C 或 MDIO 接口访问。
I2C:用i2cget或i2cdump(如i2cdump -y 1 0x50,地址需匹配)。
MDIO:通过ethtool(ethtool -e eth0)或mii-tool,部分需内核配置支持 EEPROM 读取功能。
需 root 权限,参考芯片手册确定地址和寄存器映射。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

29

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部