Hacer funcionar un módem 3G USB en la Raspberry Pi puede ser un tema peliagudo. Es posiblemente la tarea con la que más tiempo he perdido en varias Raspberry Pis y con diferentes modelos de módem USB. Uno de los motivos es que estos «pinchos USB» suelen llevar una memoria interna, o una ranura para una tarjeta microUSB, y la Raspberry Pi no lo reconoce como un módem sino como un dispositivo de almacenamiento. Esta es la intención de los fabricantes, para que al conectarlo a un PC con Windows, este automáticamente instale los drivers desde el almacenamiento.
Con la Raspberry Pi A+ con la que estoy trasteando ahora mismo, parece que no voy a tener este problema. Aún así, es mejor hacer mil pruebas reiniciando la Raspberry Pi y ver si lo sigue reconociendo, desconectar y reconectar el modem 3G USB, para ver si lo reconoce sin problemas en todas las situaciones. Antes de nada, hay que asegurarse de que nuestra Raspberry Pi está bien alimentada, pues el modem 3G puede consumir bastante potencia.
Sin embargo, mi gozo en un pozo. Aunque la descripción «HSPA modem» parecía apuntar a que estaba bien reconocido, no es así. Si sigo los pasos de los apartados siguientes, no me funciona. Así que me temo que hay que recurrir a usb-modeswitch y hacer que se reconozca como módem.

El Desafío del Reconocimiento del Dispositivo USB
El problema fundamental radica en cómo los módems 3G USB se presentan al sistema operativo. Inicialmente, muchos de estos dispositivos se configuran en un modo de almacenamiento masivo. Esta estrategia, aunque conveniente para usuarios de Windows que buscan una instalación automática de controladores, presenta un obstáculo para sistemas como Raspberry Pi OS (anteriormente Raspbian), que esperan identificar el dispositivo directamente como un módem para poder establecer conexiones de red.
La Raspberry Pi, en sus primeras interacciones con el módem, podría interpretarlo como una unidad de almacenamiento, impidiendo el acceso a sus funciones de comunicación celular. Esto se debe a que el identificador del dispositivo (Vendor ID y Product ID) que se presenta inicialmente no corresponde al esperado para un dispositivo de módem.
Introducción a usb-modeswitch
Para superar esta barrera, se utiliza una herramienta llamada usb-modeswitch. Este programa está diseñado específicamente para gestionar dispositivos USB que cambian de modo. En el contexto de los módems 3G, usb-modeswitch detecta el dispositivo en su modo de almacenamiento inicial y, basándose en su configuración, le envía comandos para que cambie a su modo de módem funcional.
Googleando, parece que el ID correcto para el módem Huawei E173 es el 12d1:1433 (y no el 12d1:1446). Este cambio de ID es crucial, ya que indica que el dispositivo ahora se presenta al sistema como un módem GSM, listo para ser configurado para conexiones de banda ancha.
Comportamiento Inesperado y Soluciones
Ocurren cosas raras. Es decir, ¡se ha cambiado correctamente solo! Aparece en ttyUSB0 el módem GSM, en ttyUSB1, ttyUSB2 y ttyUSB3 tres módems GSM, y luego la tarjeta SD. Y el usb_modeswitch lo ha cambiado a 12d1:1433. Es justo lo que quiero, ¡pero yo no he hecho nada para merecerme esto!, simplemente desconectarlo y volverlo a conectar.
Creo que ya sé por qué puede ser. Pruebo reiniciando, desconectando y volviendo a conectar, y compruebo que en ocasiones se reconoce como dispositivo correcto (12d1:1433, es decir, que usb_modeswitch hace bien su trabajo), pero en otras no. Este comportamiento errático sugiere que los tiempos de inicialización del dispositivo USB y la ejecución de usb-modeswitch no siempre se alinean perfectamente.
Cómo Configurar Tarjeta de Red a 1000 Mbps en Linux | Configuración Persistente Paso a Paso
Profundizando en usb-modeswitch
Vamos a ver qué es lo que pasa en las tripas de usb-modeswitch. Para ello, empezamos editando el fichero /etc/usb_modeswitch.conf haciendo que EnableLogging=1. De esta forma, el fichero de registro /var/log/usb_modeswitch_XXXXXXXXXXXX contendrá más información. En la página web de Usb_modeswitch se explica muy bien el funcionamiento del programa.
Como en mi caso parece ser que, cuando funciona, usb_modeswitch reconoce bien el dispositivo y lo cambia correctamente, esto significa que la configuración está ya en la base de datos. Continuo probando. Esto es lo que lee automáticamente, como puedo comprobar en el log.
Podemos hacer que usb-modeswitch pase de esta configuración y lea la que nosotros queramos, si colocamos el fichero correspondiente en /etc/usb_modeswitch.d/. (ojo con el \:)
Como parece que pueda ser un problema de tiempos, añado WaitBefore=2 para que espere 2 segundos mientras se configura. Hago varias pruebas, aumentando el número de segundos. Me deja de funcionar cuando lo conecto en caliente (desconectar y reconectar mientras está funcionando), y sólo en ocasiones funciona cuando reinicio la Raspberry Pi.
Elimino el fichero que había colocado en /etc/usb_modeswitch.d/, edito el fichero /etc/usb_modeswitch.conf y vuelvo a dejar EnableLogging=0 para dejarlo todo como estaba originalmente. Reinicio un par de veces con el modem enchufado y parece que todo funciona.
Conexión a Internet: Sakis3g y UMTSKeeper
El programa más utilizado para realizar la conexión 3G es Sakis3g. Sin embargo, antes de lanzarnos a instalarlo, tenemos que saber que es muy frecuente perder la conexión 3G cada cierto tiempo, por lo que se suele recurrir a otro programa, UMTSKeeper, que está constantemente comprobando la conexión y recuperándola cuando se cae.
Así que empezamos. Y por último, configuro UMTSKeeper. Consulto el fichero /var/log/umtskeeper.log y veo que está todo en orden.

