Ich habe einen kleinen Gigabit-Ethernet-USB-Adapter gekauft, der in einem Raspberry Pi 3 einwandfrei funktioniert, aber nur mit 100 MBit / s. Wie kann ich es mit voller Geschwindigkeit laufen lassen?
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
Als erstes ist mir aufgefallen, dass 1000 zwar unterstützt, aber nicht beworben wird. Vielleicht, weil der Fallback von USB 3 auf USB 2 ebenfalls auf 100 MBit / s zurückgeht?
Ich habe es versucht
# ethtool -s eth1 speed 1000 duplex full
Aber kein glück
Die Adaptermarke ist "rankie" (bei amazon leicht zu finden).
Außerdem ist der Adapter an einen Gigabit-Switch angeschlossen. Mein NAS ist an diesen Switch angeschlossen und läuft mit 1000 MBit / s ohne Probleme. Ich bezweifle, dass dies das Problem ist.
Schließlich ist der Ethernet-Adapter das einzige USB-Gerät, das an den PI angeschlossen ist. Selbst wenn ich keine vollen 1000 MBit / s erwarte, habe ich damit gerechnet, dass ich irgendwo die USB 2.0-Geschwindigkeit erreichen kann
ethtool
. Interessanterweise konnte der RPi-Durchsatz mithilfe von USB3-Adaptern von ~ 94 Mbit / s auf ~ 113 Mbit / s gesteigert werden, auch ohne dass die Geschwindigkeit konfiguriert werden musste. Ich habe von Leuten gelesen, die sich mit richtig konfigurierten USB3-Adaptern 300 Mbit / s nähern. Der USB2-Bus unterstützt einen weitaus höheren Durchsatz als 100 Mbit / s, obwohl Sie keine 1 Gbit / s erhalten.lshw
die Ausgabe aufklären ?Antworten:
Bei der Beantwortung meiner eigenen Frage war das Problem einfacher als ich dachte.
Es stellte sich heraus, dass ich ein billiges Kabel verwendete, das ich zu Hause herumgelegt hatte. Es hat nicht einmal die üblichen 8 Drähte, nur 4 von ihnen, was es unfähig macht, für Gigabit-Ethernet-Verbindungen verwendet zu werden (Fast Ethernet benötigt nur 4 Drähte, während Gigabit alle 8 benötigt).
Ich habe auf ein richtiges Cat 5e-Kabel umgestellt und das hat das Problem gelöst. Jetzt meldet ethtool 1000mbps und mit iperf bekomme ich über 300mbps!
quelle
Die USB2-Bus-Unterstützungsgeschwindigkeiten liegen weit über 100 Mbit / s, sodass Sie in der Tat mit besseren Geschwindigkeiten rechnen müssen. USB2-Netzwerkadapter erreichen eine maximale Übertragungsgeschwindigkeit von 100 Mbit / s (IME). Abwärtskompatible USB3-Gigabit-Adapter können jedoch die Funktionen des USB2-Busses nutzen, um eine Übertragungsgeschwindigkeit von mehr als 100 Mbit / s zu erreichen.
Ich habe ähnliche Tests mit zwei USB-Adaptern auf einem RPi 3B durchgeführt. Möglicherweise erkennt Ihr Netzwerk-Switch den mit vorgenommenen Geschwindigkeitswechsel nicht
ethtool
. Versuchen Sie, das Kabel physisch zu trennen und wieder anzuschließen, um eine erneute Aushandlung der Funktion mit dem Switch zu erzwingen, nachdem Sie die Portgeschwindigkeit am RPi geändert haben. Wenn das funktioniert, müssen Sie herausfinden, wie Sie den Geschwindigkeitsschalter beim erstmaligen Verbinden zwingen.Leider habe ich es beim Testen vermasselt und es versäumt, die Port-Geschwindigkeiten auf dem RPi zu ändern. Ich beabsichtige, das Testen zu wiederholen, nachdem ich die Geschwindigkeit
ethtool
in Zukunft mit neu konfiguriert habe . Als Datenpunkt habe ich den gleichen Test auf einem Asus Tinkerboard durchgeführt, das neben einem GBE-Port auch nur USB2-Ports bietet. Mit einem USB3-GBE-Adapter, der an den USB2-Port angeschlossen und über den GBE-Port mit einem dritten Gerät verbunden wurde, konnte ich in einer gerouteten Konfiguration einen Durchsatz von 308 Mbit / s erzielen. Dies zeigt nicht zuletzt, dass der USB2-Bus> 100 Mbit / s unterstützen kann.Auch ohne die Portgeschwindigkeit manuell einzustellen, verbesserte sich meine Durchsatzgeschwindigkeit mit 2 USB3-GBE-Adaptern auf einem RPi 3B von ~ 94 Mbit / s auf ~ 113 Mbit / s, was einer Steigerung von ca. 20% entspricht.
quelle