amobbs.com 阿莫电子技术论坛

标题: 如何在Linux启动后手动控制PHY进行自动协商? [打印本页]

作者: ziruo2002ab    时间: 2022-8-27 07:35
标题: 如何在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
你arm上的phy驱动有问题吧
作者: redworlf007    时间: 2022-8-27 11:03
对了,或者你phy的硬件电路有问题。
作者: Nuker    时间: 2022-8-27 11:06
先检查你的phy的MDIO驱动代码,看看跟数据手册上面phy寄存器操作描述是否一致
作者: ziruo2002ab    时间: 2022-8-27 11:13
redworlf007 发表于 2022-8-27 11:03
对了,或者你phy的硬件电路有问题。
(引用自3楼)

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

驱动修改太麻烦了,还得找半天。我现在是想,在应用层直接通过MDIO控制phy寄存器,让它重新自动协商。
作者: ziruo2002ab    时间: 2022-8-27 11:14
Nuker 发表于 2022-8-27 11:06
先检查你的phy的MDIO驱动代码,看看跟数据手册上面phy寄存器操作描述是否一致 ...
(引用自4楼)

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

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

作者: chun2495    时间: 2022-11-5 10:22
ethtool -s eth0 speed 1000 duplex full //这个命令需要一次性配置下去,单独是不行的。你可以把这句命令加在启动脚本里。




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4