0 votos

Ethernet-sobre-usb no funciona con el cable usb-c a usb-c, funciona con el adaptador

Tengo un dispositivo OTG que expone una interfaz de red a través de USB-C, proporcionando un servidor DHCP (piensa en una raspberry pi o similar). Cuando lo conecto a mi ordenador Linux (USB-A en el ordenador, USB-C en el dispositivo), entonces Linux muestra una nueva interfaz con una IP, y puedo SSH en el dispositivo.

En un Macbook (donde el Macbook también tiene conectores USB-C), no siempre funciona:

  1. Si cojo un cable usb-c a usb-c y lo uso para conectar el Macbook al dispositivo, parece que no lo reconoce (la interfaz de red no aparece en ifconfig ).
  2. Si conecto un adaptador USB al Macbook (uno de esos concentradores USB que exponen 3 tomas USB-A), y luego conecto un cable usb-a a usb-c entre el concentrador y el dispositivo (por lo que es usb-c <--> usb-a <--> concentrador usb <--> usb-c), entonces se reconoce.

Lo primero que pensé fue que el concentrador era sin duda un dispositivo/aparato USB, y tal vez eso ayudó porque tanto el Macbook como el dispositivo eran hosts USB. Pero estoy bastante seguro de que el dispositivo es OTG, y el hecho de que el dispositivo pueda conectarse directamente a Linux demuestra que puede funcionar como un gadget (y seguro que el Macbook puede funcionar como un host).

¿Cuál podría ser la razón de este problema? Y opcionalmente: ¿es correcto pensar que los puertos USB del Macbook no son OTG sino siempre host (nunca he oído hablar de un puerto OTG en un ordenador, no estoy seguro de que eso exista)?

Nota: parece similar a esta vieja pregunta sin respuesta .

EDIT: como se requiere, el System Report cuando funciona. Cuando no lo hace (es decir, con el cable usb-c-only), entonces la línea simplemente no aparece en "USB 3.0 Bus"...

Device is detected

0 votos

Por lo que entiendo estás usando un MacBook Pro y estás conectando esto al puerto USB-C del mismo. En este caso, ya no se denomina "OTG" (On-The-Go), sino que se trata de puertos DRD (Dual-Role-Data). El MacBook Pro definitivamente soporta DRD en todos los puertos, así que ese no es el problema. Cuando hayas conectado el dispositivo, abre el Informe del Sistema y haz una captura de pantalla de la parte correspondiente de la sección USB. Hazlo para ambos escenarios (conectado directamente y conectado a través de un hub), y añade esas capturas de pantalla a esta pregunta).

0 votos

Por otro lado, existen varios estándares para hacer ethernet sobre USB como este. Algunos son soportados por MacOS por defecto, y otros no. Lo mismo puede decirse de Linux, por ejemplo. ¿Puedes detallar cuál de estos métodos estás utilizando? (ECM, EEm, NCM, RNDIS, etc.) ¿Es tu dispositivo OTG realmente un dispositivo Linux? o algún hardware embebido?

0 votos

Gracias por los comentarios. He añadido una imagen del System Report ya, necesito comprobar qué módulo se utiliza en el dispositivo. El dispositivo es un hardware embebido personalizado que ejecuta Linux.

2voto

Jose Chavez Puntos 645

Creo que el problema es que tu cable USB-C a USB-C es en realidad de alimentación.

La configuración que tienes debería funcionar cuando lo conectas directamente, pero escribes que la parte USB del Informe del Sistema no da ninguna indicación de que haya algo conectado. Si has utilizado un cable de carga que no tiene líneas de datos, esto es lo que ocurriría.

Prueba con otro cable USB-C a USB-C y con suerte debería funcionar.

ACTUALIZACIÓN: En base a vuestros comentarios, el problema parece ser que el propio dispositivo no soporta realmente el USB-C por completo. Tendrás que configurar el kernel de Linux con el CONFIG_TYPEC opción en make menuconfig con el fin de tener soporte para la construcción de USB-C.

0 votos

Muy buen punto, debería haber preguntado eso primero (no me pasa) =/. ¡Déjame preguntar y te contesto! :-). ¿Si fuera un cable de datos, debería aparecer algo en el Informe del Sistema? Estoy acostumbrado a Linux donde esperaría ver algo en dmesg ...

1 votos

Bueno, también puedes ejecutar dmesg en MacOS, si lo prefieres.

0 votos

Así que este problema se encuentra cuando se utiliza un cable USB-C a USB-C que se utiliza para el desarrollo de iOS entre un macbook y un iPad, y por lo tanto tiene las líneas de datos, ¿verdad? =/

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X