Berikut ini berfungsi untuk sementara, tetapi hanya untuk browser.
Ketika Anda menyambungkan ponsel Anda melalui usb dan memilih Internet pass-through, Anda harus mendapatkan perangkat RNDIS baru (usb0 atau usb1). Untuk ubuntu, edit /etc/network/interfaces dan tambahkan baris berikut:
iface usb0 inet dhcp
iface usb1 inet dhcp
Ini akan menetapkan IP secara otomatis saat perangkat ditambahkan. Jika alamat jaringan tidak ditetapkan secara otomatis ke usb0 atau usb1, Anda harus melakukannya secara manual.
Maka Anda perlu mengatur NAT di komputer linux Anda. Sesuatu seperti:
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Anda juga memerlukan server DNS:
sudo apt-get install bind9
Ini berfungsi selama beberapa menit, tetapi setelah beberapa saat telepon berhenti mencari HTC Sync dan terputus.
Untuk ponsel yang di-root
Anda dapat terhubung secara permanen jika Anda memiliki ponsel yang di-rooting (fre3vo bekerja untuk saya). Jalankan yang berikut dengan adb.
Aktifkan mode usb untuk jaringan dan adb:
adb shell echo 6 > /sys/devices/platform/msm_hsusb/usb_function_switch
Tetapkan IP ke perangkat usb0 di ponsel:
adb shell ifconfig usb0 192.168.99.5 netmask 255.255.255.0 up
Tambahkan rute default. IP harus menjadi IP yang ditetapkan ke usb0 di linux:
adb shell route add default gw 192.168.99.1 dev usb0
Atur server DNS. Ini adalah server DNS terbuka Google, tetapi ini bisa menjadi IP komputer linux Anda jika Anda memiliki server DNS:
adb shell setprop net.dns1 8.8.8.8
A membuat bash kecil ini untuk mengotomatiskan semua. Cukup colokkan ponsel Anda dalam mode pengisian daya ke komputer dan jalankan bash ini.
#!/bin/bash
/opt/android-sdk-update-manager/platform-tools/adb shell 'echo 6 > /sys/devices/platform/msm_hsusb/usb_function_switch'
sleep 1
/opt/android-sdk-update-manager/platform-tools/adb shell ifconfig usb0 192.168.99.5 netmask 255.255.255.0 up
sleep 1
/opt/android-sdk-update-manager/platform-tools/adb shell setprop net.dns1 8.8.8.8
get_ip ()
{
ifconfig usb0 | grep inet | awk '{print $2}' | sed 's/addr://' | grep .
}
echo "waiting for IP on computer usb0"
while [[ `get_ip` < 192 ]];do sleep 2; done
ip=`get_ip`
echo "IP adress is $ip "
/opt/android-sdk-update-manager/platform-tools/adb shell route add default gw $ip dev usb0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE