Le nom RACEME n'est pas anglais et ne signifie en aucun cas "Race Me". Ce nom provient d'un terme chimique. Un indice: cherchez ce que sont des énantiomères ou des molécules chirales...  Home   Curriculum Vitae   Zaurus   Debian   Dev   Bazar   RioUtil   Projets Imac   Atari   mp3 
  PPP  


Connexion PPP:

Il existe de nombreuses manières de connecter le Zaurus sur un réseau comme la connexion à travers une liaison USB (à ce sujet il est fortement conseillé d'utiliser le module usbnet présent dans le noyau Linux 2.4.21pre7 plutôt que le patch usbdnet qui ne fonctionne pas correctement), une carte ethernet ou wifi sur l'interface compact flash. Il est aussi possible de créer une connexion PPP par l'intermédiaire de la liaison infra-rouge. Cette méthode présente plusieurs avantages et désavantages:



Paramétrage PPP du zaurus:

J'ai inclus ici deux fichiers supplémentaires à installer sur le Zaurus. Ces fichiers permettent de gérer correctement les DNS attribués par le fournisseur de service et de créer un fichier journal des sessions. Ainsi il est aisé de tenir à jour le bilan de ses consommations.

#!/bin/sh

LOGFILE=/etc/ppp/ppp.log

cp -f /etc/resolv.conf /etc/ppp/resolv.conf.orig
cp -f /etc/ppp/resolv.conf /etc/resolv.conf

date +"Date:            %Y/%m/%d %H:%M" >/etc/ppp/current
echo "Pid:             $PPPD_PID"     >>/etc/ppp/current
echo "Tty:             $PPP_TTY"     >>/etc/ppp/current
echo "Ttyname:         $PPP_TTYNAME" >>/etc/ppp/current
echo "Speed:           $PPP_SPEED"   >>/etc/ppp/current
echo "Interface:       $PPP_IFACE"   >>/etc/ppp/current
echo "Local address:   $PPP_LOCAL"   >>/etc/ppp/current
echo "Remote address:  $PPP_REMOTE"  >>/etc/ppp/current
if [ -n "$DNS1" ]; then
        echo "DNS:             $DNS1" >>/etc/ppp/current
fi
if [ -n "$DNS2" ]; then
        echo "DNS:             $DNS2" >>/etc/ppp/current
fi

Ce fichier (/etc/ppp/ip-up.d/local) est exécuté automatiquement par PPP lors de l'établissement de la connexion. Nous allons effectuer deux opérations:

  • Ecrire les paramètres de la connexion dans le fichier /etc/ppp/current qui pourra être utilisé par une application ou l'utilisateur pour obtenir des renseignements;
  • Sauvegarder l'ancien fichier /etc/resolv.conf et en créer un nouveau avec les paramètres DNS de la connexion en cours.
#!/bin/sh

LOGFILE=/etc/ppp/ppp.log

date +"%Y/%m/%d|%H:%M|$PPP_SPEED|$PPP_LOCAL|$PPP_REMOTE
|$CONNECT_TIME|$BYTES_SENT|$BYTES_RCVD" >>$LOGFILE

mv /etc/ppp/resolv.conf.orig /etc/resolv.conf
echo "No connection" > /etc/ppp/current

Ce fichier (/etc/ppp/ip-down.d/local) est exécuté automatiquement par PPP lors de la coupure de la connexion. Nous allons effectuer à nouveau deux opérations:

  • Ecrire les paramètres de la session dans le fichier /etc/ppp/ppp.log qui pourra être utilisé par une application ou l'utilisateur pour surveiller sa consommation: chaque ligne de se fichier représente une session et les 3 derniers paramètres contiennent la durée en seconde, le nombre d'octets envoyés et le nombre d'octets reçus ;
  • Restaurer l'ancien fichier /etc/resolv.conf.

Le fichier /etc/ppp/ppp.log contient les champs suivants: la date, l'heure de fin de session, la vitesse de la ligne, l'adresse locale, l'adresse distante, la durée de la session, le nombre d'octets envoyés et le nombre d'octets reçus. Voici à quoi ressemble de fichier:

2003/04/20|15:46|115200|192.168.0.12|192.168.0.11|439|107194|55920
2003/04/20|16:09|115200|10.164.61.5|192.168.254.254|135|4891|6282

Le fichier /etc/ppp/current contient les informations de la connexion en cours: la date et l'heure de début de la session, le numéro de process de pppd, le périphérique utilisé par pppd, la vitesse de la ligne, l'interface PPP associée, l'adresse locale, les adresses IP des DNS attribués. Voici à quoi ressemble de fichier:

Date:            2003/04/20 17:11
Pid:             980
Tty:             /dev/ircomm
Ttyname:         ircomm
Speed:           115200
Interface:       ppp0
Local address:   192.168.0.12
Remote address:  192.168.0.11
DNS:             192.168.0.253
DNS:             192.168.0.254


Connexion infra-rouge avec l'ordinateur:

Nous allons commencer par le plus simple (quoique): la liaison avec un ordinateur de bureau ou un ordinateur portable. Le plus difficile sera de faire fonctionner la liaison infra-rouge sur l'ordinateur. Dans le cas d'un portable, il suffit en général d'activer l'infra-rouge dans le BIOS pour que celui-ci soit accessible par l'intermédiaire d'un port série. Dans le cas d'un ordinateur de bureau, il faudra vous équiper d'un module IrDA. Il existe plusieurs modèles à brancher sur la carte-mère, sur le port série ou le port USB. J'ai tenté ma chance avec un module Wexim (pub gratuite et non interressée). Une fois installé et branché sur ma carte mère (une Asus P3B-F) et activé dans le BIOS, je n'ai eu qu'à installer le paquet irda-tools sur ma Debian (la configuration par debconf a été très simple: activation du discovery et sélection de port série /dev/ttyS1).

Pour toute info concernant l'IrDA vous pouvez vous référer à l'excellent Linux Infrared HOWTO qui détaille tous les cas de figure.

connect /bin/true
noauth
persist
holdoff 0
local
/dev/ircomm0
115200
ms-dns 192.168.0.253
ms-dns 192.168.0.254
192.168.0.11:192.168.0.12

Une fois la liaison infra-rouge correctement gérée sur l'ordinateur il suffit de créer un fichier de configuration PPP ( /etc/ppp/peers/irda) afin de paramétrer un serveur.

Les options importantes sont: le périphérique sur lequel établir la liaison (/dev/ircomm0), la vitesse (115200), les DNS du réseau local (facultatif; sur les lignes ms-dns), l'adresse local au serveur (192.168.0.11) et l'adresse attribuée au zaurus (192.168.0.12).

connect /bin/true
noauth
persist
holdoff 0
115200
local
defaultroute
usepeerdns
/dev/ircomm

Sur le zaurus, nous allons aussi créer un fichier de configuration (/etc/ppp/peers/irda).

Les options importantes sont: le périphérique sur lequel établir la liaison (/dev/ircomm), la vitesse (115200), l'ordre d'utiliser les DNS attribués par le serveur (usepeerdns).

Sur le Zaurus, il suffit de choisir Enable IrDA, puis Enable Discovery. Théoriquement, si les deux modules infra-rouge sont en communication, vous devriez voir apparaitre un message du style Found toto si votre ordinateur s'appelle toto. Si ce n'est pas le cas je vous conseille fortement de chercher de l'aide dans le Linux Infrared HOWTO.

Il suffit alors de lancer sur le serveur la commande suivante: pppd call irda et sur le zaurus: pon irda. Si la connexion fonctionne, vous devriez voir apparaitre le fichier /etc/ppp/current contenant les informations de la connexion en cours. Si ce n'est pas le cas, je vous conseille de rajouter dans le fichier /etc/ppp/peers/irda les deux lignes suivantes: nodetache et debug afin de voir les messages d'erreur sur la console.

echo 1 >/proc/sys/net/ipv4/conf/ppp0/proxy_arp
echo 1 >/proc/sys/net/ipv4/ip_forward
route add -host 192.168.0.12 gw 192.168.0.11 ppp0
arp -Ds 192.168.0.12 eth0 pub

Pour que le Zaurus puisse atteindre votre réseau et sortir vers internet il existe deux solutions: appliquer à votre serveur des règles de Source NAT (ou Masquerading) depuis l'adresse du Zaurus ou utiliser les fonctions de bridge afin de rendre directement rendre accessible le Zaurus au réseau interne. Pour ma part j'ai utilisé les fonctions de bridge grâce aux commandes suivantes:



Connexion infra-rouge/GPRS avec un téléphone mobile:

J'ai effectué ces tests avec un téléphone mobile Sagem MyX-5d et un abonnement data-pocket GPRS de chez Bouygues. Les manipulations présentées ici doivent fonctionner avec n'importe quel téléphone GPRS et n'importe quel opérateur. Dans le cas d'un opérateur différent de Bouygues il sera peut-être nécessaire de changer certains paramètres (Google est votre ami).

En ce qui concerne le paramétrage du téléphone, cela est très simple: il n'y en a aucun !

En ce qui concerne le Zaurus, nous allons créer 3 fichiers:

connect /etc/ppp/bot-connect-chat
disconnect /etc/ppp/bot-disconnect-chat
noauth
#debug
#nodetach
/dev/ircomm
115200
nocrtscts
local
ipcp-accept-local
ipcp-accept-remote
defaultroute
usepeerdns

Le fichier /etc/ppp/peers/bot contient les paramètres généraux de la connexion PPP. On y retrouve les mêmes paramètres que précédemment lors de la connexion vers l'ordinateur.

#!/bin/sh

exec chat				\
	TIMEOUT	15			\
	ECHO	ON			\
	ABORT	"\nBUSY\r"		\
	ABORT	"\nERROR\r"		\
	ABORT	"\nNO ANSWER\r"		\
	ABORT	"\nNO CARRIER\r"	\
	ABORT	"\nNO DIALTONE\r"	\
	ABORT	"\nRINGING\r\n\r\nRINGING\r"\
	''	\rAT			\
	TIMEOUT	15			\
	SAY	"Press CTRL+C to stop"	\
	SAY	"\nDefining PDP...\n"	\
	OK	ATE1			\
	OK	'AT+cgdcont=1,"IP","ebouygtel.com","0.0.0.0",0,0'	\
	OK	ATD*99***1#		\
	TIMEOUT	25			\
	SAY	"\nWaiting for connect...\n"	\
	CONNECT	""			\
	SAY	"\nConnected!\n"

Le fichier /etc/ppp/peers/bot contient les paramètres de connexion vers la passerelle GPRS de Bouygues.

#!/bin/sh

exec chat -V -s -S			\
	ABORT	"\nBUSY\r"		\
	ABORT	"\nERROR\r"		\
	ABORT	"\nNO DIALTONE\r"	\
	SAY	"\nSending break\n"	\
	""	"\K"			\
	""	"+++ATH"		\
	SAY	"\nPDP context detached\n"

Le fichier /etc/ppp/bot-disconnect-chat contient les paramètres pour se déconnecter de la passerelle GPRS de Bouygues.

Il suffit alors de lancer sur le zaurus: pon bot. Si la connexion fonctionne, vous devriez voir apparaitre le fichier /etc/ppp/current contenant les informations de la connexion en cours. Si ce n'est pas le cas, je vous conseille de rajouter dans le fichier /etc/ppp/peers/bot les deux lignes suivantes: nodetache et debug afin de voir les messages d'erreur sur la console.