Гигабитный USB Ethernet работает на скорости 100 Мбит / с

15

Я купил небольшой гигабитный сетевой USB-адаптер, который отлично работает OOTB в Raspberry Pi 3, но только на скорости 100 Мбит / с. Как я могу заставить его работать на полной скорости?

Ethtool:

# ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes:   10baseT/Half 10baseT/Full
                        100baseT/Half 100baseT/Full
                        1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes:  10baseT/Half 10baseT/Full
                        100baseT/Half 100baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
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
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00007fff (32767)
               drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
Link detected: yes

lshw:

*-network:2
   description: Ethernet interface
   physical id: 4
   logical name: eth1
   serial: 💩💩💩💩
   size: 100Mbit/s
   capacity: 1Gbit/s
   capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
   configuration: autonegotiation=on broadcast=yes driver=r8152 driverversion=v1.08.8 duplex=full ip=192.168.1.5 link=yes multicast=yes port=MII speed=100Mbit/s

lsmod

Module                  Size  Used by
rpcsec_gss_krb5        23752  0
brcmfmac              222874  0
brcmutil                9092  1 brcmfmac
cfg80211              543027  1 brcmfmac
cdc_ether               6354  0
rfkill                 20851  1 cfg80211
r8152                  37460  0
bcm2835_gpiomem         3940  0
uio_pdrv_genirq         3923  0
uio                    10204  1 uio_pdrv_genirq
fixed                   3285  0
snd_bcm2835            24427  0
snd_pcm                98501  1 snd_bcm2835
snd_timer              23968  1 snd_pcm
snd                    70032  3 snd_timer,snd_bcm2835,snd_pcm
joydev                  9988  0
uinput                  9125  0
ipv6                  408971  32

Первое, что я заметил, это то, что 1000 действительно поддерживается, но не рекламируется. Может быть, потому что откат от USB 3 до USB 2 также возвращается к 100 Мбит / с?

Я старался

# ethtool -s eth1 speed 1000 duplex full

Но не повезло.

Марка адаптера - "Rankie" (ее легко найти на Amazon).

Также адаптер подключен к гигабитному коммутатору. Мой NAS подключен к этому коммутатору и работает со скоростью 1000 Мбит / с без проблем, поэтому я сомневаюсь, что это проблема.

Наконец, Ethernet-адаптер является единственным USB-устройством, подключенным к PI, поэтому даже если я не ожидаю полной скорости 1000 Мбит / с, я ожидал получить где-то скорость USB2.0

santiagozky
источник
1
Конечно, Pi3, как и все модели Pi, - это USB2 (Ethernet отключается от шины USB Pi)
Джоан,
Конечно, я не ожидаю получить полную скорость гигабитного Ethernet, но я видел тесты, показывающие как минимум 200 Мбит / с на USB-адаптерах Ethernet. netbeez.net/blog/raspberry-pi-3-iperf
santiagozky
3
Убедитесь, что коммутатор, к которому вы подключаетесь, распознает адаптер. Автосогласование может быть неудачным. Я провел аналогичное тестирование (к сожалению, не ведя заметок) и вспомнил, что мне пришлось физически отключать и повторно подключать порт после настройки скорости порта с помощью ethtool. Интересно, что даже без настройки скорости использование адаптеров USB3 увеличило пропускную способность RPi с ~ 94 Мбит / с до ~ 113 Мбит / с. Я читал о людях, которые приближаются к 300 Мбит / с, используя правильно настроенные адаптеры USB3. Шина USB2 поддерживает намного более высокую пропускную способность, чем 100 Мбит / с, хотя вы не получите 1 Гбит / с.
bobstro
Pi 3 USB 2.0, но адаптер Rankie рекламируется как совместимый с 3.0. Я подозреваю, что скорость сети снижается при подключении к порту 2.0.
BobT
3
Хочешь просветить меня по lshwвыходным?
Ганима

Ответы:

29

Отвечая на мой собственный вопрос, проблема оказалась проще, чем я думал.

Оказывается, я использовал дешевый кабель, который лежал дома. Он даже не имеет обычных 8 проводов, только 4 из них, что делает его неспособным к использованию для соединений Gigabit Ethernet (для Fast Ethernet требуется только 4 провода, а для Gigabit - все 8).

