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: XXXXWaiting 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 (ATD
num ou ATDT
num 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 les460800
de la 3g/umts/hsdpa)
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 !