Cómo intalar un modem SmartLink en Linux y cómo configurar pppd

By 6 de agosto de 2006 Linux No Comments

Este es un howto para aquellos usuarios que posean un modem basado en el chip de la compañia SmartLink y no sepan como ponerlo a funcionar en
Linux.El ejemplo que voy a poner es de un Modem marca Longshine, color negro,
tamaño pequeño y de conexion USB, obviamente está basado en el chip de
SmartLink.

En la web de SmartLink tenemos los controladores para Linux y Windows,
la última version en el momento de crear este howto es la 2.9.10. Ahora
os dare las direcciones web:

* Página oficial de SmartLink: http://www.smlink.com/
* Enlace para drivers en Linux:
http://www.smlink.com/main/down/slmodem-2.9.10.tar.gz
* Enlace para drivers en Windows:
http://www.smlink.com/main/index1.php?ln=en&main_id=26

He de decir que los drivers para Linux sirven tanto para PCI como USB es
decir, si teneis un winmodem basado en SmartLink no os preocupeis :)

Comenzaremos entonces, descargaremos el fichero y lo pondremos en
nuestro home (para los que no lo sepan es /home/nombre_de_usuario) acto
seguido abrimos un terminal y escribimos:

tar -xvzf slmodem-2.9.10.tar.gz

Eso nos creara una carpeta con el nombre slmodem-2.9.10 en donde estará
todo el código para compilar, entraremos en la carpeta poniendo

cd slmodem-2.9.10

Una vez dentro escribiremos los siguientes comandos:

make

make install

Esto os creará las sigueintes cosas:

Modulos del modem para el Kernel
Demonio slmodemd
Devices /dev/slram0-8 /dev/slusb0-8 (slram es para los PCI y slusb es
para los USB)

Para poder iniciar vuestro modem debereis escribir:

slmodemd /dev/slusb0 &

Os explicare esta linea, lo primero es el demonio del modem, que creara
un puerto serie virtual para poder comunicarse con el modem, lo segundo
es el device del modem que usaremos, en ese caso es un modem usb, y solo
tenemos uno, asi que ponemos slusb0 y el ultimo caracter es un & lo cual
provocara que el programa trabaje en background y nos nos ocupe un
terminal inutilmente.

El demonio crea un device nuevo, llamado /dev/ttySL0 que deberemos
linkar a /dev/modem para que sea reconocido por los distintos dialers
como kppp. Entonces ponemos:

ls -sf /dev/ttySL0 /dev/modem

Con esto tenemos el modem al fin listo para funcionar, solo tenemos que
iniciar nuestro dialer favorito (en este caso kppp) y configurarlo.

Pero aqui no ha acabado todo, una vez desconecteis y apagueis el pc se
van los dos ultimos pasos al carajo, es decir, cada vez que querais
conectar tendreis que poner el demonio del modem y linkar el device, por
eso voy a hacer una explicacion muchisimo mas amplia sobre estas cosas.

Para evitar ese engorroso trabajo del demonio y el linkaje cada vez que
queremos conectar voy a enseñaros como ponerlo en el arranque de linux.

Primero debemos crear un fichero, al que llamaremos slmodem (a secas)
y en el cual meteremos nuestras instrucciones, por lo tanto:

cd /etc/init.d

nano slmodem

(Yo uso el editor nano, vosotros debereis usar el que tengais o el que
os apetezca, como vi, por ejemplo)
En el fichero escribiremos lo siguiente:

#!/bin/sh
NAME="SmartLinkDaemon"

case "$1" in
start)
echo Iniciando $NAME
slmodemd /dev/xxxxxx &
ln -sf /dev/ttySL0 /dev/modem
;;

stop)
echo Deteniendo $NAME
killall slmodemd
;;

*)
echo Uso: /etc/init.d/slmodem {start|stop}
;;
esac

