ziruo2002ab 发表于 2022-8-27 07:35:28

如何在Linux启动后手动控制PHY进行自动协商?

试了一下PHY与某品牌(菊花)交换机的连通性,发现该型号交换机启动要数十分钟(哎呀我的妈呀,这叫一般十几秒就启动的linux情何以堪)。现在发现,该型交换机启动后,(我方)ARM板上的网口灯不亮,需手动插拔才能亮起来。

目前考虑的解决方案是,触发以太网PHY的auto-renegotiation。但是linux系统已经跑起来了,如何手动触发PHY自动协商?试了一下ifconfig ethx up/down不行,以太网服务重新设置也不行。

一般情况下,操作ifconfig ethx up/down时,以太网灯会暗掉再重新闪起来,也就是这个就是软件Reset phy并触发自动协商了,但在这里无法解决问题,只有硬件插拔网线才行。

有没有其它办法启动phy的自动协商机制,以便它能Link up?

redworlf007 发表于 2022-8-27 11:01:50

你arm上的phy驱动有问题吧

redworlf007 发表于 2022-8-27 11:03:07

对了,或者你phy的硬件电路有问题。

Nuker 发表于 2022-8-27 11:06:52

先检查你的phy的MDIO驱动代码,看看跟数据手册上面phy寄存器操作描述是否一致

ziruo2002ab 发表于 2022-8-27 11:13:33

redworlf007 发表于 2022-8-27 11:03
对了,或者你phy的硬件电路有问题。
(引用自3楼)

硬件电路没有问题。 驱动可能有问题。但是与其它交换机连接一直没有问题。

驱动修改太麻烦了,还得找半天。我现在是想,在应用层直接通过MDIO控制phy寄存器,让它重新自动协商。

ziruo2002ab 发表于 2022-8-27 11:14:46

Nuker 发表于 2022-8-27 11:06
先检查你的phy的MDIO驱动代码,看看跟数据手册上面phy寄存器操作描述是否一致 ...
(引用自4楼)

如果驱动的phy配置不完善,可以在应用层写一个小程序,修改它就可以了吧?

hugohehuan 发表于 2022-8-27 12:01:15

ziruo2002ab 发表于 2022-8-27 11:14
如果驱动的phy配置不完善,可以在应用层写一个小程序,修改它就可以了吧? ...
(引用自6楼)

那要看你的驱动是怎么写的
支不支持app通过驱动接口改配置……

chun2495 发表于 2022-11-5 10:22:20

ethtool -s eth0 speed 1000 duplex full //这个命令需要一次性配置下去,单独是不行的。你可以把这句命令加在启动脚本里。
页: [1]
查看完整版本: 如何在Linux启动后手动控制PHY进行自动协商?