
Para un proyecto que estoy realizando, necesitaba hacer funcionar un modem USB en una Raspberry Pi, específicamente un Huawei LTE E3372. Esto me va a permitír tener autonomía en cuestión de conexión a Internet, evitando tener que depender de redes WiFi.
Este modem en específico funciona de una forma diferente a los modems USB más comúnes, los que requieren realizar una conexión de forma manual; pero este modem funciona como un “ethernet hub” que hace creer a la Raspberry Pi que esta conectada por medio de ethernet y supongo hace la conexión más estable.
La mayoría de los modems USB tienen dos funciones, una de ellas es como memoria USB que permite tener acceso a los drivers y en algunos casos (si el modem USB lo permite) acceder a la tarjeta micro SD, la otra función es como modem USB. Por tal motivo, cuando el modem USB es insertado la primer función que se activa es la de memoria USB y si se quiere tener acceso a la función de modem USB hay que hacer el camio de forma manual.
El comando para hacer el cambio de memoria USB a modem USB es usb_modeswitch
y en la versión más reciente de Raspbian (2016-05-10) viene instalado. Para lograr identificar el ID
del dispositivo se debe ejecutar lsusb
$ lsusb
Bus 001 Device 007: ID 12d1:1f01 Huawei Technologies Co., Ltd.
Bus 001 Device 006: ID 1241:0003 Belkin
Bus 001 Device 005: ID 22b8:0938 Motorola PCS
Bus 001 Device 004: ID 0424:2517 Standard Microsystems Corp. Hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
En mi caso el modem USB esta identificado como 12d1:1f01
:
Bus 001 Device 007: ID 12d1:1f01 Huawei Technologies Co., Ltd.
Siendo 12d1
el ID del ‘vendor’ y 1f01
el ID del producto.
Con ese dato podemos hacer el cambio de dispositivo de almacenamiento a modem USB de la siguiente manera:
$ sudo usb_modeswitch -J -v 0x12d1 -p 0x1f01
El comando es usb_modeswitch
.
-J
es un parámetro específico para los dispositivos HuaweiHuaweiNewMode
-v
es para definir el ‘vendor’, en este caso0x12d1
-p
define el producto,0x1f01
$ sudo usb_modeswitch -J -v 0x12d1 -p 0x1f01
Look for default devices ...
product ID matched
Found devices in default mode (1)
Access device 008 on bus 001
Current configuration number is 1
Use interface number 0
Use endpoints 0x01 (out) and 0x81 (in)
USB description data (for identification)
-------------------------
Manufacturer: HUAWEI_MOBILE
Product: HUAWEI_MOBILE
Serial No.: 0123456789ABCDEF
-------------------------
Using standard Huawei switching message
Looking for active driver ...
OK, driver detached
Set up interface 0
Use endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
OK, message successfully sent
Reset response endpoint 0x81
Reset message endpoint 0x01
-> Run lsusb to note any changes. Bye!
Con esto el dispositivo va a entrar en el modo de modem y va a ser detectado como un ’ethernet hub’ (eth1
), se puede comprobar ejecutando el siguiente comando ifconfig -a
:
$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet6 addr: fe80::5925:cdbe:c95f:ec84/64 Scope:Link
UP BROADCAST 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 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth1 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.8.100 Bcast:192.168.8.255 Mask:255.255.255.0
inet6 addr: fe80::584f:751f:bb3e:e26b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:40 errors:0 dropped:0 overruns:0 frame:0
TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15118 (14.7 KiB) TX bytes:7565 (7.3 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 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 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Una vez realizado este “switch”, se puede hacer uso del modem y de la conexión a Internet.