Guardaremos el script y actualizaremos nuestro rc.d, en debian es con el
comando update-rc.d add loquesea, en gentoo es rc-update add loquesea
default, en otras distribuciones no se como es, consultad vuestra
documentacion.

En gentoo el script que acabo de escribir no sirve, asi que pondre el
caso especial de gentoo aqui:

#!/sbin/runscript
NAME=SmartLinkDaemon
start() {
ebegin "Iniciando $NAME"
/usr/sbin/slmodemd /dev/slusb0 &
ln -sf /dev/ttySL0 /dev/modem
}

stop() {
ebegin "Deteniendo: $NAME"
killall slmodemd
}

*() {
ebegin "Uso: /etc/init.d/$NAME {start|stop}"
}

Con eso deberia funcionaros. Bueno, una vez actualizado nuestro rc.d
ya no queda nada mas que hacer que reiniciar el pc, el demonio
se cargara en el arranque, por lo tanto lo unico que teneis que hacer
ahora es poner vuestro dialer favorito a trabajar :)

Este howto en teoria esta acabado, pero voy a explicaros otra cosa
mas, como usar pppd, el demonio de conexion a internet, todos los
dialers de Linux acceden a el, por lo tanto, si lo llamamos
directamente nos ahorraremos tiempo :)

Primero: poned vuestras DNS's en /etc/resolv.conf de esta forma

nameserver 80.58.0.33 (DNS1)
nameserver 80.58.32.97 (DNS2)

En /etc/hosts pondreis lo siguiente (si no teneis el fichero lo
creais, no pasa nada)

order hosts,bind
multi on

En /etc/ppp/options que es el fichero mas importante, pondreis esto

connect /etc/ppp/internet
crtscts
modem
passive
user [email protected] (por ejemplo [email protected])
noipdefault
ipcp-accept-remote
debug
defaultroute
asyncmap a0000
/dev/modem (si no os funciona con /dev/modem probad a poner /dev/ttySL0)
115200

Crearemos el fichero /etc/ppp/internet y le pondremos lo siguiente

#!/bin/sh
/usr/sbin/chat -v "" ATDT055 CONNECT ""

DEBEIS sustituir el 055 por vuestro numero de telefono a marcar,
una vez guardado haremos

chmod +x /etc/ppp/internet

Ahora el ultimo paso es editar el pap/chap-secrets, cada usuario
editara uno de los dos dependiendo de lo que use para identificarse
En mi caso uso PAP, y esto es lo que se debe poner

"[email protected]" * "tupassword"

En principio nada mas, basta con poner en un terminal pppd para que
el dialer se inicie y os conecte.

A los todavia mas exigentes les he preparado un detallito, ¿quereis
que vuestro pc se conecte automaticamente a una hora y se desconecte
solo a otra? eso viene muy bien para gente con tarifas planas de
horario fijo, asi que empezaremos.

Crearemos el fichero /etc/ppp/autodial y en el ponemos lo siguiente

#!/bin/bash

NAME=PPPD

case "$1" in
start)
echo "Iniciando Dialer: $NAME"
/usr/sbin/pppd
;;

stop)
echo "Deteniendo: $NAME"
killall pppd
;;

shutdown)
echo "Deteniendo: $NAME y apagando el sistema"
killall pppd
halt
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop}"
exit 1
;;
esac

Guardaremos y ahora abriremos el /etc/crontab le pondremos dos lineas
en este caso, pero vosotros poned las que os hagan falta :)

En mi caso la conexion es de 18:00 a 8:00 asi que pongo:

0 18 * * * root /etc/ppp/dialer start
0 8 * * * root /etc/ppp/dialer shutdown

Con esto el pc se conecta todos los dias a las 6 de la tarde y se
desconecta y apaga a las 8 de la mañana :)

Hasta aqui ha sido el howto de hoy amigos, espero que os sea de
utilidad 😀

(Gracias a Zayer por el pppd howto, lo podeis encontrar en www.frikis.org)

pizte 2004

Leave a Reply

Your email address will not be published.