背景
目前在测试一款PC的时候,发现它的网卡灯在设备睡眠状态的时候也是开启的,但是我之前在测试另外一款PC的时候,确定在相同环境的情况下,网卡灯是不亮的,这到底是怎么回事呢?哪一种表现是正确的,行业里面有标准吗?如果有,标准是什么?
现状
网卡上通常都会有2个LED灯,这两个LED灯在不同的主板公司,定义都会不一样的,但比较多的是采用下面的定义:
网卡灯1:Speed LED
这个定义下的灯一般都是静态不闪烁的,在不同连接速度下会显示不同的颜色。 有部分公司生产的主板,会把其中一个灯作为Speed LED,比如华硕、微星,技嘉等主板,如下所示:
华硕:
微星:
技嘉:
S3/S4/S5的状态:不亮
PS:你看,大家都有一个不约而同的约定,就是假设网线是插在传输速率为10Mbps端口的情况下,灯都是不亮的。
网卡灯2:Activity / Link LED
这个定义下的灯,假设在有数据传输的时候,都会闪烁,在上述厂商中在定义Speed LED之后,通常会把另外的灯定义为Activity / Link LED,如下展示:
华硕:
第四个状态会比较特殊,这是WOL开启下的状态,WOL是一种网络唤醒的技术,后续我会有另外的文章来讲WOL,这里只讲网卡。
微星:
技嘉:
S3/S4/S5的状态:不亮,华硕主板除外
总结
最终的结论是没有所谓的标准,每个制造商可能会根据不同的设计标准在不同的网卡型号中使用不同的颜色编码,以提供关于连接速度和状态的直观信息,所以最准确的解释应该在网卡的用户手册或官方技术文档中去获取。
那还有一个疑问,就是这些灯是怎么控制的呢?其实这些灯是由PHY进行控制的,PHY的硬件接口文档中会有说明,以及相关的寄存器设置。在uboot中可以使用mii来修改寄存器,改变亮灯状态;在linux系统下,可以使用内核、驱动或者mii-tools修改控制灯的状态。这些如何操作需要参考具体的硬件手册,因硬件手册厂家一般是不公开的,但从网上也能够找到零星的资料,这里就不多赘述了。