¿Cómo hacer que el trabajo Ethernet en Android sobre OTG? -- etworking campo con usb-connection-mode campo con kernel campo con usb-on-the-go campo con usb-drivers camp android Relacionados El problema

How to make Ethernet work on Android over OTG?


2
vote

problema

Español

Estoy tratando de usar un módem LTE conectado a un dispositivo Android 7 sobre un cable OTG. El kernel reconoce el dispositivo y lo registra con cdc_ether , pero no puedo usar la conexión desde el dispositivo. ¿Esto es porque posteriormente se monta como almacenamiento USB?

El dispositivo no aparece como dispositivo en la UI / Barra de estado de Android.

Si desactiva el soporte de MTP, entonces el dispositivo no registrará ABCDEFGHIJKLMNABCDEFGHIJKLMN4 en absoluto.

ABCDEFGHIJKLMNABCDEFGHIJKLMN5 :

  [10946.408785] usb 1-1.3: new high-speed USB device number 21 using msm_hsusb_host [10946.525287] usb 1-1.3: New USB device found, idVendor=19d2, idProduct=1225 [10946.525306] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [10946.525316] usb 1-1.3: Product: ZTE Mobile Broadband [10946.525325] usb 1-1.3: Manufacturer: ZTE,Incorporated [10946.525335] usb 1-1.3: SerialNumber: MF8610ZTED000000 [10946.529662] usb-storage 1-1.3:1.0: USB Mass Storage device detected [10946.532702] scsi host19: usb-storage 1-1.3:1.0 [10947.538579] scsi 19:0:0:0: CD-ROM            ZTE      USB SCSI CD-ROM  2.31 PQ: 0 ANSI: 2 [10952.740595] usb 1-1.3: USB disconnect, device number 21 [10953.087891] usb 1-1.3: new high-speed USB device number 22 using msm_hsusb_host [10953.232955] usb 1-1.3: New USB device found, idVendor=19d2, idProduct=1405 [10953.232969] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [10953.232977] usb 1-1.3: Product: ZTE Mobile Broadband [10953.232984] usb 1-1.3: Manufacturer: ZTE,Incorporated [10953.232991] usb 1-1.3: SerialNumber: MF8610ZTED000000 [10953.260856] cdc_ether 1-1.3:1.0 usb0: register 'cdc_ether' at usb-msm_hsusb_host-1.3, CDC Ethernet Device, 36:4b:50:b7:ef:da [10953.262322] usb-storage 1-1.3:1.2: USB Mass Storage device detected [10953.262652] scsi host20: usb-storage 1-1.3:1.2 [10954.261139] scsi 20:0:0:0: CD-ROM            ZTE      USB SCSI CD-ROM  2.31 PQ: 0 ANSI: 2   

ABCDEFGHIJKLMNABCDEFGHIJKLMN7 CON MTP DISHABLE:

  ABCDEFGHIJKLMNABCDEFGHIJKLMN8   

ABCDEFGHIJKLMNABCDEFGHIJKLMN9 :

  adb push0  

ABCDEFGHIJKLMNABCDEFGHIJKLMN11 :

  adb push2  

El dispositivo aparece como adb push3 con la dirección MAC que se enumera en adb push4 .

Original en ingles

I am trying to use an LTE modem connected to an Android 7 device over an OTG cable. The kernel recognizes the device and registers it with cdc_ether, but I am unable to use the connection from the device. Is this because it is subsequently mounted as USB storage?

The device does not show up as a device in the Android UI / status bar.

If I disable MTP support, then the device wont register cdc_ether at all.

dmesg:

