linux_love_3gkey

Utiliser une clef 3G sur un raspberry Pi

Les clefs 3G sont de l’histoire ancienne maintenant que tout le monde est équipé d’un smartphone qui fait point d’accès wifi en 2s ! Cependant, celles-ci ont droit à une nouvelle vie dans nos solutions domotique pas chères 🙂

Vous pouvez vous en servir pour envoyer et recevoir des SMS et déclencher des actions en fonction. Les plus poilus pourront même aller jusqu’à s’en servir comme accès internet de secours en ouvrant une connexion internet dessus.

Ces clefs sont quasiment toutes sur le même modèle : lorsqu’on les branche sur une machine, elles se font passer pour une clef USB de stockage, sur lequel se trouve un bout de logiciel que vous pouviez installer sous Windows XP…
Une fois ce logiciel installé, celui-ci interagit avec la clef en lui disant que tout est OK et qu’elle peut passer en mode modem. Celle-ci se démonte de la machine et pif paf pouf se transforme en carte réseau USB !

Cette mécanique, prévue pour nous simplifier la vie sous windows, est une vraie galère sous linux. En effet, à chaque fois qu’on branche la clef, linux voit donc un stockage de masse, au lieu de voir notre carte réseau… Il faut donc produire des instructions particulières pour forcer la clef à se mettre en mode modem. Par dessus cette problématique, on ajoute le fait que les clefs ne se présente pas toujours sous leur vrai nom, il faut donc forcer certaines configurations à la main…

Ayant plusieurs fois subit cette galère, voici un petit billet qui explique comment monter une clef 3G sur un debian. Ce tutorial va aller jusqu’au point où la clef est montée dans /dev/ttyUSB* . Vous pourrez ensuite utiliser votre outil préféré gammu, jeedom ou un script python maison par ex pour vous brancher sur ce point de montage.

Identification

Ces 2 commandes vont vous servir :

lsusb vous remonte les équipements USB identifiés par votre machine.

Dans l’exemple ci-dessous, on vois ma clef 3G huawei identifiée techniquement (pas de numéro de model commercial par ex)

dmesg  remonte les logs relatives au matériel, vous y trouverez des informations lorsque vous branchez votre matériel.

Dans l’exemple ci-dessous, on voit que ma clef 3G a d’abord été montée en tant que stockage de masse, puis plus tard « transformée » en modem.

Transformation

Vous aurez constaté dans les commandes ci-dessus est monté en tant que   12d1:141b alors que le système l’a identifié comme   12d1:1446 . Il s’agit donc du même vendor Id 12d1 mais pas du même product Id qui passe de 1446 à 141b. Une petite recherche sur interne avec le modèle de ma clef (une Hawei E1752 de Orange) m’a permis de trouver cette référence.

Ainsi, la commande suivante permet de transformer ma clef en modem 3G:

Cependant, Cendrillon redeviendra citrouille au prochain reboot ! Il faut donc trouver un moyen de pérenniser cette transformation.

Transformation persistante

Voici une méthode avec les valeurs de ma propre clef, évidement, il vous faudra adapter avec vos propres vendor et product Ids.

Configuration de usb_modeswitch

Premièrement, on ajoute l’instruction suivante dans le fichier de configuration de usb_modswitch

Ensuite, on ajoute le fichier qui configure la transformation

Ces deux actions devraient suffirent, mais un bug dans usb_modeswitch 2.2.0 m’a obligé à produire un petit script pour le contourner. Vous pouvez tenter de le contourner en installant la version 2.2.5 (source) mais qui n’est pas encore dans la branche stable à l’heure où j’écris ces lignes.

 

Forcer l’application de la nouvelle configuration

Il s’agit très simplement de produire un script qui se lance à la fin du boot de la machine (source).

On crée le script dans /etc/init.d . Vous pouvez l’appeler comme bon vous semble; ici, je l’ai appelé usb_modswitch .

Vous pourrez trouver de la doc sur ce sujet par ici.

On lui applique les bons droits :

Enfin, on l’ajoute dans la liste des scripts de démarrage:

update-rc se chargera de faire les liens qui vont bien en fonction des règles que vous aurez mises dans l’entête LSB.

Notez que vous pouvez supprimer à tout moment celui-ci très simplement à l’aide de la commande remove

That’s it !

Au reboot, votre clef 3G est à présent bien reconnue en tant que modem et est montée dans /dev/ttyUSB*

 

Une réponse à “Utiliser une clef 3G sur un raspberry Pi

Laisser un commentaire

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