mardi 2 novembre 2010

Android 2.1 "Eclair" tethering sur Linux Ubuntu avec Proxoid

Me voilà passer sous Android, venu de l'iPhone... et comme sur l'iPhone... la première chose à faire, c'est l'utilisation de ces téléphones high-tech comme modem.

Après, on paye bien un forfait internet illimité (dans la limite du fairway évidemment :( )
Tout d'abord, je précise que je suis sous Ubuntu 10.10. Mais cela devrait fonctionner tout aussi bien sous Ubuntu 10.04.

Nous verrons ainsi comme installer le tethering sur le PC puis comment l'utiliser facilement.

Cette méthode est fonctionnelle pour Android 2.1 "Eclair". Pour Android 2.2 "Froyo", il n'est pas nécessaire d'en passer par là. Cela fera l'objet un autre article... promis ;)


1°) L'installation

Sur le téléphone Android, c'est très simple : rdv sur l'Android Market et installer Proxoid.
Voilà de quoi vous faciliter encore plus la tâche :)
Télécharger sur le Market ou en suivant ce code barre proxoid.


Passons au plus intéressant, l'installation sur le PC Ubuntu ou Debian :
Dans un premier temps, il faut connecter le téléphone en USB.
Il n'est pas nécessaire de le monter en Mass Storage (clé USB).Par contre il faut s'être assurer de l'avoir mis en mode de Débogage USB. Pour cela aller dans Paramètres > Applications > Développement > cocher Débogage USB.
Maintenant on va vérifier que Linux a bien reconnu le téléphone, taper dans la console shell :
$ lsusb 
s'il y a la ligne suivante dans la réponse, c'est tout bon :)
...
Bus 001 Device 002: ID 04e8:681c Samsung Electronics Co., Ltd
...
Bon le système est prêt à une installation en bonne et due forme.
Passons aux choses sérieuses.
Toujours dans la console, exécutons les commandes suivantes :
$ sudo touch /etc/udev/rules.d/09-android.rules