[10946.408785] usb 1-1.3: new high-speed USB device number 21 using msm_hsusb_host [10946.525287] usb 1-1.3: New USB device found, idVendor=19d2, idProduct=1225 [10946.525306] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [10946.525316] usb 1-1.3: Product: ZTE Mobile Broadband [10946.525325] usb 1-1.3: Manufacturer: ZTE,Incorporated [10946.525335] usb 1-1.3: SerialNumber: MF8610ZTED000000 [10946.529662] usb-storage 1-1.3:1.0: USB Mass Storage device detected [10946.532702] scsi host19: usb-storage 1-1.3:1.0 [10947.538579] scsi 19:0:0:0: CD-ROM            ZTE      USB SCSI CD-ROM  2.31 PQ: 0 ANSI: 2 [10952.740595] usb 1-1.3: USB disconnect, device number 21 [10953.087891] usb 1-1.3: new high-speed USB device number 22 using msm_hsusb_host [10953.232955] usb 1-1.3: New USB device found, idVendor=19d2, idProduct=1405 [10953.232969] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [10953.232977] usb 1-1.3: Product: ZTE Mobile Broadband [10953.232984] usb 1-1.3: Manufacturer: ZTE,Incorporated [10953.232991] usb 1-1.3: SerialNumber: MF8610ZTED000000 [10953.260856] cdc_ether 1-1.3:1.0 usb0: register 'cdc_ether' at usb-msm_hsusb_host-1.3, CDC Ethernet Device, 36:4b:50:b7:ef:da [10953.262322] usb-storage 1-1.3:1.2: USB Mass Storage device detected [10953.262652] scsi host20: usb-storage 1-1.3:1.2 [10954.261139] scsi 20:0:0:0: CD-ROM            ZTE      USB SCSI CD-ROM  2.31 PQ: 0 ANSI: 2 

dmesg with MTP disabled:

[10664.987934] usb 1-1.3: new high-speed USB device number 19 using msm_hsusb_host [10665.105272] usb 1-1.3: New USB device found, idVendor=19d2, idProduct=1225 [10665.105291] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [10665.105301] usb 1-1.3: Product: ZTE Mobile Broadband [10665.105310] usb 1-1.3: Manufacturer: ZTE,Incorporated [10665.105320] usb 1-1.3: SerialNumber: MF8610ZTED000000 [10665.110339] usb-storage 1-1.3:1.0: USB Mass Storage device detected [10665.111320] scsi host17: usb-storage 1-1.3:1.0 [10666.110748] scsi 17:0:0:0: CD-ROM            ZTE      USB SCSI CD-ROM  2.31 PQ: 0 ANSI: 2 [10671.223090] usb 1-1.3: USB disconnect, device number 19 [10671.407859] msm_otg 78db000.usb: OTG runtime idle [10671.407887] msm_otg 78db000.usb: OTG runtime suspend 

ifconfig:

TB-8504F:/ # ifconfig                                                                                                                   wlan0     Link encap:Ethernet  HWaddr 40:a1:08:36:5b:0d           inet addr:192.168.1.133  Bcast:192.168.1.255  Mask:255.255.255.0            inet6 addr: 2605:a601:ab2b:9900:b19e:4f2e:5d28:5fa9/64 Scope: Global           inet6 addr: fe80::42a1:8ff:fe36:5b0d/64 Scope: Link           inet6 addr: 2605:a601:ab2b:9900:42a1:8ff:fe36:5b0d/64 Scope: Global           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:27906 errors:0 dropped:4 overruns:0 frame:0            TX packets:17795 errors:0 dropped:0 overruns:0 carrier:0            collisions:0 txqueuelen:1000            RX bytes:14342222 TX bytes:8697917   dummy0    Link encap:Ethernet  HWaddr c6:b9:c8:82:8f:7e           inet6 addr: fe80::c4b9:c8ff:fe82:8f7e/64 Scope: Link           UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1           RX packets:0 errors:0 dropped:0 overruns:0 frame:0            TX packets:3 errors:0 dropped:0 overruns:0 carrier:0            collisions:0 txqueuelen:0            RX bytes:0 TX bytes:210   p2p0      Link encap:Ethernet  HWaddr 42:a1:08:36:5b:0d           UP BROADCAST MULTICAST  MTU:1500  Metric:1           RX packets:0 errors:0 dropped:0 overruns:0 frame:0            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0            collisions:0 txqueuelen:1000            RX bytes:0 TX bytes:0   lo        Link encap:Local Loopback             inet addr:127.0.0.1  Mask:255.0.0.0            inet6 addr: ::1/128 Scope: Host           UP LOOPBACK RUNNING  MTU:65536  Metric:1           RX packets:0 errors:0 dropped:0 overruns:0 frame:0            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0            collisions:0 txqueuelen:0            RX bytes:0 TX bytes:0  

ip l:

255|TB-8504F:/ # ip l 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default      link/ether c6:b9:c8:82:8f:7e brd ff:ff:ff:ff:ff:ff 3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default      link/sit 0.0.0.0 brd 0.0.0.0 20: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000     link/ether 40:a1:08:36:5b:0d brd ff:ff:ff:ff:ff:ff 21: p2p0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000     link/ether 42:a1:08:36:5b:0d brd ff:ff:ff:ff:ff:ff 31: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000     link/ether 36:4b:50:b7:ef:da brd ff:ff:ff:ff:ff:ff 

