0
GeekManLinux

How to enable support for USB tether from phone

Recommended Posts

I am trying to set up a Orange Pi Zero to use as a small NAT/ Bridge Device. I want to use an Android phone in USB tether mode to give its 4g connection to an interface on the opi zero then use a network bridge to join the 4g connection to the lan port, also the opi zero is gonna run a small section of code on the USB interface that changes the TTL of all packets through the interface. On my linux mint box the script looks like

pkexec sysctl net.ipv4.ip_default_ttl=65 && echo 65 | pkexec tee /proc/sys/net/ipv4/ip_default_ttl

but i am running into issues with the very first part, that is getting my phone native USB tether to be recognized as an interface in the kernel. I understand that a kernel module, I believe g_ether, needs to be installed to get this functionality. All the posts I have seen use this module to make the opi run as the HOST and not the client. Also i am new to modifying the kernel in this way so if someone knows how to do it on this distro it would be greatly appreciated.

 

System info:

ARMBIAN 5.65 stable Ubuntu 18.04.1 LTS 4.14.84-sunxi

 

Output of lsusb of the phone when in tether mode

Bus 003 Device 004: ID 0e8d:2004 MediaTek Inc. 
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          224 Wireless
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0e8d MediaTek Inc.
  idProduct          0x2004 
  bcdDevice           ff.ff
  iManufacturer           2 
  iProduct                3 
  iSerial                 4 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           75
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         2
      bFunctionClass        224 Wireless
      bFunctionSubClass       1 Radio Frequency
      bFunctionProtocol       3 RNDIS
      iFunction              19 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      3 RNDIS
      iInterface             17 
      ** UNRECOGNIZED:  05 24 00 10 01
      ** UNRECOGNIZED:  05 24 01 00 01
      ** UNRECOGNIZED:  04 24 02 00
      ** UNRECOGNIZED:  05 24 06 00 01
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               9
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface             18 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0

 

Share this post


Link to post
Share on other sites

Wow now I feel like an idiot lol. Apparently just rebooting enough times with the phone connected caused the modules to load. It now shows up as usb0 in ifconfig. So now I just need to implement the bridge and ttl mod and i should be good to go.

Sorry for wasting your time.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
0