[以太网/USB/其他总线] 如何在LINUX中获取以太网PHY寄存器数据

[复制链接]
5901|14
 楼主| edustudy 发表于 2024-3-29 10:37 | 显示全部楼层 |阅读模式
可以用一下两种方法来获取 Linux 中的以太网 PHY 寄存器数据
方法 1: 使用ETHTOOL
如果 ethtool 在内核中不可用,则通过配置用户空间package,增加ethtool工具并重新编译;
安装该工具后,使用以下命令配置和显示以太网接口参数的
ethtool  [option]  devname
ethtool -s eth0 speed 100 duplex full autoneg off
方法 2: 使用MDIOTOOL
如果 Ethtool 不起作用,也则可以使用构建的 mdio-tool 单独读取数据表中的寄存器。 mdio-tool的安装、编译和使用说明如下:
1.        访问 https://github.com/PieVo/mdio-tool
2.        创建一个目录来放置这些文件
3.        检查ubuntu平台是否有arm-linux-gnueabihf-gcc:
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
4.        运行命令
arm-linux-gnueabihf-gcc mdio-tool.c -o mdio-tool
安装该工具后,使用以下命令读取/写入内部 PHY 寄存器
mdio-tool [r/w] [devname] [addr]
./mdio-tool w eth0 0x10 0x0
./mdio-tool r eth0 0x0
dongnanxibei 发表于 2024-3-29 19:59 | 显示全部楼层
这个方法真棒,可以读取底层数据。
ex7s4 发表于 2024-5-16 16:01 | 显示全部楼层
在Linux中,您可以使用ethtool工具来获取以太网PHY寄存器数据
cen9ce 发表于 2024-5-16 17:09 | 显示全部楼层
ethtool是一个用于配置和显示网络接口参数的命令行工具,可以用于获取以太网PHY寄存器的数据
y1n9an 发表于 2024-5-16 18:12 | 显示全部楼层
通过ethtool工具,您可以方便地在Linux中获取以太网PHY寄存器的数据
tax2r6c 发表于 2024-5-16 20:17 | 显示全部楼层
感觉不错,这种逻辑来操作的话,直接能读到底层数据
su1yirg 发表于 2024-5-16 21:25 | 显示全部楼层
话说,这种方法2一般是比方法1还OK么
b5z1giu 发表于 2024-5-17 08:23 | 显示全部楼层
还有别的方式直接获取PHY寄存器吗?
t1ngus4 发表于 2024-5-17 10:11 | 显示全部楼层
一般不都是可以直接读取吗,但是我们都是用MCU来操作,你是linux可能不一样
d1ng2x 发表于 2024-5-17 11:20 | 显示全部楼层
感觉第二种虽然麻烦,但是更靠谱一些哦

bmbm546 发表于 2025-7-24 16:11 | 显示全部楼层
这个方法挺好的,挺方便读取底层寄存器
xixi2017 发表于 2025-7-26 11:54 | 显示全部楼层
底层代码要支持才行,否则无法实现吧
灰色与青 发表于 2025-9-22 17:16 | 显示全部楼层
在 Linux 中获取以太网 PHY 寄存器数据:先通过 ethtool 查看网卡对应的 PHY 地址,如 ethtool -i eth0;再用 phytool 工具,如 phytool read eth0 0x00 读取寄存器 0x00 的值;或直接操作 /sys/class/mdio_bus 下的设备文件,需 root 权限,具体路径依硬件而定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

10

帖子

0

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