The device does show up as usb0 with the MAC address that was listed in dmesg.

              
       
       

Lista de respuestas

3
 
vote
vote
La mejor respuesta
 

Hay una larga lista de preguntas relacionadas con Ethernet, pero ninguna tiene una respuesta integral que cubre todos los aspectos. Estoy generalizando su pregunta para compartir mis conocimientos sobre esto.

Esto es lo que necesita hacer para hacer que Ethernet funcione en Android:

  • Asegúrese de que el soporte OTG esté disponible
  • Kernel debe construirse con soporte Ethernet (y USB Ethernet)
  • Manejar el interruptor de modo USB y la carga del módulo del kernel (si corresponde)
  • Hacer marco de Android Do la configuración de la red o hacerlo manualmente

Nota: Todo lo que se describe a continuación requiere un dispositivo enraizado , o al menos el uno con el cargador de arranque desbloqueado.
Debe estar familiarizado con la interfaz de la línea de comandos.


Soporte OTG

Su dispositivo debe ser capaz de operar en el modo de host USB. ABCDEFGHIJKLMNABCDEFGHIJKLMN0 es comenzó solo si el dispositivo admite la función USB host ( android.hardware.usb.host ) o Ethernet ( ABCDEFGHIJKLMNABCDEFGHIJKLMN2 ). También puede necesitar usar un concentrador USB alimentado si la fuente de alimentación USB de Android no es suficiente para el dispositivo conectado. Pregunta relacionada:

  • ¿Existe una forma definida de saber si mi teléfono admite USB-OTG o NO?

Configuración del kernel

Para usar Ethernet sobre usb (adaptadores o dispositivos similares a módem). Se construirá con CONFIG_USB_USBNET < / Código> y otras configuraciones como USB_NET_CDCETHER , abcdefhijklmnabcdefghijklmn5 , abcdefhijklmnabcdefghijklmn6 , etc., Dependiendo del tipo de dispositivo conectado y el protocolo. negociaciones. Preguntas relacionadas:

  • ¿Dónde están instalados los módulos de kernel?
  • Agregar un controlador a kernel sin parpadear un nuevo kernel
  • Cargue un módulo de kernel sin firma al kernel de ejecución de firmas

Modo USB Interruptor y carga del kernel Module

Muchos dispositivos de red USB son dispositivos multi-modo o flip flop . Aparecen como dispositivo de almacenamiento masivo USB (también llamado zerocd modo) cuando se inserta y necesita ser cambiado al modo Ethernet / PPP. usb_modeswitch es una herramienta de Linux comúnmente utilizada para este propósito. Vea algunos detalles aquí Cómo funciona. Debe construir esta herramienta para su dispositivo, o puede descargar este binario para aarch64 < / Código>. Obtenga la base de datos de dispositivos desde aquí .

Para cambiar automáticamente el modo siempre que el dispositivo esté conectado a Android, necesitamos escuchar a Kernel USB UEvents , ya sea a través de HEADPLUG HELPER o un demonio del espacio de usuario (como udev en Linux y abcdefhijklmnabcdefghijklmn9 en Android). Además, el módulo del kernel también se puede cargar / descargar automáticamente. Soy Definiendo un android.hardware.usb.host0 Service Aquí para lograr esto, puedes hacerlo manualmente también.

Note: existe una aplicación de Android widget PPP (por el desarrollador de usb_modeswitch, no tengo afiliación) que maneja el cambio automáticamente automáticamente y necesita "No hay módulos de controladores de kernel, la implementación 'controlador' se basa en la API del host USB de Android" . Usted podría estar interesado en eso también.

  android.hardware.usb.host1  

* en caso de hotpl G Debe definir las políticas personalizadas de SELINUX para permitir que el kernel realice cambios (consulte esta respuesta para más detalles).

  android.hardware.usb.host2  

Configuración de red

Android Framework tiene un nombre codificado para la interfaz Ethernet ( predeterminado es android.hardware.usb.host3 , abcdefhijklmnabcdefghijklmn14 , ...). Siempre que aparezca una interfaz Ethernet, su nombre se coincide con el valor codificado. El cambio de nombre de la interfaz después no funciona porque solo kernel proporcionado El nombre de la interfaz es rastreado .

