Tethering do Iphone no Ubuntu pela USB

Essa semana através de um post no Br-Linux do grande Brain (Augusto Campos) achei o que estava procurando desde o lançamento da versão 3.0 do Firmware do Iphone. O agora amigo, Diego Giagio lança sob a licença GPL/BSD um driver para a interface de Rede do Iphone para o Linux.  Na hora me interessei pelo projeto e entrei em contato com o autor, que prontamente respondeu meu contato.

A primeiro momento tive problemas para rodar um dos scripts para instalação, porem o autor rapidamente diagnosticou o problema e reescreveu o script e me cedeu uma nova versão para testes que funcionou perfeitamente e já foi disponibilizado para todos. O processo todo ainda não está clean para instalação, porem com um pouco de conhecimento do Sistema Operacional já é possivel utilizá-lo.

Vamos a um passo a passo para instalação no Ubuntu 9.04:

- Adicionar o repositório do Projeto iFuse ao arquivo /etc/apt/sources.list

/etc/apt/source.list
deb http://ppa.launchpad.net/jonabeck/ppa/ubuntu intrepid main
deb-src http://ppa.launchpad.net/jonabeck/ppa/ubuntu intrepid mai/etc/apt/source.list

deb http://ppa.launchpad.net/jonabeck/ppa/ubuntu intrepid main
deb-src http://ppa.launchpad.net/jonabeck/ppa/ubuntu intrepid main

- Adicionar Chaves do Repositório

teste@teste:$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com F0876AC9

- Instalando iFuse

teste@teste:$ sudo apt-get update
teste@teste:$ sudo apt-get install ifuse

- Instalando dependências python

teste@teste:$ sudo apt-get install python-iphone python-pyasn1 python-m2crypto

O complemento python-iphone depende da versão 2.5 do python, portando o mesmo tambem deverá ser instalado. Esse é um ponto importante pois o script de PAIR será rodado com a versão 2.5 do python. O python padrão se manterá o 2.6, portanto não deve haver nenhum tipo de problema com seu sistema.

- Instalando o source do kernel Linux

teste@teste:$ sudo apt-get install linux-source

- Agora você deve fazer o download do driver em si através do repositório GIT.

teste@teste:$ git clone git://github.com/dgiagio/ipheth.git

Se você não tiver o git instalado basta dar um:

teste@teste:$ sudo apt-get install git-core

A partir desse momento todo o processo deve ser feito com o Iphone conectado ao computador.

Entre no diretório ipheth/ipheth-pair e execute o script contido nele, lembrando que ele tem que ser executado com o phyton 2.5:

teste@teste:$ python2.5 ipheth-pair.py
..++++++
.++++++
....++++++
..........................................++++++
ValidatePair: Success
Pair: Success

Se o retorno for similar a esse você teve sucesso e pode dar andamento a instalação do Driver:

- Entre no diretório ipheth/ipheth-driver e compile o driver:

teste@teste:$ ipheth/ipheth-driver$ make

- Agora basta subir o modulo do driver:

teste@teste:$ sudo insmod ipheth.ko

Pronto!!! Seu driver está compilado e instalado, porem nessa versão algumas coisas ainda devem ser feitas manualmente após cada boot (em novas versões isso com certeza será melhorado pelo autor).

Você deve subir o modulo do driver todo boot através de script ou manualmente.

teste@teste:$ sudo insmod /caminho/do/driver/ipheth.ko

Outro porem é que antes de conectar via Iphone você deve executar o Script de Pair (com iphone plugado na usb):

teste@teste:$ python2.5 /caminho/do/script/ipheth-pair.py

Em breve teremos novas atualizações. Aguardem!!!
.

Deixe um comentário ou subscreva-se no nosso feed.

Comentários

Charles, ficou excelente o post. Muito explicativo e útil. :-)
Abraços.

segui as instrucoes a risca, mas quando conecto o iphone tenho um erro: “error initialzing camera -60:could not lock the device”. Achei que fosse por causa do f-spot ou outro aplicativo, mas mesmo desinstalando o f-spot o erro persiste. Aí nesse ponto se eu tento fazer o pair, ele dá ValidatePair:Failure e sair. Alguma dica de como resolver?

Corro atras deu uma solução desta a alguns meses. Tenho um iPhone 3G, firmware 3.0 com jailbreak e ubuntun 9.04.

Segui todos os passos fielmente e na hora de executar o script recebo a seguinte mensagem: ValidatePair: Failure

E agora?!

Geoff,

Esse problema também ocorre com o meu Ubuntu, porem não é nada relacionado ao driver e sim a libiPhone do projeto iFuse. Não descobri ainda o motivo desse erro, porem isso não interfere no funcionamento do driver.

Em alguns momentos o Failure se dá pela falta de carregar corretamente o hardware. Já obtive algumas vezes a mensagems de Failure Pair, porem aguardando um momento e rodando novamente o script ele consegue fazer o Pair e fazer a conexão com o iPhone e carregar o modulo do driver. Alguns vezes desconectando o iphone e conectando novamente isso é resolvido.

Report se mesmo assim continuar tendo problemas.

Anderson,

O seu caso pode ser o mesmo do Geoff, tente rodar o script após um tempo que colocar a USB do iphone no micro. Estou com um cenário identico ao seu e já estou utilizando a duas semanas esse driver sem grandes problemas.

Pessoal, esse problema do “ValidatePair: Failure” eu consegui resolver no meu iphone 3g com o jailbreak. Além da libiphone0, instalem o pacote libiphone-utils. Junto com esse pacote vem um comando muito útil, o iphonesyslog, que nada mais é do que um tail -f no syslog do iphone.
Rodem o ./ipheth-pair.py e vejam o que aparece no log! No meu aparece:
Can’t stat /var/root/Library/Lockdown/pair_records/30020357-993885437260361964.plist: No such file or directory

Ou seja, alguma coisa que esse script faz procura por esse arquivo no telefone, e o mesmo não está lá!

Então, dei ssh pra dentro do telefone e nessa pasta “/var/root/Library/Lockdown/pair_records” existe um arquivo .plist similar a este.

daí eu criei um link simbólico para o arquivo do meu iphone com o nome 30020357-993885437260361964.plist assim

ln -s arquivo_que_encontrei_no_meu.plist 30020357-993885437260361964.plist

Voilá! Funcionou!

Só que isso era no meu iphone 3g. Agora estou com um 3gs e com o firmware 3.1. Ainda não tem jeailbreak :( entao fikei sem internet!

Espero ter ajudado! Abraços.

Boa dica Parruda.

Um único comentário sobre sua dica. O driver funciona para o Iphone com firmware original e também para firmware jailbreaked. Já rodei em ambos os casos.

O maior problema desse método é o script de pair que ainda vem apresentando alguns problemas, dependendo da versão de firmware e se é jailbreaked ou não.

No meu caso hoje rodo em um iphone 3G com firmware original (sem jailbreak).

Esse pacote adicional que você recomenda para instalação é muito válido sim, eu já o uso para análise dos problemas ocasionais.

Opa Charles! Meu 3gs com firware original 3.1 dá o mesmo problema no pair, e o iphonesyslog mostrou o mesmo erro =/

Pessoal… alguem conseguiu compilar o ipheth-driver no kernel 2.6.30?

o meu não tá sequer executando o make… Dá vários erros em função

Deixe seu comentário

(obrigatório)

(obrigatório)