如何在LINUX中获取以太网PHY寄存器数据
可以用一下两种方法来获取 Linux 中的以太网 PHY 寄存器数据方法 1: 使用ETHTOOL
如果 ethtool 在内核中不可用,则通过配置用户空间package,增加ethtool工具并重新编译;
安装该工具后,使用以下命令配置和显示以太网接口参数的
ethtooldevname
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
./mdio-tool w eth0 0x10 0x0
./mdio-tool r eth0 0x0
这个方法真棒,可以读取底层数据。 在Linux中,您可以使用ethtool工具来获取以太网PHY寄存器数据 ethtool是一个用于配置和显示网络接口参数的命令行工具,可以用于获取以太网PHY寄存器的数据 通过ethtool工具,您可以方便地在Linux中获取以太网PHY寄存器的数据 感觉不错,这种逻辑来操作的话,直接能读到底层数据 话说,这种方法2一般是比方法1还OK么 还有别的方式直接获取PHY寄存器吗? 一般不都是可以直接读取吗,但是我们都是用MCU来操作,你是linux可能不一样 感觉第二种虽然麻烦,但是更靠谱一些哦
这个方法挺好的,挺方便读取底层寄存器 底层代码要支持才行,否则无法实现吧 在 Linux 中获取以太网 PHY 寄存器数据:先通过 ethtool 查看网卡对应的 PHY 地址,如 ethtool -i eth0;再用 phytool 工具,如 phytool read eth0 0x00 读取寄存器 0x00 的值;或直接操作 /sys/class/mdio_bus 下的设备文件,需 root 权限,具体路径依硬件而定。
页:
[1]