Por lo tanto, debe hacer que esta convención de nombramiento sea consistente entre el núcleo y AOSP al modificar uno de los dos (si es necesario). El nombre proporcionado en el kernel se puede ver utilizando ABCDEFGHIJKLMNABCDEFGHIJKLMN15 Herramienta (como en su caso es ABCDEFGHIJKLMNABCDEFGHIJKLMN16 ). Utilice android.hardware.usb.host7 o des-compile android.hardware.usb.host8 usando APKTOOL para ver el valor AOSP.

  android.hardware.usb.host9  

Tan pronto como aparece una interfaz Ethernet, Android lo configura automáticamente, ABCDEFGHIJKLMNABCDEFGHIJKLMN20 Valide la conectividad y ABCDEFGHIJKLMNABCDEFGHIJKLMN21 Desactiva WiFi y datos móviles (si está activado). Otros servicios y componentes que intervienen en la configuración incluyen android.hardware.ethernet2 , android.hardware.ethernet3 , android.hardware.ethernet4 , android.hardware.ethernet5 , android.hardware.ethernet6 , ABCDEFGHIJKLMNABCDEFGHIJKLMN27 Y ABCDEFGHIJKLMNABCDEFGHIJKLMN28 .

Ethernetservice Se agregó en Android 5. Antes de que AOSP se haya parcheado para hacer que el trabajo Ethernet (por ejemplo, consulte este y este ). Still Stock Android no proporciona configuraciones de GUI para Ethernet, pero algunos desarrolladores de ROM personalizados y OEM (por ejemplo, consulte este ). ABCDEFGHIJKLMNABCDEFGHIJKLMN29 Clase que se utiliza para configure y guarde Configuración manual de IP (a CONFIG_USB_USBNET0 ) está oculto . Predeterminado es usar un Configuración codificada en papel (consulte Uso CONFIG_USB_USBNET1 en" IP configuraciones: ") o DHCP proporcionó la configuración < / a>.

Configuración manual

Es posible que desee realizar la configuración manual de la red, por ejemplo. Si:

  • Framework Android no configura la interfaz Ethernet (en dispositivos más antiguos o debido a la inconsistencia del nombre de la interfaz).
  • Usted desea establecer la dirección IP estática o el servidor DNS diferente.
  • Usted desea utilizar Ethernet junto con WiFi o datos móviles, o desea compartir Internet entre cualquiera de estos.

Pero en este caso la pila de red de Java de Android permanece abajo, por lo que algunas aplicaciones según las API de Android no pueden comportarse normalmente. Para los detalles relacionados, consulte Conexión a WiFi a través de ADB Shell .

  ABCDEFGHIJKLMNABCDEFGHIJKLMN32    
  CONFIG_USB_USBNET3  

No olvide establecer los permisos adecuados en CONFIG_USB_USBNET4 Archivo y Shell Scripts. Una vez configurada, Ethernet funciona tan pronto como conecte el adaptador USB.

 

There is a long list of Ethernet related questions but none has a comprehensive answer covering all aspects. I'm generalizing your question in order to share my knowledge on this.

This is what you need to do in order to make Ethernet work on Android:

  • Make sure OTG support is available
  • Kernel must be built with Ethernet (and USB Ethernet) support
  • Handle USB mode switch and kernel module loading (if applicable)
  • Make Android framework do network configuration or do it manually

Note: Everything described below requires a rooted device, or at least the one with unlocked bootloader.
You should be familiar with commandline interface.


OTG SUPPORT

Your device must be able to operate in USB host mode.EthernetService is started only if device supports feature USB host (android.hardware.usb.host) or Ethernet (android.hardware.ethernet). You may also need to use a powered USB hub if Android's USB power supply is not enough for connected device. Related question:

  • Is there a definite way to know if my phone supports USB-OTG or not?

KERNEL CONFIGURATION

In order to use Ethernet over USB (adapters or modem-like devices) kernel must be built with CONFIG_USB_USBNET and other configurations like USB_NET_CDCETHER, USB_NET_HUAWEI_CDC_NCM, USB_NET_CDC_MBIM etc. depending on the type of connected device and the protocol it talks. Related questions:

  • Where kernel modules are installed?
  • Add a driver to kernel without flashing a new kernel
  • Load an unsigned Kernel Module to signature enforcing Kernel

USB MODE SWITCH AND LOADING KERNEL MODULE

Many USB network devices are multi-mode or flip flop devices. They appear as USB Mass Storage device (also called ZeroCD mode) when inserted and need to be switched to Ethernet/PPP mode. USB_ModeSwitch is a Linux tool commonly used for this purpose. See some details here how it works. You need to build this tool for your device, or may download this binary for aarch64. Get device database from here.

