Utilisation d’une clef 3g…

Je jette pêle-mêle ici les informations nécessaire à l’utilisation d’une clef 3g sous Debian (testing).
Dans mon cas, il s’agit d’une clef Nokia CS-10, que j’utilise avec la SIM jumelle de mon téléphone pro (orange).

Packages requis:

  • comgt pour gérer la partie code PIN;
  • ppp pour la partie connexion à Internet;
  • gsm-utils pour la partie envoyer/recevoir des SMS

Problème standard avec les clefs 3g:
Quand on les sorts de l’emballage et qu’on les branche sur un linux, on ne trouve pas la clef (pas de /dev/ttyUSBX, pas de /dev/ttyACMX ou /dev/nzX ou …).
Elles sont vues dans le meilleurs des cas comme un support de stockage ou un CD-ROM que l’on peut monter pour y trouver en général le mode d’emploi, les drivers windows et mac et les petits softs qui vous pourrissent le système.
Avec la Nokia CS-10, on contre ça avec un script et une règle udev qui désactivent et « éjectent » ce périphérique non voulu:
Le script (nokia-zerocd) se mets dans /lib/udev (avec les bons droits: 0755), et est assez basique:

#!/bin/sh
if [ -f /etc/udev/nokia-zerocd-noeject ]
then
exit 1
fi
minor=$(echo $2 | sed ‘s/.[0-9]*\.//’)
major=$(echo $2 | sed ‘s/\.[0-9]*$//’)
if [ « $major » -gt « 0 » ] || « $minor » -gt « 10 » ]
then
exit 1
fi
exit 0

La régle udev (99-nokia-zerocd.rules) se met dans /etc/udev/rules.d (avec les bons droits: 0644):

SUBSYSTEMS== »usb », SYSFS{idVendor}== »0421″, SYSFS{idProduct}== »060c », ACTION== »add », PROGRAM== »nokia-zerocd %M %s{serial} », RUN+= »/usr/bin/eject -s %k », OPTIONS+= »last_rule »

Il suffit ensuite de recharger les règles udev: sudo /etc/init.d/udev restart.

Maintenant, on peut brancher la clef (où l’on a pensé à insérer la SIM), et elle devrait bien être détectée au bout de quelques secondes (on devrait trouver deux nouveaux devices: /dev/ttyACM0 et /dev/ttyACM1).

Activer/Connecter la carte au réseau 3g:
Cela se fait assez facilement, avec la commande comgt:

# comgt -d /dev/ttyACM0
Enter PIN number: XXXX

Waiting for Regestration..(120 sec max)..
Registered on Home network: « Orange F »,2
Signal Quality: 19,0

Maintenant, on peut se servir de la clef pour envoyer/recevoir des SMS ou se connecter à Internet.

La partie simple: envoyer un SMS

gsendsms -d /dev/ttyACM0 0612345678 « mon message »

La partie plus « complexe »: se connecter à internet

Cette partie est plus complexe parce qu’il faut savoir que ces modems ne supportent pas tous le même jeu de commandes AT, donc, tout ce qui suit ne fonctionnera pas forcément avec d’autres modem (il faudra sûrement adapter le nom du device et une partie des commandes AT qui permettent d’initialiser le modem).

A la fin du fichier /etc/ppp/pap-secrets, ajouter une ligne (adapter en fonction de votre cas):

orange * orange

Créer le fichier /etc/ppp/peers/orange (vous pouvez l’appelez autrement) en pensant à adapter le nom du device, le nom d’utilisateur et le débit du device à votre cas:

ipcp-restart 7
lcp-echo-failure 99
lcp-echo-interval 0
lcp-restart 10
connect ‘/usr/sbin/chat -v -e -f /etc/ppp/peers/orange.chat’
/dev/ttyACM0
460800
crtscts
noipdefault
defaultroute
ipcp-accept-local
ipcp-accept-remote
noipx
noccp
usepeerdns
nodeflate
novj
novjccomp
nobsdcomp
nopredictor1
nopcomp
noaccomp
noauth
user orange

Créer le fichier /etc/ppp/peers/orange.chat (vous pouvez l’appeler autrement, mais penser à modifier le fichier précédent):

 » ATZ
OK-AT-OK « ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 »
OK-AT-OK ‘AT+CGDCONT=1, »IP », »orange-mib », » »,0,0
OK-AT-OK ‘ATD*99***1#
CONNECT ‘\d\c’

ATTENTION!
Le numéro de téléphone n’a manifestement pas d’importance (*99#, *99*1# marcheraient aussi bien) et ne dépend manifestement pas de l’opérateur (il est juste là parce qu’il en faut un), par contre, la commande AT qui permet de le composer peut changer d’une clef et d’un opérateur à l’autre (ATDnum ou ATDTnum en général).
La ligne CGDCONT dépend de votre opérateur et de votre abonnement, à vous de trouver la bonne ;). Celle de cette exemple marche bien pour un abonnement orange pro avec forfait data.
La première ligne devrait être la même partout, par contre, entre la première et les 3 dernières, ça peut-être totalement différent 🙂

Notes en vrac:

  • La même chose doit pouvoir marcher en branchant le téléphone en USB et en le configurant en mode modem
  • Si vous connecter le téléphone via bluetooth, le device devrait s’appeller /dev/rfcommX
  • En GPRS (2g), la vitesse du device est souvent 115200 bauds (pas comme les 460800 de la 3g/umts/hsdpa)

One comment

  1. Bonjour !

    Ce serait génial si vous pouviez ajouter vos information (certes relatives à un cas précis mais exportable à quelques autres) au wiki d’ubuntu-fr =)
    Je dis ç je dis rien !

    Merci et bonne route !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.