On commence par installer tout le nécessaire :

sudo apt-get install usb-modeswitch eject ppp wvdial usbutils

Un peu d'explications :

  • usb-modeswitch : Passer du modem au lecteur de carte-SD
  • eject : Ejecter le faux lecteur CD-ROM associé à la fonction modem (utilisé pour installer les pilotes Windows)
  • ppp : Connexion ppp
  • wvdial : Configuration de la connexion ppp et des commandes AT d'initialisation du modem
  • usbutils : Lister les périphériques USB

Après le premier branchement, on a accès à la carte micro-SD (f000):

lsusb
Bus 001 Device 009: ID 2357:f000

Pour activer le modem (9000):

sudo usb_modeswitch -v 2357 -p f000 -V 2357 -P 9000 -W -I -n -M '5553424312345678000000000000061e000000000000000000000000000000' -2 '5553424312345678000000000000061b000000020000000000000000000000'
lsusb
Bus 001 Device 009: ID 2357:9000

Pour que la modification soit persistante :

sudo nano /lib/udev/rules.d/40-usb_modeswitch.rules
# TP_LINK MA180
[...]
# TP_LINK MA260
ATTRS{idVendor}=="2357", ATTRS{idProduct}=="9000", RUN+="usb_modeswitch '%b/%k' -V 2357 -P 9000 -W -I -n -M '5553424312345678000000000000061e00000000000000000 0000000000000' -2 '55534243123456780000000000$
[...]
LABEL="modeswitch_rules_end"
[...]
# TP-Link MA260
ATTRS{idVendor}=="2357", ATTRS{idProduct}=="f000", RUN+="/usr/bin/eject -s %N"
sudo udevadm control --reload-rules

Débranchez et rebranchez la clef - ou bien redémarrer.

tail -f /var/log/syslog

Pour la connexion, on va utiliser wvdial :

sudo nano /etc/wvdial.conf
[Dialer Defaults]
Modem Type = Analog Modem
Stupid Mode = 1
ISDN = 0
New PPPD = yes
Phone = *99#
Modem = /dev/ttyUSB2
Username = 'orange';
Password = 'orange';
Baud = 460800
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
# Orange :
Init3 = AT+CGDCONT=1,"IP","orange"
#Init4 = AT$QCPDPP=1,1,"orange","orange"
[Dialer pin]
Modem Type = Analog Modem
Stupid Mode = 1
ISDN = 0
New PPPD = yes
Phone = *99#
Modem = /dev/ttyUSB2
Baud = 460800
Init1 = AT+CPIN=0000

Pour que la connexion soit persistante :
sudo nano /etc/network/interfaces
[...]
auto ppp0
iface ppp0 inet wvdial

Remarques :

  • La commande "wvdialconf" pourra vous aider à trouver les bons paramètres si vous utilisez un autre modem
  • Remplacez "orange" par les données de votre fournisseur (utilisateur, mot de passe et APN
  • Si votre carte SIM à un code PIN, vous devrez lancez "vwdial pin" avant toute connexion (remplacez "0000" par votre code PIN)
  • Certains modems 3G consomment énormément. Si vous avez une très bonne alimentation USB (≥ 2A) avec un bon câble assez court :
nano /boot/config.txt
[...]
# USB power manager from 0.6A to 1.2A
max_usb_current=1

Sources :
http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=12081#p12081
http://ubuntuforums.org/showthread.php?t=2197164&page=4#post_12961452
http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=100244
http://raspberrypi.stackexchange.com/questions/27708/is-setting-max-usb-current-1-to-give-more-power-to-usb-devices-a-bad-idea