FreeBSD em0 在 HP/Compaq DC7700 上回退到 100Mbit 快速以太网

FreeBSD em0 在 HP/Compaq DC7700 上回退到 100Mbit 快速以太网

我有几台 HP DC7700CMT 机器,每台都有自己的集成 Intel 82566DM GbE LAN 端口,在 dmesg 中显示为 Intel PRO/1000,并使用埃姆驱动程序。我最近发现 FreeBSD 无法正确处理此 LAN 端口,因为它无法将其用作 1000baseT。在启动过程中,当em0检测到设备时,显示为 1000baseT,但当我登录时,设备又回到了 100baseTX。如果我手动将其强制恢复为千兆位,
ifconfig em0 媒体 1000baseT
连接立即断开,交换机端口上的指示灯熄灭,设备的行为就像没有连接电缆一样。
每次我将媒体重置为自动选择时,
ifconfig em0 媒体自动选择
设备首先正确设置为 1000baseT - 有足够的时间来查询适配器状态并查看它是否设置为千兆 - 然后在一秒钟内更改为 100baseTX 快速以太网。
我已经在 3 台这样的 HP 机器上进行了测试。每台计算机的行为都相同。
我还用多条 UTP 电缆进行了测试。即使是一条短的高质量 STP 电缆。行为也相同。
我尝试了 3 种不同的交换机。一个 8 端口 D-Link 桌面 GbE 交换机,一个带内置 4 端口 GbE 交换机的 TP-Link GbE 路由器,以及一个带 24 个端口的 HP ProCurve 2810 GbE 交换机。每个交换机的行为都相同。
最后,我尝试了多个操作系统。FreeBSD 9.3R/amd64、9.2R/amd64、9.2R/i386、8.4R/amd64、7.4R/amd64,都将我的 em0 设备放回 100baseT。 OpenBSD 5.2/i386 还将 em0 设备降级为 100baseT,因此它一定是 FreeBSD 和 OpenBSD 之间共享的 em 驱动程序代码。尝试了几张 Linux Live CD,它们都以千兆速度正确处理了这个 LAN 端口,没有任何故障迹象。最后,Win7 也以千兆速度使用相同的硬件,没有任何问题。
所以我得出结论,问题出在 FreeBSD em 驱动程序代码中。
我想知道其他人是否有类似的经历埃姆FreeBSD 下的驱动程序,或者如果有人有埃姆以 1000baseT 形式工作的设备。

你们当中有人使用过类似的硬件吗?
你们是否经历过埃姆设备回退到快速以太网?
你们当中有人使用埃姆设备是否可以作为 GbE 正常工作?

作为参考,这里有一个示例,说明在 FreeBSD 9.2R 上发生的情况,无论启动 amd64 还是 i386。
一个命令和下一个命令之间的时间总是只有 2 到 5 秒,我以通常的打字速度输入该特定命令并按回车键。在这个例子中,我没有使用向上箭头从历史记录中返回较早的命令。每个命令都是输入的。

            Script started on Sun Aug 31 11:48:04 2014
            root@hp:~ # ifconfig em0
            em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
                ether 00:0f:fe:82:30:37
                inet 10.25.74.105 netmask 0xffffff00 broadcast 10.25.74.255
                nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
                media: Ethernet autoselect (100baseTX <full-duplex>)
                status: active
            root@hp:~ # ifconfig em0 media autoselect
            root@hp:~ # ifconfig em0
            em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
                ether 00:0f:fe:82:30:37
                inet 10.25.74.105 netmask 0xffffff00 broadcast 10.25.74.255
                nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
                media: Ethernet autoselect (1000baseT <full-duplex>)
                status: active
            root@hp:~ # ifconfig em0
            em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
                ether 00:0f:fe:82:30:37
                inet 10.25.74.105 netmask 0xffffff00 broadcast 10.25.74.255
                nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
                media: Ethernet autoselect (100baseTX <full-duplex>)
                status: active
            root@hp:~ # ifconfig em0 media 1000baseT
            root@hp:~ # ifconfig em0
            em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
                ether 00:0f:fe:82:30:37
                inet 10.25.74.105 netmask 0xffffff00 broadcast 10.25.74.255
                nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
                media: Ethernet 1000baseT (autoselect)
                status: no carrier
            root@hp:~ # ifconfig em0
            em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
                ether 00:0f:fe:82:30:37
                inet 10.25.74.105 netmask 0xffffff00 broadcast 10.25.74.255
                nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
                media: Ethernet 1000baseT (autoselect)
                status: no carrier
            root@hp:~ # ifconfig em0 media autoselect
            root@hp:~ # ifconfig em0
            em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
                ether 00:0f:fe:82:30:37
                inet 10.25.74.105 netmask 0xffffff00 broadcast 10.25.74.255
                nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
                media: Ethernet autoselect (1000baseT <full-duplex>)
                status: active
            root@hp:~ # ifconfig em0
            em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
                ether 00:0f:fe:82:30:37
                inet 10.25.74.105 netmask 0xffffff00 broadcast 10.25.74.255
                nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
                media: Ethernet autoselect (100baseTX <full-duplex>)
                status: active
            root@hp:~ # exit
            exit

            Script done on Sun Aug 31 11:49:58 2014

欢迎提出任何意见或建议。

相关内容