Descripción
En este artículo se describe como configurar un módem 4G para el IoT Gateway. Este módem podemos tenerlo siempre conectado a Internet, o usar el envió de SMS contra este dispositivo para activar y desactivar la conexión cuando queramos tener acceso remoto al equipo.
En esta entrada te explicamos la primera parte, la de tener el módem siempre conectado y en el próximo vídeo nos centraremos en controlar la conexión vía SMS.
Configuración del módem
Empezamos por definirle al USB en que modo debe ser reconocido por el equipo. A esto se le llama configuración del “usb-modeswitch”.
usb-modeswitch
Instalamos el paquete:
apt install usb-modeswitchpara configurar el comportamiento del usb-modeswitch crearemos el seguiente fichero de configuración:
/etc/udev/rules.d/40-usb_modeswitch.rules
ATTR(idVendor}=="12d1", ATTR{idProduct}=="1446", RUN+="usb_modeswitch '%b/%k'"
# ttyUSB_utps_modem
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="00", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="modem0"
# ttyUSB_utps_diag
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="01", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="modem1"
# ttyUSB_utps_pcui
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="02", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="modem2"Para que el dispositivo se reconozca se puede usar el siguiente comando y si no funciona también podemos reiniciar.
udevadm control --reload-rules && udevadm triggerDespués debemos ver que dentro de /dev deben aparecer varios dispositivos llamados /dev/modem* a través de los cuales podemos acceder a las diferentes funciones del módem.
Para saber más de cada uno de estos dispositivos podemos usar el comando:
udevadm info -a /dev/modem0Conexión a Internet
Para esto instalaremos el paquet wvdial:
apt install wvdialPara configurarlo, creamos los ficheros siguientes con el contenido indicado:
/etc/ppp/peers/wvdial
noauth
name wvdial
usepeerdns
defaultroute
replacedefaultroute/etc/wvdial.conf
[Dialer Defaults]
Init1 = AT
Init2 = ATZ
Modem = /dev/ttyUSB0
Baud = 460800
[Dialer internet]
Init3 = AT+CGDCONT=1,"IP","inet.es"
Phone = *99***1#
ISDN = 1
Username =;
Password =;
Stupid Mode = on
Auto DNS = on
Auto Reconnect = on
New PPPD = yes
; [Dialer pin]
; Init2 = AT+CPIN="1234"Fíjate que esta comentada la parte de introducción del PIN.
Por otro lado, también observa que el Init3 tiene la información de conexión del APN del operador que usamos nosotros. Nuestro APN es el “inet.es” cámbialo por el tuyo además de los usuarios y passwords asociados para la conexión, si hace falta.
Una vez tenemos esto listo, podemos usar estos comandos:
# ejecuta los comandos que hay dentro de defaults
wvdial
# introduce el PIN de la tarjeta SIM si has descomentado las líneas pertinentes que comentamos más arriba
wvdial pin
# para conectar a Internet
wvdial internetSe puede usar el propio crontab para lanzar la conexión al iniciar el equipo si queremos estar siempre conectados:
Comando para editar crontab:
crontab -eContenido que debemos añadir a nuestro crontab:
@reboot /usr/bin/wvdial internetAlgunas notas para resolución de problemas
Problemas con el DNS
Una opción és eliminar el link a /etc/resolv.conf y en ocasiones lo encontraremos apuntando a ../run/systemd/resolve/stub-resolv.conf
rm /etc/resolv.confSe puede crear un fichero estático convencional para evitar que los automatismos del módem nos dejen el fichero inconsistente y esto genere problemas con el Zerotier u otros servicios vitales para los accesos remotos.
Por ejemplo,
nameserver 1.1.1.1
nameserver 1.0.0.1Comprobar que wvdial ha lanzado pppd
ps ax | grep pppdConsultar logs para ver la negociación de la conexión
journalctl -fAdemás de los comandos típicos para monitorizar el enrutado de paquetes
ip -o a
ip routeO comprobar si se mueve tráfico por la interface del módem
iptraf-ng -d ppp0VNSTAT - Monitorización del ancho de banda usado por el módem
Concretamente para saber esto lo que monitorizamos es el consumo del enlace PPP.
Primero instalamos vnstat:
apt install vnstatDespués editamos el fichero de configuración /etc/vnstat.conf y en la línia 5 donde se define la interface ponemos:
Interface "ppp0"Una vez hecho esto con el siguiente comando sabremos el consumo acumulado en nuestro enlace:
vnstat -mSi queremos recibir un correo automáticamente cada hora informando del consumo acumulado podemos poner lo siguiente en crontab:
59 * * * * vnstat -m
