# Usb\_modeswitch on air unit

**URL:** <https://discuss.cubepilot.org/t/usb-modeswitch-on-air-unit/7446>\
**Category:** HereLink\
**Created:** [5 October 2021 10:20 UTC](https://discuss.cubepilot.org/t/usb-modeswitch-on-air-unit/7446 "2021-10-05T10:20:10Z")\
**Posts on this page:** 1\
**Showing post:** 16

<div class="post-metadata">

**Author:** ![Olivier\_Gasté](https://discuss.cubepilot.org/user_avatar/discuss.cubepilot.org/olivier_gast%C3%A9/32/4309_2.png) [@Olivier\_Gasté](https://discuss.cubepilot.org/u/Olivier_Gast%C3%A9)\
**Post date:** [12 October 2021 09:44 UTC](https://discuss.cubepilot.org/t/usb-modeswitch-on-air-unit/7446/16 "2021-10-12T09:44:49Z")

</div>

YES !!!

```auto
# ping -I eth0 8.8.8.8                                                                                                                                                                                            
PING 8.8.8.8 (8.8.8.8) from 192.168.8.102 eth0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=110 time=35.5 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=110 time=34.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=110 time=32.4 ms

```

thank’s a lot !!!  
I finaly get it to work !!  
so for those looking to do same

first : you need correctly libusb.so lib and usb-modswitch tool installed  
you can get source and compile it from here [https://github.com/joerg65/usb\_modeswitch\_Android](https://github.com/joerg65/usb_modeswitch_Android)  
or simply get it from my previous message

- connect your host directly to usb on air unit
- authorize write on system partition  
`adb shell "su 0 mount -o rw,remount /system"`
- autorise push on tmp folder  
`adb shell "su 0 chmod +w /tmp"`
- then copy libusb.so and usb-modswitch to tmp folder  
`adb push <path to your file on host>/libusb1.0.so /tmp/`  
`adb push <path to your file on host>/usb-modeswitch /tmp/`
- moves them to correct folder under a shell  
`adb shell`

```auto
$su
#mv /tmp/libusb1.0.so /system/lib64/
#mv /tmp/usbmodeswitch/system/bin/

```

if you are using like me a HUAWEI 3372 4G modem you will need a conf file for usb-modeswitch tool  
you can directly write string code it’s up to you ( google is your friend) but I prefer readable conf file

- just put the following into a `usb-modeswitch.conf` file and then push it to tmp and moves it to `/etc/` folder

```auto
 TargetVendor=0x12d1
 TargetProductList="14db,14dc"
 HuaweiNewMode=1
 NoDriverLoading=1

```

- unplug your adb host of air unit and get connected to remote
- reboot the air unit
- connect your 4G modem to air unit USB OTG port (please use an externaly powered usb cable)
- as explained here : [Herelink Ethernet - #3 by Michael\_Oborne](https://discuss.cubepilot.org/t/herelink-ethernet/4369/3)

```auto
adb shell (gets you into the gcs unit)
adb connect 192.168.0.10
adb -s 192.168.0.10:5555 shell

```

you will reach a shell on air unit

- disable auto bridging of eth0 interface (thank’s a lot @Michael_Oborne I would have never find this one without you)

```auto
su
stop usbethx

```

- check your modem is well registered on usb

```auto
# lsusb
Bus 001 Device 001: ID 1d6b:0002
Bus 001 Device 003: ID 12d1:1f01

```

- switch the modem into hilink mode (if you are using another modem you should probably use wwan0 mode and it’s a litel bit more confuse to get qmi working)

```auto
# usb_modeswitch -v 12d1 -p 1f01 -c /etc/usb_modeswitch.conf

```

- check your eth0 is registered with : ` ip a`
- wake up the interface : ` ifconfig eth0 up`
- start dhcpd on eth0 : `dhcpcd-6.8.2 eth0` (it will setup route for you)
- check your fresh IPv4
- check you can ping outside : `ping -I eth0 8.8.8.8`

I still need to setup a dns correctly if someone can help it looks iptable is empty and seems android dont care about resolve.conf  
thank’s for all helps

---

_[View the full topic](https://discuss.cubepilot.org/t/usb-modeswitch-on-air-unit/7446)._