Ici nous créons le fichier 09-android.rules qui permettra au udev de reconnaître le téléphone. En gros, udev est le système qui gère les périphériques (voir la documentation ici : http://doc.ubuntu-fr.org/udev)

Il va falloir mettre ces lignes dans le fichier /etc/udev/rules.d/09-android.rules que nous venons de créer :
SUBSYSTEM=="usb", SYSFS{idVendor}=="0422", SYSFS{idProduct}=="5222", MODE="0666", OWNER="YOURUSERNAME"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0422", SYSFS{idProduct}=="5222", MODE="0666", OWNER="YOURUSERNAME"

En fait la valeur de SYSFS{idVendor} et SYSFS{idProduct} doivent correspondre à celles que nous avons pu récupérer avec la commande lsusb au début du tutoriel.
Dans notre exemple, nous avions "04e8" et "681c". Donc pour le téléphone que j'avais connecté, un Samsung Galaxy S i9000, les lignes seront :
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="681c", MODE="0666", OWNER="YOURUSERNAME"

La source de ces indications ont été trouvées sur ubuntu-fr sur cette page : http://doc.ubuntu-fr.org/proxoid
Ailleurs, j'ai trouvé cette ligne qui a très bien fonctionner chez moi :
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", SYMLINK+="android_adb", MODE="0666", OWNER="YOURUSERNAME"
Dans ce cas il va falloir mettre la valeur du SYSFS{idVendor} des lignes précédentes sur le ATTRS{idVendor}
Dans les deux exemples, pensez à modifier le OWNER en indiquant votre identifiant de session ubuntu.
Ensuite, il n faut pas oublier de mettre les règles appropriées au fichier créé:
$ sudo chmod a+r /etc/udev/rules.d/09-android.rules

On va rajouter notre user au groupe plugdev (n'oublier pas de remplacer YOURUSERNAME par le votre username)
$ sudo gpasswd -a YOURUSERNAME plugdev

Et maintenant, on redémarre udev :
$ sudo service udev restart

Le système est prêt pour la connexion, il ne manque plus que l'utilitaire, le logiciel qui va faire le pont entre ubuntu et le téléphone, un genre de driver ;)

Téléchargeons le SDK Android qui se trouve à cette adresse : http://developer.android.com/sdk/index.html

Aller dans le répertoire où vous avez télécharger le tar.gz du SDK et exécute les commandes suivantes :
$ tar xvzf android-sdk_r07-linux_x86.tgz
$ sudo mv android-sdk-linux_x86/ /opt/
$ sudo ln -s /opt/android-sdk-linux_x86/tools/adb /usr/bin/
$ adb forward tcp:8080 tcp:8080

adb est le logiciel qui permet de créer le proxy entre Ubuntu et le téléphone. Dans ce cas précis, le proxy est créé sur le port 8080. Vérifiez qu'il ne soit pas utiliser ou choisissez en un autre.

Avec ces commandes, j'ai décompresser l'archive, et déplacer le contenu dans le répertoire /opt/ et créer un lien symbolique vers adb dans /usr/bin afin d'y accéder facilement.

Aucun message d'erreurs ne devrait pas être retourné.
Il ne reste que deux choses à faire, lancer Proxoid sur le téléphone, mais nous le feront en dernier. Et paramétrer votre navigateur préféré ou encore le système pour passer par le proxy.

Pour Firefox, il y a l'extension SwitchProxy Tool. Pour Chrome, il y a Proxy Switchy. Créer un profil et paramétrer le ainsi :
Configuration Proxy Manuelle
Host : localhost Port 8080
No proxy for : localhost, 127.0.0.1

Maintenant on démarre Proxoid sur le téléphone android, and cocher "Démarrer".
Et miracle vous avez internet... n'est ce pas magnifique.

Bon ce n'est pas tout. Faut pouvoir utiliser tout ça facilement maintenant.

2°) L'utilisation

Personnellement je me suis fait des alias dans mon ~/.bashrc. Mais cela n'est pas obligatoire.

Il vous suffit de faire Alt+F2 ou d'ouvrir une console et de lancer, après avoir brancher le téléphone android au PC par USB, pour démarrer le proxy:
$ adb forward tcp:8080 tcp:8080

Pour l'éteindre, lancer la commande suivante :
$ adb kill-server
Et voilà, vous êtes prêts à travailler, ou même que surfer, d'où vous voulez !!

N'hésitez pas à laisser des commentaires...
Si vous avez des idées pour simplifier encore plus l'utilisation, par des scripts par exemple, n'hésitez pas non plus ;), merci à tous !

sources: http://doc.ubuntu-fr.org/proxoid
http://code.google.com/p/proxoid/wiki/installationLinux
http://www.humans-enabled.com/2009/12/how-to-tether-your-verizon-droid-as.html
http://www.overclock.net/linux-unix/749612-tethering-linux-machines-android-phones-without.html
http://www.linux-magazine.com/Online/Blogs/Productivity-Sauce/Tether-an-Android-Phone-Using-Proxoid

2 commentaires:

jean-louis a dit…

bonjour,j'ai suivi votre tuto qui est super;merci
Mais chez moi ça ne fonctionne pas,et je ne sais pas pourquoi;
Tout d'abord faut-il etre absolument en 3G pour utiliser proxoid ou en edge cela suffit?
J'ai également changé mon user agent dans firefox par celui du téléphone qui est lui un huawei 8230 de chez bouygues.je suis sous xubuntu 10.04 et tout nouveau.j'ai posé le même genre de question sur le forum mais personne n'a d'idées pour mon cas!!merci pour votre aide

Seb the Monster a dit…

Bonjour Jean-Louis,
Tout d'abord je m'excuse de ne pas avoir pu répondre plus tôt.
Je ne vois pas pourquoi cela ne fonctionnerait-il pas !
Dans un premier temps, pouvez-vous mettre à jour votre téléphone vers la version 2.2 d'Android (version dite Froyo) ?