In order to automatically switch mode whenever the device is connected to Android, we need to listen to kernel USB uevents, either through hotplug helper or a userspace daemon (like udev on Linux and ueventd on Android). Additionally the kernel module can also be loaded/unloaded automatically. I'm defining an init service here to achieve this, you can do it manually too.

Note: There is an Android app PPP Widget (by the developer of USB_ModeSwitch, I have no affiliation) which handles mode switching automatically and needs "no kernel driver modules, the 'driver' implementation is based on the Android USB host API". You might be interested in that too.

# /system/etc/init/custom.rc  # kernel hotplug or uevent daemon service service cust.udevd /system/sbin/busybox uevent /system/sbin/udev.sh     seclabel u:r:magisk:s0     disabled     writepid /dev/cpuset/system-background/tasks  # set kernel hotplug helper or start uevent daemon on boot on property:sys.boot_completed=1     #write /proc/sys/kernel/hotplug /system/sbin/udev.sh     start cust.udevd 

* In case of hotplug you need to define custom SELinux policies to let kernel make changes (see this answer for details).

#!/system/bin/sh  # /system/sbin/udev.sh script is executed from kernel hotplug or uevent daemon  # set PATH where you placed binaries export PATH=/system/bin  # save log exec >>/dev/udev.log 2>&1  # don't execute multiple instances exec 200<>/dev/udev.lock flock 200  VID="12d1"          # USB vendor ID of a Huawei devcie PID_UMS="1f01"      # product ID in ZeroCD mode PID_ETH="14db"      # product ID in Ethernet mode MODULE="cdc_ether"  # kernel module for USB Ethernet IFACE="usb0"        # Ethernet interface name  matches() {     [ -e "/sys/$DEVPATH/$1" ] || return 1     [ "$(cat "/sys/$DEVPATH/$1")" = "$2" ] || return 1     return 0 }  # check if a new USB device is added or removed if [ "$SUBSYSTEM" = "usb" ] then     # check if a USB device is added, then match VID and PID for mode switching     # also device must belong to UMS class: https://www.usb.org/defined-class-codes#anchor_BaseClass08h     if [ "$ACTION" = "add" ] && echo "$PRODUCT" | grep -q "$VID/$PID_UMS/" &&         matches bInterfaceClass 08 && matches bInterfaceNumber 00     then         echo "Switching USB mode..."          # USB mode switching of flip flop devices (USB modems, routers etc.)         # usb_modeswitch_dispatcher needs /system/sbin/usb_modeswitch binary and configuration files in /etc         # so you need to modify the hard-coded paths in source code as per your requirement         usb_modeswitch_dispatcher --switch-mode "$(basename "$DEVPATH")"     fi      # match VID and PID for module loading     # modprobe should be built with the hard-coded path to where you place modules e.g. /system/lib     if echo "$PRODUCT" | grep -q "$VID/$PID_ETH/"     then         if [ "$ACTION" = "add" ] && ! grep -q "^$MODULE " /proc/modules         then             echo "Loading $MODULE module..."             modprobe "$MODULE"          elif [ "$ACTION" = "remove" ] && grep -q "^$MODULE " /proc/modules         then             echo "Removing $MODULE module..."             modprobe -r "$MODULE"         fi     fi fi  # on network interface event if [ "$SUBSYSTEM" = "net" ] && [ "$INTERFACE" = "$IFACE" ] then     if [ "$ACTION" = "add" ]     then         echo "Starting cust.eth_config service..."         #start cust.eth_config    # uncomment if you want to do manual network configuration     fi      if [ "$ACTION" = "remove" ]     then         echo "Stopping cust.eth_config service..."         #stop cust.eth_config    # uncomment if you want to do manual network configuration     fi fi 

NETWORK CONFIGURATION

Android framework has a hard-coded name for Ethernet interface (default is eth0, eth1, ...). Whenever an Ethernet interface appears, its name is matched with the hard-coded value. Renaming interface afterwards doesn't work because only kernel provided interface name is tracked.

