У меня есть HT Z600 с межтертым контроллером ethernet 5764 PCIe LOM.
Когда я проверяю рекламируемую скорость с sudo ethtool enp1s0
Я вижу рекламируемые канальные режимы 10,100,1000baseT, полудуплексный и полный дуплекс.
Когда я включаю кабель, 'проводные настройки' показывают попытку соединиться на уровне 1 000 МБ/с, затем показывают 'кабель, разъединенный' затем другая попытка соединиться.
При использовании другого (более старого) маршрутизатора произошло бы то же самое, но после многих попыток оно соединится на уровне 100 МБ/с. С двумя современными коммутаторами это просто пытается соединиться в 1 000 и никогда не успешно выполняется.
Я могу заставить его соединиться, только рекламируя 10 100 использований скоростей sudo ethtool -s enp1s0 advertise 0x004
и это сразу соединится на уровне 100 МБ/с.
Когда я ищу подобные проблемы, почти каждый раз, когда это было вызвано неисправным кабелем. Я купил переключатель с индикаторами скорости и протестировал каждый кабель, cat5e и показывает гигабитной скоростью, когда оба конца включены тот переключатель. Я также протестировал это, кабель дает гигабитную скорость, и сеть обычно ведет себя при включении между двумя различными переключателями. Я проверил, что каждый порт на обоих переключателях дает гигабитные скорости.
Вот моя попытка собрать информацию:
Ubuntu 18.04.2 LTS
> lspci | awk '/[Nn]et/ {print $1}' | xargs -i% lspci -ks %
01:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5764M Gigabit Ethernet PCIe (rev 10)
Subsystem: Hewlett-Packard Company NetXtreme BCM5764M Gigabit Ethernet PCIe
Kernel driver in use: tg3
Kernel modules: tg3
> lspci -nn -d 14e4:
01:00.0 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5764M Gigabit Ethernet PCIe [14e4:1684] (rev 10)
> sudo ethtool -i enp1s0
driver: tg3
version: 3.137
firmware-version: 5764m-v3.35
expansion-rom-version:
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
> sudo ethtool enp1s0 (when I set advertised mode to 10/100)
Settings for enp1s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 100baseT/Half
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Half
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: off
Supports Wake-on: g
Wake-on: g
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
> sudo ethtool enp1s0 (when I set speed to 1000 with sudo ethtool -s enp1s0 speed 1000 duplex full)
Settings for enp1s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: g
Wake-on: g
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: no
(offload features)
> sudo ethtool -k enp1s0
...
highdma: on
...
> sudo cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
> dmesg
[159771.985545] tg3 0000:01:00.0 enp1s0: Link is up at 1000 Mbps, full duplex
[159771.985554] tg3 0000:01:00.0 enp1s0: Flow control is on for TX and on for RX
[159773.152452] tg3 0000:01:00.0 enp1s0: Link is down
[159779.157332] tg3 0000:01:00.0 enp1s0: Link is up at 1000 Mbps, full duplex
[159779.157334] tg3 0000:01:00.0 enp1s0: Flow control is on for TX and on for RX
[159780.324591] tg3 0000:01:00.0 enp1s0: Link is down
[159783.204587] tg3 0000:01:00.0 enp1s0: Link is up at 1000 Mbps, full duplex
[159783.204599] tg3 0000:01:00.0 enp1s0: Flow control is on for TX and on for RX
[159784.367819] tg3 0000:01:00.0 enp1s0: Link is down
[159787.230882] tg3 0000:01:00.0 enp1s0: Link is up at 1000 Mbps, full duplex
[159787.230895] tg3 0000:01:00.0 enp1s0: Flow control is on for TX and on for RX
[159788.394290] tg3 0000:01:00.0 enp1s0: Link is down
...
И вот то, чего я делал попытку:
updated /etc/default/grub to add GRUP_CMDLINE_LINUX_DEFAULT="iommu=soft" then sudo update-grub and reboot.
No difference that I can see.
> sudo ethtool -s enp1s0 speed 100 duplex full
... works and immediately connects at 100.
> sudo ethtool -s enp1s0 speed 1000 duplex full
... switches between "connecting" and "cable disconnected", shows the "link is up/link is down" messages from the dmesg output above.
> sudo ethtool -K enp1s0 highdma (on/off)
No difference that I can see.
Любая справка ЗНАЧИТЕЛЬНО ценится!
Править: Я могу подтвердить, что это - драйвер или аппаратная проблема потому что когда в 1 000:
> ip link | grep enp
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
и когда в 100
> ip link | grep enp
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
(И этот комментарий, говоря, что без поставщиков услуг или драйвер или аппаратные средства: https://bugzilla.gnome.org/show_bug.cgi? id=792506#c5)..., весь из которого подтверждает то, что заявляет Fabby. Я предполагаю, что мне не повезло.
Править: Этот вопрос, кажется, та же проблема и указывает, что карта работала с Ядром 4.14, но прекратила работать с 4,15. uname -r
говорит мне, что я работаю 4.15.0-55-универсальный - таким образом, это, кажется, соответствует. Я не знаю достаточно о ядрах, чтобы обновить/поддержать/проверить, если обновление поможет. Но это было бы другим вопросом, спасибо за справку с этим!
Во всех ответах, которые Вы находите, говорится, что это - кабель потому что вот что это значит в 99% всех случаев.
Проблема действительно на аппаратном уровне, хотя, и поскольку Ваши кабели и переключатели, кажется, проверяют OK, который оставляет Вас с:
Таким образом, у Вас есть аппаратная проблема, или у Вас есть ошибка во встроенном микропрограммном обеспечении, и оба из них вне темы здесь.
Однако просто зафиксируйте скорость в 100M на данный момент и каждый x
обновления ядра, которые Вы получаете, пробуют 1G снова или просто заменили коннектор...