Consideraciones Adicionales y Experiencias en Otros Sistemas Operativos
La experiencia con el módem Huawei e173 no se limita a Raspberry Pi. En sistemas como Ubuntu, la configuración puede variar según la versión. Por ejemplo, en Ubuntu 12.04 LTS, la configuración es relativamente sencilla: se accede a "Conexiones de Red" desde el Dash y se crea una nueva conexión de "Banda Ancha Móvil". Sin embargo, en versiones anteriores, como la 10.10 Maverick Meerkat, el controlador incorporado podía presentar problemas de cortes de señal.
En estos casos, la instalación de la paquetería usb-modeswitch es obligatoria. Para ello, se requiere una conexión a Internet funcional para descargar los paquetes usb-modeswitch-data_20110714-1_all.deb y usb-modeswitch_1.1.8-1_xxxx.deb (donde xxxx corresponde a la arquitectura del sistema, amd64 para 64 bits o i386 para 32 bits). Estos paquetes contienen las especificaciones de numerosos módems conmutados.
El proceso de instalación en Ubuntu implica descargar ambos componentes y luego instalarlos con gdebi. Es posible que se advierta de la existencia de un paquete anterior en un canal de software, lo cual generalmente se puede omitir.
Configuración de Routers y Módems Huawei en General
Aunque el enfoque principal es la Raspberry Pi, es útil mencionar cómo se configuran estos dispositivos en otros contextos, como routers. Para configurar un router Huawei, los pasos generales suelen incluir:
- Conexión Inicial: Conectar el dispositivo (teléfono o módem) a la red Wi-Fi predeterminada del router.
- Acceso a la Aplicación de Gestión: Abrir la aplicación de gestión del router (como AI Life) y navegar a la configuración.
- Creación de Red Wi-Fi: Seleccionar la opción para crear una red Wi-Fi.
- Obtención de Credenciales: Contactar al proveedor de servicios de Internet para obtener la Cuenta de banda ancha y la Contraseña de banda ancha.
- Configuración de la Red: Establecer el Nombre de la red Wi-Fi (SSID), la Contraseña de Wi-Fi y la Contraseña de inicio de sesión.
- Conexión de Dispositivos Adicionales: Para conectar dispositivos por cable, usar un cable Ethernet para conectarlos al puerto LAN del router.
El router verificará automáticamente el modo de acceso a Internet. Al configurar los ajustes de Internet del router, se puede acceder a la página de gestión web ingresando la dirección IP predeterminada en la barra de direcciones del navegador. En el menú de opciones desplegable de Modo de Acceso a Internet, se selecciona el modo deseado. Si es la primera vez que se configura, se iniciará un Asistente para Internet. Es fundamental seleccionar un modo de acceso a Internet de acuerdo con el entorno de red actual.
La Importancia de la Alimentación Eléctrica
Un aspecto crítico, especialmente en sistemas embebidos como la Raspberry Pi, es la alimentación eléctrica. Los módems 3G USB son conocidos por su consumo de energía, que puede ser significativo. Una fuente de alimentación insuficiente o inestable para la Raspberry Pi puede provocar comportamientos erráticos en el módem, incluyendo desconexiones o la incapacidad de ser reconocido correctamente. Es vital asegurarse de que la Raspberry Pi esté alimentada con una fuente de alimentación adecuada que pueda suministrar la corriente necesaria tanto para la placa como para el módem USB conectado.
Consideraciones sobre la Estabilidad de la Conexión
La estabilidad de la conexión 3G es un factor que a menudo preocupa a los usuarios. Las señales de radiofrecuencia, aunque potentes y capaces de abarcar grandes distancias, pueden verse afectadas por diversos factores, como la distancia a la torre celular, obstáculos físicos, interferencias y la saturación de la red. La naturaleza de la banda 3G, que opera en un espectro ionizado de radiofrecuencias, permite una amplia cobertura, pero no garantiza una conexión ininterrumpida en todo momento.
Programas como UMTSKeeper surgen como una solución para mitigar estos problemas, monitorizando activamente la conexión y restableciéndola automáticamente en caso de caída. Esta resiliencia es fundamental para aplicaciones que requieren una conectividad constante.
El Rol de usb-modeswitch-data
La base de datos contenida en el paquete usb-modeswitch-data es esencial para el funcionamiento de usb-modeswitch. Esta base de datos es un repositorio de configuraciones para una vasta cantidad de dispositivos USB que requieren un cambio de modo. Cada entrada en esta base de datos asocia un Vendor ID y Product ID específico con los comandos necesarios para activar el modo deseado del dispositivo. Cuando usb-modeswitch detecta un dispositivo, consulta esta base de datos para encontrar la configuración adecuada. La actualización periódica de usb-modeswitch-data es importante para asegurar la compatibilidad con nuevos modelos de módems.
Comprendiendo los Identificadores USB (VID:PID)
Los identificadores USB, conocidos como Vendor ID (VID) y Product ID (PID), son códigos numéricos únicos que identifican a cada dispositivo USB y su fabricante. En el caso del módem Huawei E173, la transición de 12d1:1446 (modo de almacenamiento) a 12d1:1433 (modo módem) es lo que usb-modeswitch busca lograr. Estos identificadores son la clave para que el sistema operativo y las herramientas de gestión de dispositivos, como usb-modeswitch, puedan interactuar correctamente con el hardware.
El Concepto de "Hot-Plugging" y sus Implicaciones
La capacidad de conectar y desconectar dispositivos USB mientras el sistema está en funcionamiento, conocida como "hot-plugging", es una característica conveniente pero que puede introducir complejidades. En el caso de los módems 3G y usb-modeswitch, el "hot-plugging" puede fallar si el proceso de detección y cambio de modo no se completa antes de que el sistema intente utilizar el dispositivo como módem. Esto explica por qué, en ocasiones, el módem funciona correctamente después de un reinicio pero no al ser conectado en caliente. La gestión de los tiempos de espera y la secuencia de inicialización se vuelven cruciales en estos escenarios.
Reflexiones sobre la Cohesión y la Política
La analogía entre las Artes Militares y la política, mencionada en el material proporcionado, sugiere una perspectiva más amplia sobre la gestión de sistemas complejos. La "cohesión política" se presenta como un valor humano maleable, mantenido por un "Gran Conductor" a través de sus artes morales y espirituales. De manera similar, la configuración de hardware y software puede requerir una gestión cuidadosa y estratégica para lograr la cohesión del sistema. La idea de que el "verdadero rol protagónico de la acción del Ejército recae en el Pueblo que lo origina" puede interpretarse como la importancia de la base o el usuario final en el diseño y la funcionalidad de cualquier sistema, ya sea militar, político o tecnológico. Las necesidades del "Pueblo" (en este caso, los usuarios de Raspberry Pi) deben ser cubiertas con soluciones efectivas y accesibles.
El Rol del Usuario en la Configuración
La frase "Yo no he hecho nada para merecerme esto" refleja la frustración que puede surgir cuando la tecnología no se comporta como se espera, pero también la sorpresa y el alivio cuando un problema se resuelve de forma aparentemente mágica. Sin embargo, la configuración de dispositivos como módems 3G en plataformas como Raspberry Pi a menudo requiere una intervención activa y una comprensión de los procesos subyacentes. Las pruebas iterativas, la edición de archivos de configuración y la instalación de software adicional son pasos necesarios para lograr una configuración exitosa.
La Importancia de la Documentación y los Registros
La habilitación del registro en usb-modeswitch (EnableLogging=1) es una práctica fundamental para la depuración. Los archivos de registro proporcionan una visión detallada de lo que está sucediendo "en las tripas" del programa, permitiendo identificar errores, tiempos de espera incorrectos o configuraciones no detectadas. La consulta de estos registros, junto con la documentación oficial de usb-modeswitch, es crucial para diagnosticar y resolver problemas complejos.
Adaptabilidad a Diferentes Versiones y Arquitecturas
La mención de diferentes versiones de Ubuntu (12.04 LTS, 10.10 Maverick Meerkat) y la necesidad de descargar paquetes .deb específicos para la arquitectura del sistema (32 bits o 64 bits) subraya la importancia de la adaptabilidad. Las soluciones tecnológicas rara vez son universales y a menudo requieren ajustes para adaptarse a entornos específicos. Esto es particularmente cierto en el mundo del software de código abierto y los sistemas embebidos, donde la diversidad de configuraciones es la norma.
Consideraciones sobre la Red y el Proveedor de Servicios
La configuración de cualquier conexión de banda ancha móvil, ya sea en una Raspberry Pi o un router, finalmente depende de la infraestructura y los servicios proporcionados por el operador de telefonía móvil. La necesidad de obtener credenciales de acceso de banda ancha del proveedor de servicios de Internet es un recordatorio de que la tecnología de hardware y software es solo una parte de la ecuación; el servicio subyacente es igualmente vital.
La Evolución de la Tecnología Móvil
Aunque este artículo se centra en módems 3G, es importante reconocer que la tecnología móvil ha evolucionado significativamente hacia 4G (LTE) y 5G. Sin embargo, los principios de configuración y los desafíos de compatibilidad de hardware a menudo persisten. La comprensión de cómo funcionan estas herramientas y procesos básicos puede ser transferible a la configuración de tecnologías más nuevas, aunque los detalles específicos y los drivers puedan diferir.
Conclusión Parcial: Un Viaje de Solución de Problemas
Configurar un módem 3G USB en una Raspberry Pi es un ejercicio que combina la paciencia, la investigación y la experimentación. Desde la comprensión de los modos de dispositivo USB hasta la configuración de software especializado como usb-modeswitch, Sakis3g y UMTSKeeper, el proceso puede ser intrincado. Sin embargo, con el enfoque correcto y las herramientas adecuadas, es posible lograr una conexión de banda ancha móvil funcional, abriendo un mundo de posibilidades para proyectos conectados a Internet. La clave reside en abordar los problemas paso a paso, utilizar los registros para diagnosticar y estar preparado para la naturaleza a veces impredecible de la tecnología.