Buscando en internet y haciendo varias pruebas he podido hacer que el modem usb funcione en Linux y esto es lo que he hecho.
El modem
Es un modem Ovation MC950D de Novatel Wireless que es el que da Movistar en España (a la fecha de publicación de este post).
Puede funcionar como almacén de datos (como un cdrom usb) o como modem usb
Reconociendo el modem en Linux
Cuando se conecta el modem al puerto usb, el sistema operativo lo ve como un cdrom usb. Trabajando de este modo no nos sirve por lo que debemos hacer que se "transforme" en modem usb. Para esto, nos fijamos el nombre del cdrom (sr0 si es el primer cdrom que el kernel detecta) y ejecutamos lo siguiente:
# eject /dev/sr0
En el /var/log/messages veremos como se "desconecta" el "cdrom" y se conecta otro dispositivo usb. Lo que ha pasado es que el modem ya no va a trabajar como almacén de datos, ahora trabajará como modem usb.
Si hacemos:
# lsusb
veremos esto
Bus 001 Device 009: ID 1410:4400
El vendorID es 1410 y el productID es 4400. Si el productID no es 4400 es porque todavía está trabajando como almacén de datos y algo hicimos mal.
Ya con el productID correcto cargamos el módulo usbserial se la siguiente manera:
modprobe usbserial vendor=0x1410 product=0x4400
y deberíamos obtener unas líneas como estas en el /var/log/messages
usbserial_generic 1-1:1.0: generic converter detected
usb 1-1: generic converter now attached to ttyUSB0
usbserial_generic 1-1:1.1: generic converter detected
usb 1-1: generic converter now attached to ttyUSB1
usbserial_generic 1-1:1.2: generic converter detected
usb 1-1: generic converter now attached to ttyUSB2
usbserial_generic 1-1:1.3: generic converter detected
usb 1-1: generic converter now attached to ttyUSB3
Ya tenemos el modem reconocido y configurado como tal en Linux, nos queda configurar algún programa que sirva de dialer, en este caso mostraré la configuración de wvdial.
Configurando wvdial
Para efectos de este post, usaré el PIN 1234.
Mi /etc/wvdial.conf está así
[Dialer Defaults]
Phone = *99***1#
Username = MOVISTAR
Password = MOVISTAR
Dial Command = ATDT
Stupid Mode = 1
[Dialer movistar]
Phone = *99***1#
Modem = /dev/ttyUSB0
Baud = 460800
Init1 = AT+CPIN=1234
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 =AT+CGDCONT=1,"IP","movistar.es";
ISDN = 0
Modem Type = USB Modem
Auto Reconnect = off
Auto DNS = off
[Dialer re-movistar]
Phone = *99***1#
Modem = /dev/ttyUSB0
Baud = 460800
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 =AT+CGDCONT=1,"IP","movistar.es";
ISDN = 0
Modem Type = USB Modem
Auto Reconnect = off
Auto DNS = off
Solo voy a explicar las secciones relevantes, si necesitas más información, man wvdial.conf.
Para empezar, tengo 3 secciones; Default, movistar y re-movistar.
En Default coloqué los parámetros comunes, en movistar los parámetros específicos para conectarme a movistar y en re-movistar solo eliminé el parámetro del PIN y explico. Aveces la conexión se cae (no se por qué) y el wvdial intentaba reconectarse y volvía a marcar el PIN, esto producía un error puesto que ya se había metido el PIN con anterioridad, por lo tanto coloqué el Auto Reconnect en off y cuando se cae la comunicación utilizo la sección re-movistar para que no marque el PIN nuevamente.
Otra cosa importante es lo de los servidores DNS, por alguna razón en varias ocaciones me daba el 10.11.12.13 que no son servidores DNS de movistar, así que le coloqué el Auto DNS en off y en el /etc/resolv.conf coloqué a mano los dns's que trae el escritorio movistar para windows:
194.179.1.100
194.179.1.101
Además de esto, hay que decirle a pppd que no agarre los servidores dns cuando establezca la conexión, entonces, en el /etc/ppp/options, verificar que no está la opción usepeerdns. También verificar que en el /etc/ppp/peer/wvdial tampoco aparece esa opción.
Conectándose
Para conectarnos a internet solo hay que ejecutar
# wvdial movistar
y mirar que nos den una IP.
Si tienes otra conexión ya configurada (ethernet, wifi) seguro ya tendrás una ruta por default. Como esto lo hago ocasionalmente, no me importa borrar esa ruta y colocar a mano como default gatway al otro extremo de la conexión ppp.
Para terminar la conexión, simplemente Ctrl+c en el mismo terminal donde ejecutamos wvdial.
Esto está muy crudo, se puede automatizar y todo eso pero no es el objetivo de este post ;)
Si la conexión se cae, usa el apartado re-movistar para que no vuelva a colocar el PIN.
No comments:
Post a Comment