Après la clef 3G TP-Link MA260 et la Huawei E303, je vous propose une autre Huawei : E3131.

Après le branchement de la clef, on obtient un pseudo lecteur CD-ROM contenant le driver Windows Ⓒ :

lsusb
Bus 001 Device 024: ID 12d1:15ca Huawei Technologies Co.

On va la passer en mode Modem :

sudo usb_modeswitch -v 12d1 -p 15CA -M '55534243123456780000000000000011062000000100000000000000000000'

lsusb
[...]
Bus 001 Device 024: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

ifconfig
[...]
wwan0     Link encap:Ethernet  HWaddr 00:X:X:X:X
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Pour automatiser le changement de mode et le rendre persistant, on va utiliser comme à chaque fois usb_modeswitch :

sudo nano /etc/usb_modeswitch.d/12d1\:15ca

#Huawei E3131 (Variant)
TargetVendor= 0x12d1
TargetProductList="1506"
MessageContent="55534243123456780000000000000011062000000100000000000000000000"

Avec la règle udev qui va bien :

sudo nano /lib/udev/rules.d/40-usb_modeswitch.rules

[...]

LABEL="modeswitch_rules_begin"

[...]

# Huawei E3131 (Variant)
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="15ca", RUN+="usb_modeswitch '%b/%k'"

[...]

LABEL="modeswitch_rules_end"

Pour prendre en compte de cette nouvelle règle sans redémarrage :

sudo udevadm control --reload-rules

Vient ensuite la configuration du dialer. En ligne de commande j'utilise wvdial (disponible dans les dépôts) :

sudo nano /etc/wvdial.conf

[Dialer Defaults]
Modem           = /dev/ttyUSB0
Modem Type      = Analog Modem
Baud            = 460800
ISDN            = 0
Stupid Mode     = 1
New PPPD        = yes
Dial Command    = ATD
Phone           = *99#
Username        = { }
Password        = { }
Init1           = ATZ
Init2           = ATQ0 V1 E1 S0=0
Init3           = AT+CFUN=1,0
Init4           = AT+CGDCONT=1,"IP","apn.de.votre.fournisseur"

Pour tester :

sudo wvdial CYM
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0
ATQ0 V1 E1 S0=0
OK
--> Sending: AT+CFUN=1,0
AT+CFUN=1,0
OK
--> Sending: AT+CGDCONT=1,"IP","apn.de.votre.fournisseur"
AT+CGDCONT=1,"IP","apn.de.votre.fournisseur"
OK
--> Modem initialized.
--> Sending: ATD*99#
--> Waiting for carrier.
ATD*99#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Tue Oct 18 11:28:09 2016
--> Pid of pppd: 3959
--> Using interface ppp0
--> pppd: ���vx[1b]�[01]�[1c]�[01][05]
[...]
--> local  IP address 10.X.X.X
--> remote IP address 10.X.X.X
--> primary   DNS address 194.X.X.X
--> secondary DNS address 194.X.X.X
[...]

On termine par la configuration réseau persistante :

sudo nano /etc/network/interfaces

[...]
# Huawei E3131 (modem mode)
allow-hotplug wwan0
iface wwan0 inet wvdial

# Generic PPP 3G Modem
auto ppp0
iface ppp0 inet wvdial
[...]

And voilà :)