So you need to make this naming convention consistent between kernel and AOSP by modifying one of the both (if needed). Kernel provided name can be seen using ip tool (as in your case it's usb0). Use dumpsys or de-compile /system/framework/framework-res.apk using apktool to see the AOSP value.

~$ dumpsys ethernet ...   Ethernet interface name filter: eth\d ... 

As soon as an Ethernet interface appears, Android configures it automatically, NetworkMonitor validates the connectivity and ConnectivityService turns off WiFi and Mobile Data (if it's ON). Other services and components involved in configuration include UsbHostManager, EthernetTracker, EthernetNetworkFactory, IpClient.eth0, DhcpClient, DnsManager and Netd.

EthernetService was added in Android 5. Before that AOSP was patched to make Ethernet work (e.g. see this and this). Still stock Android provides no GUI settings for Ethernet, but some custom ROM developers and OEMs do (e.g. see this). EthernetManager class which is used to set and save manual IP configuration (to /data/misc/ethernet/ipconfig.txt) is hidden. Default is to use a hard-coded configuration (see using dumpsys ethernet under "IP Configurations:") or DHCP provided configuration.

MANUAL CONFIGURATION

You might want to do manual network configuration e.g. if:

  • Android framework doesn't configure the Ethernet interface (on older devices or due to interface name inconsistency).
  • You want to set static IP address or different DNS server.
  • You want to use Ethernet along with WiFi or Mobile Data, or want to share internet among any of these.

But in this case Android's Java network stack remains down, so some apps depending on Android APIs may not behave normally. For related details see Connecting to WiFi via ADB Shell.

# /system/etc/init/custom.rc  # Ethernet IP configuration service service cust.eth_config /system/sbin/eth_config.sh     seclabel u:r:magisk:s0     disabled     writepid /dev/cpuset/system-background/tasks  # clear routing and DNS on property:init.svc.cust.eth_config=stopped     exec u:r:magisk:s0 -- /system/sbin/eth_config.sh stop 
#!/system/bin/sh  # /system/sbin/eth_config.sh script is executed from eth_config init service  # set PATH where you placed binaries export PATH=/system/bin  IFACE=usb0                    # Ethernet interface name DIR=/data/local/tmp/ethernet  # temporary directory mkdir -p $DIR  # save log exec >$DIR/eth_config.log 2>&1  if [ "$1" = stop ] then     echo "Clearing configuration..."     ip ru del lookup main     ip r f table main     ndc resolver setnetdns 0 '' 0.0.0.0     exit fi  # destroy set network if any ndc network default set 0  # turn WiFi and Mobile Data off svc wifi disable svc data disable  # set interfaces up ip link set dev lo up ip link set dev $IFACE up  # Android doesn't use main table by default ip rule add lookup main  # set IP, route and DNS manually here # or add any other IP/routing configuration # or run a minimal DHCP client as follows  # create 'udhcpc' script <<-'SCRIPT' cat >$DIR/udhcpc_default.script #!/system/bin/sh  case $1 in     bound|renew)         echo "Setting IP address, gateway route and DNS for $interface..."         ip address f dev $interface         ip route f table main         ip address add $ip/$mask dev $interface         ip route add default via $router dev $interface         ndc resolver setnetdns 0 '' $dns     ;;     *)         echo "Ignoring $1"     ;; esac SCRIPT  # start DHCP client to obtain IP from server chmod 0755 $DIR/udhcpc_default.script exec busybox udhcpc -v -f -i $IFACE -s $DIR/udhcpc_default.script 

Do not forget to set proper permissions on .rc file and shell scripts. Once setup, Ethernet works as soon as you connect USB adapter.

 
 
 
 

Relacionados problema

1  ¿Cómo obtener controladores para el soporte de Android de las webcameras USB para la transmisión de aplicaciones?  ( How to get drivers for android support of usb webcameras for streaming apps ) 
Sé que hay aplicaciones que le permiten hacer videos a través de aplicaciones, por ejemplo, cámara USB: conecte easycap o webcam , pero no le permite usar la...

13  ¿Cómo obtengo mi nexo 7 para aparecer en la lista de dispositivos ADB?  ( How do i get my nexus 7 to show up in the adb devices list ) 
Así que tengo un nexo 7 que estoy tratando de conectarme a mi computadora con Windows para depurar sobre ADB. ADB funciona bien con mi teléfono, pero cuando c...

0  El estudio Android no ve el dispositivo  ( Android studio doesnt see device ) 
Sé que esta pregunta se pidió varias veces, pero probé casi todas las soluciones que se sugirió y el estudio Android todavía no ve mi dispositivo. mi config...

14  No puedo ver mi dispositivo en la lista de ADB Android  ( I cant see my device in android adb list ) 
Tengo Open with View contact [JUST ONCE] [ALWAYS] Use a different app Contacts 1 con Open with View contact [JUST ONCE]...

1  Drivers USB OEM Lenovo [cerrado]  ( Oem usb drivers lenovo ) 
cerrado. Esta pregunta es off-topic . Actualmente no está aceptando respuestas. ¿Quieres ...

10  Problemas del conductor al usar Samsung Galaxy SIII a través de USB para el desarrollo  ( Driver issues when using samsung galaxy siii via usb for development ) 
El teléfono está conectado a través de USB a Windows 7 de 64 bits. La opción abcdefghijklmnUSB debugging habilitado. Cuando conecto el teléfono a la comput...

0  ¿Cómo funciona la aplicación OTG Habler Habler?  ( How does otg enabler app work ) 
Hay un dispositivo no tiene una señal USB OTG, pero el Cheker dice: "El sistema operativo de su dispositivo tiene API USB OTG, verifique el kernel USB OTG o l...

22  Cómo instalar los controladores ADB en Windows 10 (OPO)  ( How to install adb drivers on windows 10 opo ) 
Problema: Instale los controladores ADB (google_usb_drivers) en un cliente de Windows 10 para permitir la depuración para mi OnePlus One (OPO). lo que he...

3  Aoson M19 - Necesita controladores de dispositivos  ( Aoson m19 need device drivers ) 
Yo y algunos otros tienen una tableta extra Aoson M19 Android a mano, pero parece que no puede encontrar ningún controlador de dispositivos USB para ello. Sup...

2  Android Chroot Ubuntu: ¿es posible conseguir que Ubuntu reconozca los dispositivos USB?  ( Android chroot ubuntu is it possible to get ubuntu to recognise usb devices ) 
He logrado configurar el Chroot, pero no estoy seguro de cómo obtener el Chroot para reconocer los dispositivos USB. Lo haré. Trabajaré con microcontroladores...

4  ¿Conductores USB para usar ADB con Samsung Galaxy S en CyanogenMod 7.1?  ( Usb drivers for using adb with samsung galaxy s on cyanogenmod 7 1 ) 
Hace poco instalé CyanogenMod 7.1 en mi Samsung Galaxy S i9000 y tengo algunos problemas ahora para obtener adb en mi computadora Windows 7 64 bits para...

1  LG Nexus 5 no se detecta a pesar de haber instalado LG Universal Mobile Drivers  ( Lg nexus 5 is not detected despite having installed lg universal mobile drivers ) 
Yo uso Windows 8, y ADB parece no poder encontrar mi LG Nexus 5 (D821) a pesar de haber instalado LG Universal Mobile Drivers (LGUNITEDMOBILEDRIVER_S498MA22_W...

2  Livesuit (u otras herramientas similares) para Linux o BSD  ( Livesuit or other similar tools for linux or bsd ) 
Necesito flashear una nueva ROM en un Allwinner A13 tablet . Pero no tengo acceso a una caja de Windows. ¿Hay herramientas como LIVERSUIT para Linux o BSD? ...

1  Sony Xperia U con mi computadora portátil de Windows XP  ( Sony xperia u with my windows xp laptop ) 
Tengo Windows XP y cada vez que conecto mi Xperia U, la computadora lo piensa una cámara. Creo que es un problema de conductor, así que encontré a los conduct...

1  Los dispositivos ADB no listan a Samsung Galaxy S CyanogenMod 7.1  ( Adb devices doesnt list samsung galaxy s cyanogenmod 7 1 ) 
No puedo enumerar mi dispositivo en ABCDEFGHIJKLMNABCDEFGHIJKLMN3 y mi problema es similar a la de científico loco , excepto que en su caso Windows tomó lo...

5  ¿Cómo puedo obtener ADB para reconocer adecuadamente un dispositivo Alcatel One Touch 995 en Windows / Ubuntu?  ( How can i get adb to properly recognize an alcatel one touch 995 device on windo ) 
El problema Estoy tratando de implementar una aplicación personalizada a un Alcatel One Touch 995 ejecutando Android 2.3.6. Yo uso Eclipse para compilar el ...

8  Nexus 5 no se conecta a la PC  ( Nexus 5 wont connect to pc ) 
Tengo un Nexus 5. Es bastante nuevo: lo compré hace aproximadamente 2 semanas. Anteriormente, lo he enchufado a mi PC de Windows 7 y he podido acceder a los...

1  Cómo conectar SuperPAD II P041 a PC  ( How to connect superpad ii p041 to pc ) 
Tengo un superpad II P041 y me gustaría conectarlo a mi PC. Me gustaría usar Logcat para verificar la excepción, mi solicitud. El problema es que cuando lo ...

-1  Aoson M19 - Controladores de dispositivos [Duplicar]  ( Aoson m19 device drivers ) 
Esta pregunta ya tiene una respuesta aquí : CERRADO 8 años . posible duplicado: aoson m19:...

1  ¿Todos los dispositivos Android tienen soporte USB OTG?  ( Do all android devices have usb otg support ) 
Estoy usando celkon a98 . La especificación de mi dispositivo dice que no tiene USB OTG Support . Lo intenté OTG Aplicación de solucionador de problemas ....

0  Usando un dongle wifi para monitorear la red  ( Using a wifi dongle to monitor network ) 
Tengo una caja inteligente de Android con un wifi incorporado y quiero agregar un dongle a la caja para que pueda monitorear la red. He encontrado una pregunt...

-1  ¿Cómo conectar un MOTOROLA XOOM 2 ME (MZ607) en el modo Fastboot a una PC?  ( How to connect a motorola xoom 2 me mz607 on fastboot mode to a pc ) 
Estoy tratando de conectar un MOTOROLA XOOM 2 ME (MZ607) en el modo Fastboot a mi computadora portátil que ejecuta Windows 10 según se describe aquí: https...

2  ¿Cómo hacer que el trabajo Ethernet en Android sobre OTG?  ( How to make ethernet work on android over otg ) 
Estoy tratando de usar un módem LTE conectado a un dispositivo Android 7 sobre un cable OTG. El kernel reconoce el dispositivo y lo registra con cdc_ether , ...

-2  ¿Los fabricantes escriben los controladores para sus nuevos dispositivos de ejecución de Android?  ( Do manufacturers write the drivers for their new android runned devices ) 
Usted nota Samsung Galaxy S4 es diferente a Metropcs Z500. ¿El fabricante actualiza los controladores dependiendo del hardware, su sistema operativo Android...

1  Problema de controlador de dispositivo Qualcomm HSUSB  ( Qualcomm hsusb device driver issue ) 
Tengo un dispositivo Qualcomm HS-USB en el que quiero probar mi solicitud desarrollada. El problema que estoy enfrentando es que los controladores del disposi...

Relacionados problema

1  ¿Cómo obtener controladores para el soporte de Android de las webcameras USB para la transmisión de aplicaciones? 
13  ¿Cómo obtengo mi nexo 7 para aparecer en la lista de dispositivos ADB? 
0  El estudio Android no ve el dispositivo 
14  No puedo ver mi dispositivo en la lista de ADB Android 
1  Drivers USB OEM Lenovo [cerrado] 
10  Problemas del conductor al usar Samsung Galaxy SIII a través de USB para el desarrollo 
0  ¿Cómo funciona la aplicación OTG Habler Habler? 
22  Cómo instalar los controladores ADB en Windows 10 (OPO) 
3  Aoson M19 - Necesita controladores de dispositivos 
2  Android Chroot Ubuntu: ¿es posible conseguir que Ubuntu reconozca los dispositivos USB? 
4  ¿Conductores USB para usar ADB con Samsung Galaxy S en CyanogenMod 7.1? 
1  LG Nexus 5 no se detecta a pesar de haber instalado LG Universal Mobile Drivers 
2  Livesuit (u otras herramientas similares) para Linux o BSD 
1  Sony Xperia U con mi computadora portátil de Windows XP 
1  Los dispositivos ADB no listan a Samsung Galaxy S CyanogenMod 7.1 
5  ¿Cómo puedo obtener ADB para reconocer adecuadamente un dispositivo Alcatel One Touch 995 en Windows / Ubuntu? 
8  Nexus 5 no se conecta a la PC 
1  Cómo conectar SuperPAD II P041 a PC 
-1  Aoson M19 - Controladores de dispositivos [Duplicar] 
1  ¿Todos los dispositivos Android tienen soporte USB OTG? 
0  Usando un dongle wifi para monitorear la red 
-1  ¿Cómo conectar un MOTOROLA XOOM 2 ME (MZ607) en el modo Fastboot a una PC? 
2  ¿Cómo hacer que el trabajo Ethernet en Android sobre OTG? 
-2  ¿Los fabricantes escriben los controladores para sus nuevos dispositivos de ejecución de Android? 
1  Problema de controlador de dispositivo Qualcomm HSUSB 



© 2021 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos