Configurando el Modem ADSL USB Amigo CA80U

Este infame modem ADSL es muy conocido por ser la primera eleccion de los proveedores de Internet de Banda Ancha locales, por su bajo costo. Desgraciadamente, tambien es reconocido por su baja calidad y por estar destinado a su uso bajo Windows. Sin embargo, hacerlo funcionar bajo Linux no es una mision imposible, como explicaremos a continuacion.

Introduccion

Como bien dice su titulo, este documento trata sobre el modem AMIGO CA80U y su instalacion en Linux. Debido a la falta de documentacion sobre su soporte en Unix/linux, y a la gran entrega de estos modems en el mercado, la mayoria 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

Basicamente, se requieren los siguientes paquetes antes de comenzar con la configuracion

  • Linux: Slackware 9.1
    Fue la distribucion en la que instale 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 distribucion.
  • 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 distribucion Slackware 9.1, recomiendo usar los paquetes que vienen en el CD.

Los paquetes (libusb y libusb-devel) son librerias 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 version 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 librerias y el driver puedes dirigirte a la pagina del proyecto: sourceforge.net/projects/accessrunner

Configuracion

Kernel

Comenzamos con la configuracion 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 mayoria las que encontraras en la documentacion del driver con pequenas 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 documentacion debido a que tuve problemas a la hora de cargarlo, y esta opcion es fundamental ya que es usada para crear la interfase nas0)

    USB support
     <*> Support for USB
     [*] Preliminary USB device filesystem

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 aqui 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 modulo de iptables es por eso que esta puesto en el Kernel, hay mas configuraciones que se deberia realizar si quieres poner un servidor Linux, pero estas son las basicas.

Especificaciones

Bueno luego de compilar el Kernel con las opciones necesarias ,de haber rebooteando nuestra maquina y de haber instalado las librerias (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 grafica 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 conexion.

Configurando PPPoE para establecer la conexion 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

Asegurate de que esas opciones defaultroute, hide-password, asyncmap, etc. esten habilitadas en tu archivo options y sino agregalas como se vio anteriormente, el resto de las opciones debes dejarlas como estan por defecto.

Ultimos detalles

Ingresa al archivo /etc/modules.conf y coloca en su interior la siguiente linea:

     alias net-pf-24 pppoe

Ingresa tambien 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 linea 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"

Instalacion

Ya se supone que haz seguido al pie de la letra la configuracion, ahora para la instalacion del modem solo falta ejecutar :

     root:# cxstart.sh

Este script se encarga de levantar el modulo para el modem, luego crea la interface nas0 y para finalizar ejecuta el PPPoE para que estemos ya estemos conectados :)

!!!ATENCION!!!! Si ves que cxstart se esta ejecutando correctamente y luego del mensaje

     Activating interface...

se arroja un error, debes dirigirte al archivo /usr/sbin/cxnet4up.sh y buscar las siguientes lineas 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 solo comentarlas, poniendoles un caracter # 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 modulo del modem que ya esta cargado). Para no rebootear deberias 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 este andando bien basta ejecutar el comando ifconfig y ver si la interface ppp0 y nas0 estan levantadas, !si las ves es porque ya estas conectado a Internet!

Martin Ariel Russo
martinrusso at argentina dot com

Distribuir contenido

Office OpenXML (OOXML) no debe ser ISO 29500