Internet via OpenBSD, Orange et le Nokia N70

Ce document explique de façon aussi claire que possible comment vous connecter à Internet si vous avez un PC (de préférence un portable) sous OpenBSD, un forfait mobile Orange en France et un mobile. Je n'ai testé qu'un Nokia N70 branché en USB, c'est donc un document principalement adapté aux téléphones mobile capables de parler UMTS, GPRS, 3G, etc. Je ne comprends pas moi-même toutes ces normes, je sais juste qu'à la fin de l'explication je suis capable de faire ssh et pinger google, vu les prix je n'ai pas testé en long et en large. Dernière mise à jour: 2007-04-08

Branchements

En branchant son Nokia N70 par le port USB, depuis OpenBSD 4.1 on obtient le message suivant:

umodem0 at uhub1 port 1 configuration 1 interface 8<br/>
umodem0: Nokia Nokia N70, rev 2.00/0.00, addr 3, iclass 2/2<br/>
umodem0: data interface 9, has no CM over data, has break<br/>
umodem0: status change notification available<br/>
ucom0 at umodem0

À partir de là, la procédure est quasiment identique à une connexion PPP classique. Ce qui est important à ce stade c'est d'être certain d'avoir le driver ucom qui s'attache à votre matériel. C'est ucom qui agit comme un tty, un port série.

Configuration ppp

Dans le répertoire /etc/ppp/peers (à créer s'il n'existe déjà), créez un fichier orange:

/dev/ttyU0
115200
noipdefault
defaultroute
crtscts
deflate 0
bsdcomp 0
noccp
noaccomp
novj
novjccomp
lock
noauth
#debug
#kdebug 2
user orange
usepeerdns
connect "/usr/sbin/chat -v -f /etc/ppp/peers/orange.chat"

C'est le fichier de configuration de pppd, il lui demande de se connecter sur le "port série" ttyU0 à la vitesse de 115200 bauds avec le nom d'utilisateur "orange" et d'utiliser le fichier orange.chat pour la négociation de connexion, les commandes AT. Ce fichier est copié de la présentation de Felix Kronlage avec quelques modifications.

Vous devez également créer le ficher <tt>orange.chat</tt> qui est appelé depuis le fichier précédent:

ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT       "NO DIALTONE"
""  AT
OK  AT+CGDCONT=1,"IP","orange.fr"
OK  ATDT*99***1#
'CONNECT'   '\c'
'TIMEOUT'   '5'

Ici aussi le fichier est largement inspiré de Felix Kronlage avec pour principale différence le point d'accès "orange.fr" qui a été trouvé sur le site de Arisme

Finalement, le fichier contenant le mot de passe, rajoutez cette ligne à la fin, si jamais d'autres lignes sont déjà présentent, /etc/ppp/pap-secretsa:

*           "orange"        "xxxx"

Remplacez le "xxxx" par le code qui vous sera délivré en appelant le numéro #125# sur votre mobile.

Décollage

Si vous n'avez pas encore votre périphérique réseau ppp, il suffit de le créer avec la commande:

ifconfig ppp0 create

Ensuite pour démarrer la connexion il faut taper:

pppd call orange

Dépannage, débuggage

Si par hasard quelquechose venait à ne pas marcher (ce qui est garantit à la première utilisation), il faudra mettre les mains dans le cambouis. À commencer par les logs, notez les deux lignes commentées dans le fichier de configuration pppd "orange", en les décommentants vous laisserez pppd déverser sa prose dans /var/log/messages et /var/log/daemon. Il peut être intéressant de nettoyer sa table de routage (route flush). Voici une connexion qui a fonctionnée:

pppd: pppd 2.3.5 started by tamentis, uid 0
pppd: Serial connection established.
pppd: Using interface ppp0
pppd: Connect: ppp0 <--> /dev/ttyU0
pppd: sent [LCP ConfReq id=0x1 <magic 0x6c508db0> <pcomp>]
pppd: rcvd [LCP ConfRej id=0x1 <magic 0x6c508db0> <pcomp>]
pppd: sent [LCP ConfReq id=0x2]
pppd: rcvd [LCP ConfAck id=0x2]
pppd: rcvd [LCP ConfReq id=0x0 <auth pap> <mru 1500> <asyncmap 0xa0000>]
pppd: sent [LCP ConfAck id=0x0 <auth pap> <mru 1500> <asyncmap 0xa0000>]
pppd: sent [PAP AuthReq id=0x1 user="orange" password="xxxx"]
pppd: rcvd [PAP AuthAck id=0x1 ""]
pppd: Remote message:
pppd: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
pppd: rcvd [IPCP ConfReq id=0x0 <addr 10.6.6.6>]
pppd: sent [IPCP ConfAck id=0x0 <addr 10.6.6.6>]
pppd: rcvd [IPCP ConfNak id=0x1 <addr 10.2.37.91>]
pppd: sent [IPCP ConfReq id=0x2 <addr 10.2.37.91>]
pppd: rcvd [IPCP ConfAck id=0x2 <addr 10.2.37.91>]
pppd: local  IP address 10.2.37.91
pppd: remote IP address 10.6.6.6

Forfait, prix

Un forfait "classique" d'Orange vous permet d'utiliser ce service, il vous en coutera 0.05 € pour 10Ko ou par minute. Pour pas très cher en plus vous pouvez avoir un forfait "intense" avec quelques mo (10mo pour 1h de voix) inclus dans le forfait. Largement de quoi faire un peu de ssh, lire ses mails, surtout que les 10ko hors forfait sont à 0.1 €.

Conclusion

Si vous avez des questions, des remarques... Ce document a été tapé en speed après le succès d'une première connexion, il contient des fautes, c'est certain. Le but était principalement d'offir un point de départ.

Bertrand Janin <b@janin.com> · Powered by Python, OpenBSD, a teashpoon of WTF & the spirit of the UNIX gods.