Я переключился на правильный кабель Cat 5e, и это решило проблему. Теперь ethtool сообщает 1000 Мбит / с, и с помощью iperf я получаю более 300 Мбит / с!

santiagozky
источник
Если вы посмотрите на разъем дешевого кабеля, он подключен к кабелю с 4 или 8 контактами? Если у него всего 4, это то, на что стоит обратить внимание при покупке нового кабеля в будущем.
Ferrybig
Да, в нем только 4 провода. Мне никогда не приходило в голову, что ему может не хватить половины проводов. Я не думаю, что купил этот провод, я уверен, что он пришел с другим устройством, которое я купил в какой-то момент. Во всяком случае, я буду более бдительным в следующий раз!
Сантьягоски
Я отредактировал свой ответ, чтобы добавить больше деталей
santiagozky
Вот почему кабели помечены 5e и т. Д.
Thorbjørn Ravn Andersen
2
@santiagozky Технически описываемый кабель CAT3. Был период времени, когда Gigbit Ethernet стал повсеместно распространяться, когда телефонные кабели были соединены с RJ-45, чтобы заменить кабели Ethernet, поскольку дома уже были подключены к телефонным линиям. Это также иногда использовалось для доставки DSL-соединений без установки нового оборудования. Ваш CAT3 может быть оставшимся от старого устройства 10/100 или от старого модема DSL и т. Д. Обратите внимание, что двухпарные кабели также были обновлением старых телефонных линий, потому что они могли поддерживать две отдельные телефонные линии (каждая требовала только одну пару ).
18:06
8

Скорость шины USB2 намного выше, чем 100 Мбит / с, так что вы действительно должны ожидать лучших скоростей. Сетевые адаптеры USB2 работают со скоростью 100 Мбит / с (IME), но обратно совместимые гигабитные адаптеры USB3 могут использовать возможности шины USB2 для достижения скорости выше 100 Мбит / с.

Я провел аналогичное тестирование с использованием двух USB-адаптеров на RPi 3B. Ваш сетевой коммутатор может не распознавать переключатель скорости, выполненный с помощью ethtool. Попробуйте физически отключить и снова подключить кабель, чтобы принудительно возобновить согласование с коммутатором после изменения скорости порта на RPi. Если это работает, вам нужно выяснить, как принудительно включить переключатель скорости при первоначальном подключении.

К сожалению, я облажался при тестировании и не смог изменить скорость портов на RPi. Я намерен повторить тестирование после перенастройки скоростей ethtoolв будущем. В качестве точки данных я провел такое же тестирование на Asus Tinkerboard, который также предоставляет порты USB2 вместе с портом GBE. С адаптером USB3 GBE, подключенным к порту USB2 и подключенным к третьему устройству через порт GBE, я смог получить пропускную способность 308 Мбит / с в маршрутизируемой конфигурации. Если ничего другого, это показывает, что шина USB2 может поддерживать> 100 Мбит / с.

Даже если не устанавливать скорость порта вручную, моя пропускная способность с использованием двух адаптеров USB3 GBE на RPi 3B улучшилась с ~ 94 Мбит / с до ~ 113 Мбит / с, что составляет примерно 20% прироста.

bobstro
источник
1
«Попробуйте физически отключить и снова подключить кабель». ужас!! шучу в сторону. Нашел проблему и чувствую себя плохо об этом. Я использовал кабель Cat5. нашел 5е где-то дома и получил 305 Мбит / с (с iperf)!
Сантьягоски
Хах! Я тоже немного об этом забыл. Я ненавижу, когда я не делаю заметки о таких вещах.
bobstro
1
Существует разница между достигнутой пропускной способностью и объявленной ссылкой. Теоретически вы можете создать устройство USB 1.1 с портом Ethernet 10 Гбит, и ссылка должна указывать как 10 Гбит, просто передача данных с такой скоростью будет невозможна.
PlasmaHH
Да, есть разница, но это не значит, что вы не можете получить более 100 Мбит / с через RPi. Мы уже пояснили, что шина USB2 не будет поддерживать 1 Гбит / с, но 300 Мбит / с - это реально.
бобстро