Conectar a internet con modem



 1.- Comprobar si el sistema detecta el puerto al que está conectado el modem durante el arranque.
En este caso, nuestro modem es ttySx, que es como se le conoce al puerto serie en Linux. En Windows, ttySx se llama COMx (siendo x un numero).
Los modems externos estan conectados a ttyS0 o ttyS1, mientras que los internos estan en ttyS2 o ttyS3.
He aquí la tabla de equivalencia ttyS - COM.

ttyS COM
/dev/ttyS0
COM1
/dev/ttyS1
COM2
/dev/ttyS2
COM3
/dev/ttyS3
COM4

Para saber si Linux nos reconoce los puertos, no tenemos más que usar el comando dmesg conbinado con grep de la siguiente manera.
# dmesg | grep tty
(No pongais la #, ya que eso es el prompt)
Esto nos deberia dar un mensaje parecido a lo siguiente:
ttyS0 at 0x03f8 (irq = 4) is a 16550A
ttyS1 at 0x02f8 (irq = 3) is a 16550A
Para algunos modems, tenemos que crear la entrada al puerto irq del modem, en /dev/ttySx (ttyS1 por ejemplo), para ello hacemos lo siguiente:
# setserial /dev/ttyS1 port 2f8 irq 3 uart 16550A baud_base 115200
donde:
port indica la region entrada salida (I/O)
irq indica la interrupcion
uart indica el tipo de uart
baud_base indica la velocidad
Haced esto sólo si es completamente necesario.
Ésta es la tabla descriptiva de /dev/ttyS.

Device
Port
IRQ
/dev/ttyS0
0x3f8
4
/dev/ttyS1
0x2f8
3
/dev/ttyS2
0x3e8
4
/dev/ttyS3
0x2e8
3

Hemos usado /dev/ttyS1, ya que no lo estamos usando por ningún otro periferico, y nuestro modem es externo, en caso de que sea interno, usad /dev/ttyS2 o /dev/ttyS3.
Daos cuenta que nosotros hemos usado como puerto "2f8" y como irq "3" ya que son los valores que corresponden a /dev/ttyS1. En cuanto a uart y baud_base, dejadlo como está en el ejemplo.

   1.1.- Crear un enlace al dispositivo que usa el modem.
Para crear un enlace al dispositivo que usa el modem, nos basta con poner este comando.
# ln -s /dev/ttySx /dev/modem (substituid la x por el numero que proceda, vease la tabla de equivalencia ttyS - COM)
Aseguraos antes de que /dev/modem no existe.

   1.2.- Dar los permisos adecuados a /dev/ttySx y a /dev/modem.
Los usuarios que vallan a usar el modem deben tener permisos de lectura (r)y escritura (w) en el dispositivo correspondiente. El comando utilizado para modificar los permisos es chmod.
# chmod 0666 /dev/ttySx (substituid la x por el numero que os corresponda).
Por otra parte, nuestro enlace /dev/modem debe tener ademas de permisos de lectura y escritura, permiso de ejecución (x), por tanto:
# cdmod 0777 /dev/modem

   1.3.- Obtener la máxima velocidad de comunicación con el modem.

Para conseguir la máxima velocidad de comunicación con el modem, y por tanto un mejor rendimiento de éste, debemos añadir en /bin/serial la siguiente linea:
/etc/setserial /dev/modem spd_vhi
* En nuestro caso, hemos añadido la siguiente linea en /bin/serial ya que utilizamos Gentoo, pero dependiendo de la distribución habrá que añadirlo ahí o en /sbin/init.d/setserial , /etc/rc.d/rc.local ó /etc/rc.serial.


 2.- Compilar el kernel para soporte PPP.
Primeramente, creemos un enlace al directorio del kernel, para automatizar el proceso.
# ln -s /usr/src/linux-2.x.x /usr/src/linux (substituid las x por el numero que proceda).
Para conectar a internet desde linux, debemos tener activadas una serie de opciones en el kernel.
Dentro de Networking Options:

Networking Options
<*> Packet socket
.
.
.
<*> Unix domain socket
<*> TCP/IP Networking
[*] IPmulticasting

Dentro de Network device support:

Network device suport
[*] Network device support
.
.
.
<*> PPP (point-to-point protocol) support

Una vez hecho esto, debemos compilar el kernel de nuevo, para ellos salimos guardando los cambios y ejecutamos:
# make dep clean bzImage modules modules_install
dep depura el kernel.
clean lo limpia.
bzImage crea una imagen del kernel comprimida con bzip2, que es mas potente que gunzip (zImage).
modules carga los modulos que hallamos instalado.
modules_install instala los modulos.
El siguiente paso es actualizar LILO (LInux LOader) para que carguemos con nuestra nueva imagen del kernel, por lo que primeramente tranladamos la nueva imagen a /boot.
Para más información consulta el documento Como compilar el Kernel.
# mv /usr/src/linux/arch/i386/boot/bzImage /boot
Y editamos el fichero /etc/lilo.conf y añadimos lo siguiente:

/etc/lilo.conf

.
.
.
image = /boot/bzImage
    label = XXXX (substituid las X por el nombre que querais)
* Los puntos indican que por encima hay mas texto, no los copieis.

Finalmente ejecutamos lilo para que los cambios tengan efecto.
# lilo -C /etc/lilo.conf
Una vez reiniciemos, entramos en el sistema con la nueva imagen y ya estaremos reparados para el siguiente paso.
 3.- Instalación y configuración de pppd.
Lo primero es instalar el paquete pppd en caso de no estar, debeis instlarlo.
En las distribuciones basadas en RedHat (SuSE, Turbo Linux, Mandrake, etc.) teneis que buscar el paquete en los cd's o en rpmfind y webs de esas y poner lo siguiente
# rpm -i pppd*.rpm
En gentoo seria:
# emerge ppp
En la Debian:
#apt-get install pppd
En slackware la cosa sería algo más compleja, ya que aparte de buscar el paquete teneis que compilar vosotros mismos:
# cp pppd*.tgz /usr/share
# tar xvfz paquete.tgz
# cd paquete
# ./configure
# make
# make install

Una instalado pppd, procedemos a la configuración de los archivos necesarios para la conexión a internet (borrad todo lo que ponga en los archivos antes de escribir lo indicado).

/etc/resolv.conf

domain dominio_de_tu_provedor (por ejemplo arrakis.es)
nameserver DNS_PRIMARIA (por ejemplo 194.224.52.4
nameserver DNS_SECUNDARIA (por ejemplo 194.224.52.6)

/etc/host.conf

order hosts,bind
multi on


/etc/ppp/options

connect /etc/ppp/internet
crtscts
modem
passive
user usuario@servidor (por ejemplo zayer@arrakis)
noipdefault
:192.168.0.2
ipcp-accept-remote
debug
defaultroute
asyncmap a0000
/dev/modem
115200


/etc/ppp/internet

#!/bin/sh
/usr/sbin/chat -v "" atdt055 CONNECT "" (substituid 055 por el número que useis apra conectar a internet, yo he puesto éste porque es el antiguo. Las comillas son necesarias).


El archivo /etc/ppp/internet ha de ser ejecutable, por lo que usamos chmod para darle permiso de ejecución.
# chmod 0755 /etc/ppp/internet

/etc/ppp/pap-secrets

"nombre_de_usuario" * "contraseña" (los espacios son tabulares, y las comillas son necesarias, substituid en nombre de usuario por el vuetro y contraseña por la vuestra, ejemplo: "zayer@arrakis" * "esteesmipass").

Esto debería funcionaros, pero si no es asi, probad de esta otra forma (borrando todo lo anterior):

/etc/resolv.conf

domain dominio_de_tu_provedor (por ejemplo arrakis.es)
nameserver DNS_PRIMARIA (por ejemplo 194.224.52.4
nameserver DNS_SECUNDARIA (por ejemplo 194.224.52.6)

/etc/host.conf

order hosts,bind
multi on


/etc/ppp/options

connect /etc/ppp/internet
crtscts
modem
passive
name usuario@servidor (por ejemplo zayer@arrakis)
noipdefault
:192.168.0.2
ipcp-accept-remote
debug
defaultroute
asyncmap a0000
/dev/modem
115200


/etc/ppp/internet

#!/bin/sh
/usr/sbin/chat -v "" atdt055 CONNECT "" (substituid 055 por el número que useis paraconectar a internet, yo he puesto este porque es el antuguo, las comillas son necesarias).


/etc/ppp/chap-secrets

nombre_de_usuario ppp0 contraseña

 4.- Conectar via pppd.
Para conectar por pppd, ejecutamos este comando.
# pppd
Y para desconectar utilizamos el mismo.
# pppd
En caso de que pppd no desconectara, usad el siguiente comando:
# killall pppd

 5.- Visualización del log de conexión.
Para visualizar el log de conexión sólo tenemos que ejecutar:
# tail -f /var/log/messages
Esto nos mostrará las últimas entradas al archivo, para una visualizacion mas detallada, editad dicho archivo.

 6.- Nota final.
Este documento sólo explica el modo de conectar a internet utilizando pppd, no kppp ni ningún entorno gráfico. El principal motivo por el que nos hemos decantado por este metodo es su eficacia, su mayor calidad, y además, porque de este modo se aprende más, y de lo que se trata es de aprender.



By zayer (Federico Moro del Álamo).
Frikis.org
e-mail address: zayer@frikis.org.


frikis.org
http://www.frikis.org/staticpages/index.php/internet-ppp