Linux et PocketPC
Introduction
Cette page a pour but de décrire la connexion d'un PocketPC sous Windows CE à une machine Linux par l'intermédiaire d'une liaison série. Grâce à cette manipulation, le PocketPC à accès à toutes les ressources réseau de la machine Linux. Mieux encore, si la machine Linux est configurée pour faire de l' "IP forwarding", le PocketPC aura alors accès à l'intégralité des ressources réseau accessibles depuis la machine Linux.
Toutes les manipulations ont été faites sur le matériel suivant:
- PocketPC: HP Jornada 545, Windows CE 3.0
- Linux: Cyrix166+/16Mo, Mandrake 7.0, Kernel 2.2.16
Grâce a un adaptateur série RS-422 vers RS-232 on devrait pouvoir faire communiquer un Mac sous Linux avec le PocketPC (en cours de test).
Principe
WindowsCE permet de connecter le PocketPC à un modem par l'intermédiaire d'un câble série (fourni par le constructeur dans mon cas) pour établir une liaison PPP avec le fournisseur d'accès internet. La méthode employée ici consiste à être nous-même notre fournisseur d'accès: nous allons établir une connexion Point-à-Point (PPP) entre le PocketPC et Linux.
Configuration de la machine linux
La configuration est simple: elle consiste a lancer le démon PPP avec un script démarrage simulant un modem pour leurrer le PocketPC. On trouvera plus de détails dans les "manpages" de pppd et de chat, et dans le HOW-TO de PPP.
Le script de "chat" consiste à répondre "OK" à toutes les commandes modem envoyées par le PocketPC. Dans mon cas, ces commandes sont:
ATZ AT ATE0V1&C1&D2 ATS7=120 ATX4 ATDT1,10
Le script chat suivant répond "OK", et simule une connexion:
AT OK AT OK AT OK AT OK AT OK ATDT CONNECT
Le script de lancement "PocketPC", que je place dans /etc/ppp, est donc le suivant:
DEVICE=/dev/ttyS0 SPEED=115200 LOCAL=$(hostname) REMOTE=jornada /usr/sbin/pppd -detach noauth ${DEVICE} ${SPEED} asyncmap 0 netmask 255.255.255.0 lock crtscts local ${LOCAL}:${REMOTE} connect '/usr/sbin/chat AT OK AT OK AT OK AT OK AT OK ATDT CONNECT'
Je place la ligne suivante dans mon /etc/hosts:
192.168.55.2 jornada
Et finalement, je rajoute la ligne suivante à la fin de /etc/inittab, pour démarrer automatiquement mon démon PPP:
# run a PPP link to PocketPC ppp:2345:respawn:/etc/ppp/PocketPC > /dev/null 2>&1
Et pour prendre en compte cette modification, je tape "init q" dans un shell sous root.
A partir de ce moment, le démon PPP est actif et automatiquement démarré par init.
Configuration du PocketPC
- Tout d'abord il faut creer un nouveau "profil" modem: Menu "Windows"->"Paramètre".
- Puis on sélectionne "Modem":
- On "tape" sur "Nouvelle connexion..." pour créer un nouveau profil de connexion:
- En "tapant" sur le bouton "Avancé", on fixe les caractéristiques physiques de la ligne série:
- On fixe ensuite les informations TCP/IP et Serveurs de noms:
|
|
- En tapant sur "ok", on revient sur la configuration de la connexion, on peut ainsi "taper" "Suivant":
- On passe ensuite au dialogue suivant pour pouvoir terminer:
La configuration du PocketPC est terminée: nous somme maintenant capable d'établir une connexion PPP par un lien RS-232 vers la machine Linux.
Connexion de WindowsCE
- La manière la plus simple (il y en a d'autres) pour démarrer la connexion est de passer par le menu "Windows"->Programmes:
- Puis d'ouvrir le répertoire "Connexions", ou doit apparaitre la connexion configurée dans l'étape précédente. Dans notre cas elle s'appelle "Linux":
- En "tapant" sur "Linux" (!), on ouvre le dialogue de connexion:
- Il n'y a plus qu'a "taper" sur "Se connecter" pour lancer la connexion PPP.
Le PocketPC a maintenant une connexion TCP/IP via PPP vers la machine Linux. On peut maintenant "pinger" le PocketPC depuis la machine Linux (son adresse est dans notre cas 192.168.55.2), mieux encore "Internet Explorer" du PocketPC peut servir pour naviguer sur internet/intranet par l'intermédiaire de notre machine Linux transformée en passerelle PPP<->IP.
Pour tout commentaire, vous pouvez me contacter à l'adresse: Laurent.Vivier@libertysurf.fr