|
Este
infame modem ADSL es muy conocido por ser la primera elección
de los proveedores de Internet de Banda Ancha locales, por su
bajo costo. Desgraciadamente, también es reconocido por su
baja calidad y por estar destinado a su uso bajo Windows. Sin
embargo, hacerlo funcionar bajo Linux no es una misión
imposible, como explicaremos a continuación.
Introducción
Como
bien dice su titulo, este documento trata sobre el modem AMIGO
CA80U y su instalación en Linux. Debido a la falta de
documentación sobre su soporte en Unix/linux, y a la gran
entrega de estos modems en el mercado, la mayoría tiene
problemas a la hora de ponerlo en funcionamiento bajo dichas
plataformas.
El autor
de este articulo espera poder ayudar a todos los que como el
se encontraron con dificultades en la puesta en marcha del
querido modem "Mal"-Amigo. :)
Requerimientos
Básicamente, se requieren los siguientes paquetes antes de
comenzar con la configuración
-
Linux: Slackware 9.1
Fué la distribución en la que instalé el modem y en la cual
se basa este documento, lo que no implica que en otra no
funcione, cambiaran los paquetes (.tgz por .rpm, .deb,
etc..), algunas rutas de archivos, y algunas cositas mas,
espero por tengan la misma suerte con otra distribución.
-
Kernel 2.4.22 ( ** )
-
ppp-2.4.1-i486-3.tgz ( ** )
-
rp-pppoe-3.5-i386-1.tgz ( ** )
-
libusb-0.1.6-3.i386.tgz
-
libusb-devel-0.1.6-3.i386.tgz
-
cxacru-2003-10-05-src.tgz (driver del modem AMIGO)
-
pam-0.75-40.src.tgz
(**)
estos paquetes se encuentran en el CD de la distribución
Slackware 9.1, recomiendo usar los paquetes que vienen en el
CD.
Los
paquetes (libusb y libusb-devel) son librerías necesarias para
el funcionamiento del driver, por lo tanto asegurate de
instalarlas respetando el orden en el que fueron nombradas.
El
paquete cxacru-2003-10-05-src.tgz, como veras es una versión
algo vieja, actualmente se encuentran nuevas versiones con
soporte para distintos modelos del modem Amigo (CA80U2 ,
etc.). Solo tiene que asegurarte de que el paquete que te
bajes soporte tu modelo de modem Amigo.
Para
obtener las librerías y el driver puedes dirigirte a la pagina
del proyecto:
www.sourceforge.net/projects/accessrunner
Configuración
Kernel
Comenzamos con la configuración del kernel, una vez
descomprimido en /usr/src/linux-2.4.22/, escribimos
dentro de dicho directorio :
root#
make menuconfig
Referencias
Las
opciones que debemos seleccionar son en su mayoría las que
encontraras en la documentación del driver con pequeñas
modificaciones debido a que algunas cosas se olvidaron:
Code maturity level options
[*] Prompt for development and/or incomplete code/drivers
Loadable module support
[*] Enable loadable module support
[*] Set version information on all module symbols
[*] Kernel module loader
Networking options
<*> Packet socket
<*> Unix domain sockets
[*] TCP/IP networking
[*] Asynchronous Transfer Mode (ATM)
[*] RFC1483/2684 Bridged protocols
(en este
caso te recomiendo que lo pongas en el kernel y no generes el
modulo como indica la documentación debido a que tuve
problemas a la hora de cargarlo, y esta opción es fundamental
ya que es usada para crear la interfase nas0)
USB support
<*> Support for USB
[*] Preliminary USB device filesystem
UHCI
OHCI
Network Device Support
PPP (point-to-point protocol) support
PPP Deflate compression
PPP over Ethernet (EXPERIMENTAL)
Processor type and features
[ ] Symmetric multi-processing support
IMPORTANTE: Estas son las pautas a llevar en el Kernel para
que el modem Amigo USB funcione correctamente, pero aca van
otras recomendaciones personales, si estas leyendo este
documento para poner un servidor Linux de internet no olvides
habilitar iptables en el Kernel para realizar el NAT, por si
de algo te sirve aquí tienes las opciones.
Networking options
[*] Network packet filtering
IP: Filter Configuration
<*> IP tables support (required for filtering/masq/NAT)
Tuve
inconvenientes al querer cargar el módulo de iptables es por
eso que esta puesto en el Kernel, hay mas configuraciones que
se debería realizar si quieres poner un servidor Linux, pero
estas son las básicas.
Especificaciones
Bueno
luego de compilar el Kernel con las opciones necesarias ,de
haber rebooteando nuestra maquina y de haber instalado las
librerías (libusb y libusb-devel) necesarias por nuestro
driver cxacru, procedemos a compilarlo.
Descomprimimos el paquete.
root# tar -xvzf
cxacru-2003-10-05-src.tgz
Luego
dentro de la carpeta cxacru escribimos
root:cxacrud# make
Nota: en
mi caso tuve problemas al compilar el driver con un fuente del
panel, pero como el panel no es otra cosa que una interfaz
gráfica de diagnostico del modem, podemos poner
root:cxacrud# make
-i
(donde
-i ignora los errores y lo pasamos de alto ;)
Ya
tenemos instalado nuestro driver, ahora si tenemos instalado
el driver nos falta solo conectar, bueno para eso vamos a
instalar los paquetes ppp-2.4.1-i486-3.tgz y rp-pppoe-3.5-i386-1.tgz
que se encuentran en nuestro CD y ahora lo que resta es
configurar nuestra conexión.
Configurando PPPoE para establecer la conexión con nuestro
proveedor
Ejecutemos el comando
root# adsl-setup
Con
dicho comando configuremos nuestro usuario, password, DNS,
etc..
Luego de
ingresar los datos , vamos a dirigirnos al archivo /etc/ppp/options
y agreguemos las siguientes lineas: (recuerda que las lineas
que comienzan con # son comentarios simplemente que no te
deben importar)
# dns-addr 192.168.1.1
# dns-addr 192.168.1.2
defaultroute
hide-password
#
# async character map -- 32-bit hex; each bit is a character
# that needs to be escaped for pppd to receive it. 0x00000001
# represents '\x01', and 0x80000000 represents '\x1f'.
asyncmap 0
#
# Do not require the other end of the connection to
authenticate itself.
# This option is dangerous if pppd is setuid.
# If you also have ethernet and are having problems getting
PPP to connect
# over a modem, try this option.
noauth
#
# Use hardware flow control (i.e. RTS/CTS) to control the flow
of data
# on the serial port.
crtscts
#
# Set the MRU [Maximum Receive Unit] value to
for negotiation. pppd
# will ask the peer to send packets of no more than
bytes. The
# minimum MRU value is 128. The default MRU value is 1500. A
value of
# 296 is recommended for slow links (40 bytes for TCP/IP
header + 256
# bytes of data).
mru 1492
#
# Disables the default behaviour when no local IP address is
specified,
# which is to determine (if possible) the local IP address
from the
# hostname. With this option, the peer will have to supply the
local IP
# address during IPCP negotiation (unless it specified
explicitly on the
# command line or in an options file).
noipdefault
Asegurate de que esas opciones defaultroute, hide-password,
asyncmap, etc. estén habilitadas en tu archivo options
y sino agregalas como se vio anteriormente, el resto de las
opciones debes dejarlas como están por defecto.
Ultimos detalles
Ingresa
al archivo /etc/modules.conf y coloca en su interior la
siguiente línea:
alias net-pf-24
pppoe
Ingresa
también al archivo /etc/cxacru y setea la variable
PROTOCOL_MODE=4
(no
recuerdo si por defecto ya tiene 4 como valor :)
Y para
finalizar ingresamos al script /usr/sbin/adsl-connect y en la
línea 50 aproximadamente tenemos estas lineas:
CONFIG=/etc/ppp/pppoe.conf
USER=""
ETH=""
Las
cambiamos por estas:
CONFIG=/etc/ppp/pppoe.conf
USER="tu-usuario@proveedor-xxx"
ETH="nas0"
Instalación
Ya se
supone que haz seguido al pie de la letra la configuración,
ahora para la instalación del modem solo falta ejecutar :
root:# cxstart.sh
Este
script se encarga de levantar el módulo para el modem, luego
crea la interface nas0 y para finalizar ejecuta el PPPoE para
que estemos ya estemos conectados :)
¡¡¡ATENCIÓN!!!! Si ves que cxstart se está ejecutando
correctamente y luego del mensaje
Activating interface...
se
arroja un error, debes dirigirte al archivo /usr/sbin/cxnet4up.sh
y buscar las siguientes líneas que se encuentran casi al final
de dicho archivo
# Remove default Route
if route -n | cut -d' ' -f1 | grep -q "0.0.0.0"; then
echo $">>> Removing default route..."
route del default || exit 1
echo
fi
y sólo
comentarlas, poniéndoles un carácter # de la siguiente forma:
# Remove default Route
# if route -n | cut -d' ' -f1 | grep -q "0.0.0.0"; then
# echo $">>> Removing default route..."
# route del default || exit 1
# echo
#fi
¡Y
listo!, ahora debes rebootear Linux (ya que va a intentar
cargar nuevamente el módulo del modem que ya esta cargado).
Para no rebootear deberías ejecutar cxstop.sh y luego
cxunload.sh y ahora si ya esta todo en su lugar, ejecuta
nuevamente el comando cxstart.sh.
Para
verificar que todo esté andando bien basta ejecutar el comando
ifconfig y ver si la interface ppp0 y nas0 están levantadas,
¡si las ves es porque ya estás conectado a Internet!
Martín Ariel Russo
martinrusso at argentina dot com
FUENTE: Planeta Linux Aregntina |