Kupiłem mały gigabitowy adapter Ethernet Ethernet, który działa dobrze OOTB w Raspberry Pi 3, ale tylko przy prędkości 100 Mb / s. Jak sprawić, by działał z pełną prędkością?
ettool:
# 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
Po pierwsze, zauważyłem, że 1000 jest rzeczywiście obsługiwane, ale nie reklamowane. Może dlatego, że powrót z USB 3 na USB 2 również spada do 100 Mb / s?
próbowałem
# ethtool -s eth1 speed 1000 duplex full
Ale bez powodzenia.
Marka adaptera to „rankie” (łatwe do znalezienia w Amazon).
Ponadto adapter jest podłączony do przełącznika gigabitowego. Mój NAS jest podłączony do tego przełącznika i działa bez problemów z prędkością 1000 Mb / s, więc wątpię, czy to jest problem.
Wreszcie, adapter Ethernet jest jedynym urządzeniem USB podłączonym do PI, więc nawet jeśli nie oczekuję pełnego 1000 Mb / s, spodziewałem się, że osiągnę prędkość USB2.0
ethtool
. Co ciekawe, nawet bez konfiguracji prędkości, użycie adapterów USB3 zwiększyło przepustowość RPi z ~ 94 Mb / s do ~ 113 Mb / s. Czytałem o ludziach zbliżających się do 300 Mbps przy użyciu odpowiednio skonfigurowanych adapterów USB3. Magistrala USB2 obsługuje znacznie wyższą przepustowość niż 100 Mb / s, choć nie otrzymasz 1 Gb / s.lshw
temat wyników?Odpowiedzi:
Odpowiadając na moje pytanie, problem był prostszy niż myślałem.
Okazało się, że korzystałem z taniego kabla, który miałem w domu. Nie ma nawet zwykłych 8 przewodów, tylko 4 z nich, co sprawia, że nie można go używać do połączeń Gigabit Ethernet (szybki Ethernet wymaga tylko 4 przewodów, podczas gdy Gigabit potrzebuje wszystkich 8).
Przełączyłem się na odpowiedni kabel Cat 5e i to rozwiązało problem. Teraz ethtool zgłasza 1000 Mb / s, a używając iperf uzyskuję ponad 300 Mb / s!
źródło
Obsługa magistrali USB2 jest znacznie wyższa niż 100 Mb / s, więc powinieneś spodziewać się lepszych prędkości. Karty sieciowe USB2 pracują z szybkością 100 Mb / s (IME), ale kompatybilne z poprzednimi wersjami karty gigabitowe USB3 mogą wykorzystywać możliwości magistrali USB2 do osiągnięcia prędkości większej niż 100 Mb / s.
Podobne testy przeprowadziłem przy użyciu podwójnych adapterów USB na RPi 3B. Twój przełącznik sieciowy może nie rozpoznawać przełącznika prędkości wykonanego za pomocą
ethtool
. Spróbuj fizycznie odłączyć i ponownie podłączyć kabel, aby wymusić ponowną negocjację możliwości z przełącznikiem po zmianie prędkości portu na RPi. Jeśli to zadziała, musisz dowiedzieć się, jak wymusić przełącznik prędkości przy pierwszym połączeniu.Niestety spieprzyłem podczas testowania i zaniedbałem modyfikowanie prędkości portów na RPi. Zamierzam powtórzyć testy po zmianie konfiguracji prędkości
ethtool
w przyszłości. Jako punkt danych przeprowadziłem te same testy na Asus Tinkerboard, który zapewnia również tylko porty USB2 wraz z portem GBE. Dzięki adapterowi USB3 GBE podłączonemu do portu USB2 i łączącemu się z trzecim urządzeniem przez port GBE, byłem w stanie uzyskać przepustowość 308 Mbps w konfiguracji routowanej. Jeśli nic więcej, oznacza to, że magistrala USB2 może obsługiwać> 100 Mbps.Nawet bez ręcznego ustawiania prędkości portu, moje prędkości transmisji przy użyciu 2 adapterów USB3 GBE w RPi 3B uległy poprawie z ~ 94 Mbps do ~ 113 Mbps, co stanowi wzrost o około 20%.
źródło