2011-05-25

Usando a rede do PC Linux via USB no Android (ATRIX)

Bom vamos lá então... rede do cel para o PC por USB ...

Como Eu falei na lista Android-Brasil, para fazer o inverso do tether, e acessar a internet via USB/PC e que o tether deveria funcionar em mão dupla aqui vai um guia rápido, para celulares rootados, testei no meu ATRIX:

Após conectar o celular pela USB, deixe o modo de conexão da USB em nenhum!

1- Baixe e instale o programa http://code.google.com/p/android-wired-tether/ (versão mais nova que tiver lá!)

2- Instale o programa Android Terminal Emulator e o Busybox pelo Market

3- Desligue o WIFI e a Conexão de dados do Celular, assim não vai tentar gastar seu pacote 3G, nem usar o wifi ...

4- No PC! Habilite o roteamento de pacotes no PC (Ubuntu LINUX), precisa de acesso root no PC também (pode usar sudo, os comando abaixo estão sem o sudo, suponho ainda que a rede de saída para internet em seu PC é eth0):

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

5 - Abra o programa WIRED-TETHER

6 - No programa wired-tether ative o tether via USB.... ainda não vai funcionar

7- No PC, aguarde uns segundos até que o PC (Ubuntu LINUX) conecte e digite o comando:

ifconfig usb0

Anote o endereço IP da rede em USB0 aqui é: 172.20.23.253

Se a rede em usb0 não estiver com endereço IP ative-a com (use sudo, se não estiver como root):
dhclient usb0

rode o ifconfig usb0, novamente e anote o IP

7 - Abra o Android Terminal Emulator, (pode ser feito pelo adb shell)
su -
ifconfig usb0

Verifique se há IP e se está na mesma faixa do IP anotado no PC

No celular adicione o PC como roteador para seu celular:

route add default gw IP_ANOTADO

Aqui ficou assim:
route add default gw 172.20.23.253

8- Ainda no celular, é só configurar um DNS ou não encontra os servidores e não navega ...
setprop net.dns1 8.8.8.8
echo "nameserver 8.8.8.8" > /etc/resolv.conf

Testei aqui e funcionou, isso ai é mais ou menos o mesmo que Eu fazia no PalmOS lá no Palm m130... 
Me bati no pondo do DNS pois nem sabia desse comando setprop do Android... 

P.S. Meu ATRIX só tá rootado e esta com ROM retail, não tem mais nada de especial e não instalei nenhum modulo no kernel nem nada... 

5 comentários:

Pr. Silfar Goulart disse...

Cara muito show isso, mas tem como fazer com windows ?

Marcus Fazzi disse...

Para funcionar no windows, você teria de habilitar o compartilhamento da Internet e setar o IP do celular para o IP da máquina windows, além da rota e DNS.

Sandino Santos disse...

Anunakin, estou com um lg P350 com cyanmod7 - android 2.3 e ubuntu 11.04

duas complicaçõesinhas iniciais já apareceram, 1ª echo 1 > /proc/sys/net/ipv4/ip_forward retorna Permissão negada mesmo como su o.O

e outra, é que o wired Tether acusa que o meu kernel não é é compatível... ¬¬''

tem alguma solução? hehe...
vlws

Marcos Camargo disse...

Funcionando legal no meu novo Galaxy Y...
Vlw!!!
Ah só uma dica aqui precisei fazer assim:

busybox route add default gw 172.20.23.253

no mais tranquilo...
abraço...

Marcus Fazzi disse...

@Sandino Santos,
O comando "echo 1 > ..." deve ser executado no PC ...

A msg de kernel não compatível aparece aqui também .. .estou com CM7 no ATRIX.

@Marcos Camargo,
O IP diferente é normal cada aparelho ou ROM pode por o IP que bem quiser na rede virtual