1 votos

Comunicación UDP entre PC y Android vía ethernet

1. Estoy probando con un nexus 5 rooteado que opera en lollipop 5.1.

2. Todo esto sin conexión wifi.

Estoy intentando enviar paquetes UDP entre un PC y un dispositivo Android con un cable otg y un dongle ethernet. Cuando se conecta el PC piensa que el Android es una red no identificada (Sin acceso a Internet) y el Android reconoce el dispositivo como eth0 con una IP de 0.0.0.0.

eth0   UP   0.0.0.0

Agrego una IP al eth0 ejecutando el siguiente script:

#!/bin/sh
netcfg eth0 up
ifconfig eth0 192.168.1.200 netmask 255.255.255.0
route add default gw 192.168.1.1 dev eth0
ping -c 1 192.168.1.1

Después de ejecutar el script eth0 aparece en la línea de comandos como:

eth0   UP   192.168.1.200

Estoy usando wireshark para rastrear paquetes y cuando intento abrir una interfaz entre el PC y el Android me da un error como el siguiente:

(Error al abrir el adaptador: El sistema no puede encontrar el dispositivo especificado. (20)).

Además, cuando intento hacer PING al PC desde el Android se me pierde el 100% de los paquetes.

Así que parece que no tengo conexión entre el PC y Android. Cualquier aportación sobre el tema sería muy útil.

0 votos

¿Conectas el N5 y el PC directamente o a través de un router? La información sobre la IP del PC también sería útil, como su IP, máscara de red y si es DHCP o estática.

0 votos

N5 y el PC están conectados directamente. El juego final es utilizarlo como una interfaz de hardware, no es diferente entonces decir I2C o RX. DHCP está activado, IP 169.254.57.56, máscara de red 255.255.255.0

0 votos

He utilizado 169.254.57.55 en el script.

0voto

Alexander Temerev Puntos 226

Creo que el anclaje inverso resolvería tu problema.

Pasos de anclaje inverso de Android:

Nota: Sólo funciona en un teléfono Android rooteado.

  1. Conecta el dispositivo Android por USB.

  2. Habilitar el anclaje USB. Para ello, vaya a Ajustes → Más... → Anclaje y punto de acceso móvil → Anclaje USB .

  3. En la máquina anfitriona, escriba:

    $ ifconfig usb0 10.42.0.1 netmask 255.255.255.0 
    $ echo 1 > /proc/sys/net/ipv4/ip_forward 

    El comando para sudo será:

    $ sudo 'echo 1 > /proc/sys/net/ipv4/ip_forward' 
  4. En el dispositivo Android (para este paso debes instalar ADB en el PC anfitrión), escribe:

    $ adb shell 
    $ su 
    $ netcfg rndis0 dhcp

    Si no consigue la dirección IP, entonces asignarla manualmente:

    $ netcfg rndis0 10.42.0.2 netmask 255.255.255.0 
    $ route add default gw 10.42.0.1 dev rndis0 

Ahora Internet estaría funcionando en el teléfono Android.

Para comprobarlo, pruebe el comando ping www.google.com .

A mí me funciona.

0 votos

Android no dará la opción de activar el tethering USB con las combinaciones de dongle Ethernet/cable OTG, es decir, no es una conexión de tipo USB.

0 votos

Lo he intentado con el teléfono rooteado y el PC con conexión Ethernet y me funciona bien.

0 votos

¿Estás usando un otg con un adaptador de ethernet? Aquí hay un ejemplo plugable.com/products/usb2-otge100 . Y no habrá conexión a Internet. UDP se está utilizando como una interfaz de hardware.

0voto

CharlesB Puntos 27070

Si quieres conectar los dos a través de una red IP, tendrán que estar en la misma subred. Tu PC se está autoasignando una dirección IP porque no puede encontrar un servidor DHCP. Intenta asignar estáticamente a tu PC 192.168.1.1 con la misma subred 255.255.255.0.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android 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