У меня есть пара компьютеров HP DC7700CMT, каждая из которых имеет собственный встроенный порт Intel 82566DM GbE LAN, показанный в dmesg как Intel PRO/1000 и использующий драйвер em . Недавно я обнаружил, что FreeBSD неправильно обрабатывает этот порт LAN, поскольку он не может использовать его как 1000baseT. Во время загрузки, когда устройство em0 обнаружено, оно отображается как 1000baseT, но ко времени входа в систему устройство возвращается к 100baseTX. Если я вручную заставлю его вернуться в гигабит,
ifconfig em0 media 1000baseT
соединение немедленно прерывается, светодиод на порту коммутатора гаснет, и устройство ведет себя так, как будто не подключено ни одного кабеля.
Каждый раз, когда я перезагружаю носитель для автоматического выбора,
ifconfig em0 media autoselect
сначала устройство правильно настроено на 1000baseT - достаточно времени, чтобы запросить состояние адаптера и увидеть, что оно установлено на гигабит, - затем через секунду оно меняется на 100baseTX Fast ethernet.
Я проверил это на 3 таких машинах HP. Такое же поведение на каждом компьютере.
Я также проверил это с несколькими кабелями UTP. Даже короткий, высококачественный STP. Такое же поведение
Я пробовал 3 разных переключателя. Один 8-портовый настольный коммутатор D-Link GbE, один маршрутизатор TP-Link GbE со встроенным 4-портовым коммутатором GbE и один коммутатор HP ProCurve 2810 GbE с 24 портами. Такое же поведение с каждым переключателем.
И, наконец, я попробовал несколько операционных систем. FreeBSD 9.3R/amd64, 9.2R/amd64, 9.2R/i386, 8.4R/amd64, 7.4R/amd64, все мои устройства em0 возвращаются к 100baseT. OpenBSD 5.2/i386 также сбрасывает устройство em0 до 100baseT, поэтому это должен быть код драйвера em, совместно используемый FreeBSD и OpenBSD. Пробовал пару Linux Live CD, и все они правильно обрабатывают этот порт LAN на гигабитной скорости без каких-либо признаков проблем. И, наконец, Win7 также без проблем использует то же оборудование на гигабитной скорости.
Итак, я пришел к выводу, что проблема в коде драйвера FreeBSD em.
Я хотел бы знать, есть ли у других аналогичный опыт работы с драйвером em во FreeBSD, или у кого-нибудь есть устройство em, которое работает как 1000baseT.
Кто-нибудь из вас использует подобное оборудование?
Сталкивались ли вы ваши эм устройства откатиться к Fast Ethernet?
Кто-нибудь из вас использует em- устройство, которое работает как 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
Любой комментарий или предложение приветствуется.