Ethernet Gigabit USB funcionando a 100mb / s

15

Compré un pequeño adaptador USB de gigabit ethernet, que funciona bien OOTB en una Raspberry Pi 3, pero solo a 100mbits / s. ¿Cómo puedo hacer que funcione a toda velocidad?

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

Lo primero que creo que noté es que 1000 es compatible, pero no se anuncia. ¿Quizás porque el retroceso de USB 3 a USB 2 vuelve a caer a 100mbits / s también?

Lo intenté

# ethtool -s eth1 speed 1000 duplex full

Pero sin suerte.

La marca del adaptador es "Rankie" (fácil de encontrar en Amazon).

Además, el adaptador está conectado a un conmutador gigabit. Mi NAS está conectado a ese conmutador y funciona a 1000 Mbits / s sin problemas, por lo que dudo que ese sea el problema.

Finalmente, el adaptador Ethernet es el único dispositivo USB conectado al PI, por lo que incluso si no espero 1000 Mbps completos, esperaba llegar a algún lugar con la velocidad USB2.0

santiagozky
fuente
1
Sin duda, la Pi3 como todos los modelos Pi es USB2 (Ethernet cuelga del bus USB Pi)
Joan
claro, no espero obtener la velocidad de gigabit Ethernet completa, pero he visto puntos de referencia que muestran al menos 200 mbps en adaptadores USB Ethernet. netbeez.net/blog/raspberry-pi-3-iperf
santiagozky
3
Asegúrese de que el interruptor al que se está conectando reconoce el adaptador. La negociación automática puede estar fallando. Hice pruebas similares (lamentablemente sin guardar notas) y recuerdo que tuve que desconectar físicamente y volver a conectar el puerto después de configurar la velocidad del puerto usando ethtool. Curiosamente, incluso sin configurar la velocidad, el uso de adaptadores USB3 aumentó el rendimiento de RPi de ~ 94 Mbps a ~ 113 Mbps. He leído que las personas se acercan a 300 Mbps utilizando adaptadores USB3 configurados correctamente. El bus USB2 admite un rendimiento mucho mayor que 100 Mbps, aunque no obtendrá 1 Gbps.
bobstro
El Pi 3 USB es 2.0 pero el adaptador de Rankie se anuncia como compatible con 3.0. Sospecho que la velocidad de la red se reduce cuando se conecta a un puerto 2.0.
BobT
3
¿Te importaría iluminarme en lshwla salida?
Ghanima

Respuestas:

29

Respondiendo a mi propia pregunta, el problema fue más simple de lo que pensaba.

Resulta que estaba usando un cable barato que tenía en casa. Ni siquiera tiene los 8 cables habituales, solo 4 de ellos, lo que lo hace incapaz de usarse para conexiones Gigabit Ethernet (Fast ethernet necesita solo 4 cables, mientras que Gigabit necesita los 8).

Cambié a un cable Cat 5e adecuado y eso resolvió el problema. ¡Ahora ethtool informa 1000mbps y usando iperf obtengo más de 300mbps!

santiagozky
fuente
Si observa el conector del cable barato, ¿tiene 4 u 8 pines conectados al cable? Si solo tiene 4, es algo a tener en cuenta al comprar un nuevo cable en el futuro.
Ferrybig
Sí, solo tiene 4 cables. Nunca se me ocurre que podría faltar la mitad de los cables. No creo haber comprado ese cable, estoy bastante seguro de que vino con algún otro dispositivo que compré en algún momento. De todos modos, ¡estaré más vigilante la próxima vez!
santiagozky
Edité mi respuesta para agregar más detalles
santiagozky
Esta es la razón por la cual los cables están marcados con 5e, etc.
Thorbjørn Ravn Andersen
2
@santiagozky El cable que estás describiendo es técnicamente CAT3. Hubo un período de tiempo antes de que Gigbit Ethernet se volviera ubicuo en que los cables telefónicos se terminaron con un RJ-45 para sustituirlo como cableado Ethernet, ya que las casas ya estaban conectadas con líneas telefónicas. Esto también se usó a veces para entregar conexiones DSL sin instalar nuevo hardware. Su CAT3 podría ser sobrante de un dispositivo 10/100 anterior, o de un módem DSL antiguo, etc. Tenga en cuenta que los cables de dos pares también eran una actualización de las líneas telefónicas antiguas porque podían admitir dos líneas telefónicas separadas (cada una solo requería un par )
Gracias el
8

El bus USB2 admite velocidades mucho más altas que 100 Mbps, por lo que debería esperar ver mejores velocidades. Los adaptadores de red USB2 tienen un límite de 100 Mbps (IME), pero los adaptadores USB3 gigabit compatibles con versiones anteriores pueden usar las capacidades del bus USB2 para alcanzar más de 100 Mbps.

Hice pruebas similares usando adaptadores USB duales en un RPi 3B. Es posible que su conmutador de red no reconozca el conmutador de velocidad realizado con ethtool. Intente desconectar y volver a conectar físicamente el cable para forzar una renegociación de capacidad con el conmutador después de cambiar la velocidad del puerto en el RPi. Si eso funciona, debe descubrir cómo forzar el interruptor de velocidad en la conexión inicial.

Desafortunadamente, me equivoqué al probar y no modifiqué las velocidades de puerto en el RPi. Tengo la intención de repetir las pruebas después de reconfigurar las velocidades usando ethtoolen el futuro. Como punto de datos, hice las mismas pruebas en un Asus Tinkerboard que también solo proporciona puertos USB2 junto con un puerto GBE. Con un adaptador USB3 GBE conectado al puerto USB2 y conectado a un tercer dispositivo a través del puerto GBE, pude obtener un rendimiento de 308 Mbps en una configuración enrutada. Por lo menos, esto muestra que el bus USB2 puede soportar> 100 Mbps.

Incluso sin configurar la velocidad del puerto manualmente, mis velocidades de rendimiento con 2 adaptadores USB3 GBE en un RPi 3B mejoraron de ~ 94 Mbps a ~ 113 Mbps, una ganancia de aproximadamente el 20%.

bobstro
fuente
1
"Intente desconectar y volver a conectar físicamente el cable". ¡¡el horror!! Bromas aparte. Encontré el problema y me siento mal por ello. Estaba usando un cable Cat5. ¡Encontré un 5e en algún lugar de mi casa y obtuve 305 Mbits / seg (con iperf)!
santiagozky
Ja! También me mordió eso, lo olvidé. Odio cuando no tomo notas sobre cosas como esta.
bobstro
1
Hay una diferencia entre el ancho de banda logrado y el enlace anunciado. En teoría, podría crear un dispositivo USB 1.1 con un puerto ethernet de 10 GB y el enlace debería informar como 10 GB, simplemente no será posible transferir datos a esa velocidad.
PlasmaHH
Sí, hay una diferencia, pero eso no significa que no pueda obtener más de 100 Mbps a través de un RPi. Ya hemos aclarado que el bus USB2 no admitirá 1 Gbps, pero que 300 Mbps + es realista.
bobstro