Modem Huawei SmartAX MT 810
En este artículo se explica cómo hacer funcionar correctamente el modem Huawei SmartAX MT 810 (distribuido de manera gratuita junto con el servicio de banda ancha de Arnet Argentina), el cual es conocido también como "el alfajor" debido a su forma redondeada.
El modem utiliza el driver ueagle-atm bajo el kernel Linux 2.6.10 y posteriores, y el driver eagle-usb en versiones del kernel anteriores.
Por defecto, las versiones de Ubuntu 5.10 (Breezy Badger), 6.06 LTS (Dapper Drake) y 6.10 (Edgy Eft), incluyen el driver eagle-usb y un kernel superior al 2.6.10, y esto hace que no funcione el modem. Si usamos una de estas versiones, tendremos que instalar el nuevo driver ueagle-atm. En Ubuntu 7.04 (Feisty Fawn) el driver ueagle-atm está instalado por defecto.
En todas las versiones es necesario, sin embargo, instalar el firmware para que el driver funcione correctamente.
Además deberemos configurar la conexión ADSL correctamente, mediante el plugin rp-pppoe.
--- FUENTES: Blog de PoMeLo ; Ubuntu-ES: lauchacba ; Ubuntu-ES: pablore79 ; Kubuntu-ES: YAFU . ---
Contenido
Paquetes requeridos
Estos son los paquetes que se necesitan para configurar el modem, y que no se encuentran en los repositorios de Ubuntu:
Instalación del driver
Instalación de los paquetes para la compilación
Antes que nada, debemos instalar los paquetes build-essential, linux-headers-`uname -r` (`uname -r` se reemplaza automáticamente por la versión de nuestro kernel) y libatm1.
Desinstalación del viejo driver eagle-usb
Este paso sólo es aplicable a las versiones de Ubuntu 5.10 (Breezy Badger), 6.06 LTS (Dapper Drake) y 6.10 (Edgy Eft). |
El driver eagle-usb, que incluye Ubuntu, está obsoleto en versiones del kernel Linux 2.6.10 y posteriores. Por eso lo desinstalaremos, para poder instalar luego el nuevo driver. Para comprobar si el viejo driver está instalado, tecleamos lo siguiente en terminal:
$ sudo lsmod | grep eagle
Si nos sale algo referido al eagle-usb', para descargarlo de la memoria tipeamos:
$ sudo modprobe -r eagle-usb
Ahora hay que remover los módulos de la memoria, para eso hacemos:
$ sudo rm /lib/modules/`uname -r`/kernel/drivers/usb/atm/usbatm.ko $ sudo rm /lib/modules/`uname -r`/kernel/drivers/usb/net/eagle/eagle-usb.ko
Con esto tendremos desinstalado el viejo driver eagle-usb.
Instalación del nuevo driver ueagle-atm
Este paso sólo es aplicable a las versiones de Ubuntu 5.10 (Breezy Badger), 6.06 LTS (Dapper Drake) y 6.10 (Edgy Eft). |
Ahora tenemos que instalar el driver nuevo, ueagle-atm. Tendremos que compilarlo a partir del código fuente descargado anteriormente, para eso tipeamos:
$ tar xzf ueagle-atm-1.3.tar.gz $ cd ueagle-atm-1.3 $ sudo make $ sudo make install $ cd ..
También podemos usar checkinstall en lugar de make install, que además nos crea el paquete DEB para luego poder desinstalarlo fácilmente. Para usar checkinstall, primero debemos instalarlo desde los repositorios.
Instalación del firmware del modem
Para terminar con la instalación, hay que instalar también el firmware del modem. Para eso hacemos lo siguiente:
$ tar xzf ueagle-data-1.1.tar.gz $ cd ueagle-data-1.1
Ahora creamos la carpeta donde se instalará el firmware:
$ sudo mkdir /lib/firmware/ueagle-atm
Y copiamos el contenido de ueagle-data-1.1 a la carpeta del firmware que hemos creado:
$ sudo cp -a * /lib/firmware/ueagle-atm
Carga del nuevo driver ueagle-atm
Ahora debemos activar el nuevo driver, para eso tipeamos en terminal:
$ sudo modprobe ueagle-atm
Si todo salió bien y no se ven errores, entonces la luz "link" del modem comenzará a parpadear, hasta quedar definitivamente encendida. Esto significa que el modem está funcionando. Si no enciende, reiniciamos el equipo, y al entrar nuevamente la luz debería estar encendida.
Para confirmar realmente esto, podemos tipear:
$ dmesg | grep ueagle
Debe salir algo como esto al final:
usb 1-2: [ueagle-atm] modem operational usb 1-2: [ueagle-atm] ATU-R firmware version : 44e2ea17
Configuración del proveedor ISP con PPPoE
Ahora se explicará cómo configurar el proveedor ISP con una conexión del tipo PPPoE, si usas otro tipo de encapsulación (por ejemplo: PPPoA, VCmux, etc.), deberás buscar un manual en la web.
CONSEJO: En esta página figuran los principales proveedores ISP con sus correspondientes datos de conexión (como VPI, VCI, DNS primario y secundario, encapsulación, etc.), que necesitarás para seguir esta guía (en caso de que tu proveedor no sea Arnet Argentina, en el cual se basa la guía). Si tu proveedor no figura allí, tendrás que consultar al servicio técnico por estos datos.
Creación de la interfaz de red
Antes que nada tenemos que crear la interfaz de red para nuestro modem, así que instalaremos el paquete br2684ctl:
$ sudo dpkg -i br2684ctl_20040226-1_i386.deb $ sudo modprobe br2684
Luego hacemos lo siguiente:
$ sudo br2684ctl -c 0 -b -a <VPI>.<VCI>
Los parámetros VPI y VCI varían dependiendo del proveedor ISP. En el caso de Arnet Argentina, los valores correspondientes son 0 y 33. |
Si todo sale bien, aparecerá esto en pantalla:
RFC1483/2684 bridge: Interface "nas0" created sucessfully RFC1483/2684 bridge: Communicating over ATM 0.0.33, encapsulation: LLC RFC1483/2684 bridge: Interface configured
Por último, tecleamos:
$ sudo ifconfig nas0 up
Asistente para configurar la conexión
A continuación hacemos esto:
$ tar xzf rp-pppoe-3.8.tar.gz $ cd rp-pppoe-3.8 $ ./go
Se iniciará un asistente el cual nos hará unas preguntas referidas a nuestra conexión, debemos responder lo siguiente (lo que está en negrita):
1. Enter your PPPoE user name: nombre de la cuenta por ejemplo: cuenta@arnet-ciudad-apb 2. Enter the Ethernet interface connected to the DSL modem: nas0 3. Enter the demand value: no 4. Enter the DNS information here: <DNS primario> 5. Enter the secondary DNS server address here: <DNS secundario> 6. Please enter your PPPoE password: (tu contraseña de Internet) 7. Please re-enter your PPPoE password: (confirmación de tu contraseña de Internet) 8. Choose a type of firewall (0-2): 1 9. Accept these settings and adjust configuration files (y/n)? y
Al escribir la contraseña, esta no se mostrará en pantalla (tampoco aparecerán los asteriscos), pero se escribirá de todos modos. |
Los parámetros DNS primario y DNS secundario varían dependiendo del proveedor ISP. En el caso de Arnet Argentina, los valores correspondientes son 200.45.191.35 y 200.45.191.40. |
Una vez terminado esto, solo nos falta editar un par de archivos. Abrimos el primero con GEdit (podemos usar este o cualquier otro editor de textos):
$ sudo gedit /etc/resolv.conf
En este fichero debemos asegurarnos de que los números de los DNS primario y secundario coincidan con lo que hemos asignado en el asistente, si son los números correctos no tocamos nada, o sea:
nameserver <DNS primario> nameserver <DNS secundario>
Luego hacemos lo siguiente:
$ sudo nano /etc/ppp/peers/adsl
Y pegamos el siguiente texto en el archivo, reemplazando usuario@proveedor por el nombre de nuestra cuenta de usuario:
# example configuration for the kernel space PPP over Ethernet driver # # See the manual page pppd( for information on all the options. # MUST CHANGE: replace myusername@realm with the PPP login name given to # your by your provider. # There should be a matching entry with the password in /etc/ppp/pap-secrets # and/or /etc/ppp/chap-secrets. user "usuario@proveedor" # Load the PPPoE plugin. plugin rp-pppoe.so # Ethernet interface to which the modem is connected. nas0 # Assumes that your IP address is allocated dynamically by the ISP. noipdefault # Try to get the name server addresses from the ISP. usepeerdns # Use this connection as the default route. defaultroute # Makes pppd "dial again" when the connection is lost. persist # Do not ask the remote to authenticate. noauth
Ahora verificamos los dos últimos archivos de texto:
$ sudo nano /etc/ppp/pap-secrets
$ sudo nano /etc/ppp/chap-secrets
Nos fijamos que al final aparezcan nuestro nombre de cuenta y contraseña, con el siguiente formato:
"usuario@proveedor" * "contraseña"
Luego cerramos los archivos.
Estos dos últimos pasos no tienen importancia, son sólo para verificar que estén correctos los datos de usuario de la conexión. |
Conexión a Internet
Para conectarnos a Internet, podemos usar este comando:
$ sudo pppd call adsl
O bien, este otro:
$ sudo pppoe-start
Ahora, cada vez que reiniciemos el equipo, tendremos que ejecutar los siguientes comandos:
$ sudo modprobe br2684 $ sudo br2684ctl -c 0 -b -a 0.33 $ sudo ifconfig nas0 up $ sudo pppd call adsl
Podemos añadirlos al archivo /etc/rc.local, para que se ejecuten automáticamente al inicio. Sería conveniente también que, en vez de colocar la carga del módulo br2684 en este archivo, la colocáramos en /etc/modules. Si hacemos esto, /etc/rc.local nos quedaría así: <bash>
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. br2684ctl -c 0 -b -a 0.33 ifconfig nas0 up pppd call adsl exit 0
</bash> Y /etc/modules, así:
# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. br2684 loop
Debemos recordar reemplazar el VPI 0 y el VCI 33 por los correspondientes a nuestro proveedor de Internet. |
Renovación de IP
Dado que Arnet trabaja con IP dinámica, la renovación de la misma requiere sólo desconectarse y reconectarse al servicio. Esto sirve generalmente para servicios de hosts gratuitos que manejan límite de descarga por IP. La desconexion dependerá del método de conexión usado. El comando pppd call adsl ofrece desconexión a través de "pkill pppd". El comando pppoe-start ofrece desconexión a través de "pppoe-stop".
El comando pppoe-start se asocia a 2 comandos definidos en el script: pppoe-status y pppoe-stop. El comando pppoe-status nos da información sobre el estado de la conexión:
# sudo pppoe-status
En caso de que la conexión no esté activa, obtendremos lo correspondiente:
# sudo pppoe-status pppoe-status: Link is down (can't read pppoe PID file /var/run/pppoe.conf-pppoe.pid.pppoe)
Si la conexión está activa:
# sudo pppoe-status pppoe-status: Link is up and running on interface ppp0 ppp0 Link encap:Point-to-Point Protocol inet addr:xxx.xxx.xxx.xxx P-t-P:xxx.xxx.xxx.xxx Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:37 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:3525 (3.4 KiB) TX bytes:4673 (4.5 KiB)
El comando pppoe-stop termina la conexión con el servicio.
# sudo pppoe-stop Killing pppd (14729) Killing pppoe-connect (14706)
Entonces, para desconectarnos, sólo debemos usar:
# sudo pkill pppd
o
# sudo pppoe-stop
Ahora solo tenemos que volver a conectarnos para una nueva IP.
El comando pppoe-stop no puede terminar una conexión iniciada por pppd call adsl ni el commando pkill pppd puede terminar una conexión iniciada con pppoe-start |
Script para conectar a Internet
Podemos hacer un script que ejecute los comandos listados anteriormente. Para eso, vamos a Aplicaciones -> Accesorios -> Editor de textos, y se abrirá el editor de textos gEdit. También podemos ejecutarlo desde terminal:
$ gedit
Podemos usar GEdit o cualquier otro editor de textos (por ejemplo: KWrite, nano o Vim). Y colocamos el siguiente texto dentro del archivo: <bash>
#!/bin/bash sudo modprobe br2684 sudo br2684ctl -c 0 -b -a 0.33 sudo ifconfig nas0 up sudo pppd call adsl
</bash> Ahora guardamos el archivo con extensión .sh en el directorio que queramos. Después, le damos permisos de ejecución:
$ sudo chmod +x script.sh
Donde, obviamente, script es el nombre que le hemos dado al archivo.
Ya tendremos creado el script, luego solo deberemos ejecutarlo desde una terminal para establecer nuestra conexión a Internet.
Script para renovar IP
Tomando lo aprendido antes, un script para renovar la IP tambien resulta fácil de crear. Recurriendo nuevamente al gEdit, tipeamos los siguiente:
#!/bin/bash sudo pkill pppd sudo pppd call adsl
o
#!/bin/bash sudo pppoe-stop sudo pppoe-start
Guardamos con extension .sh y asignamos permisos de ejecución.
# sudo chmod -x script-cambiarIP.sh
Ahora, para tener acceso rápido a nuestro script podemos crear un lanzador en nuestro Panel. Con un click de botón derecho en el Panel, desplegamos el menú y seleccionamos Agregar a Panel.... En la ventana de Agregar a Panel, clickeamos en Lanzador personalizado. Esto nos lanza a la ventana de Crear un lanzador, donde establecemos los parámetros de nuestro lanzador.
-Tipo: Aplicación en terminal (mandatorio)
-Nombre: Renovar IP (no es mandatorio)
-Comando: [PATH]/script-cambiarIP.sh (el script)
-Comentario: Desconecta y reconecta el servicio para cambiar la IP (no es mandatorio)
-Ícono: El ícono a usar (no mandatorio)
Donde [PATH]/ representa la ubicación de tu script. Si el mismo se encuentra en una carpeta en tu /home, entonces será /home/mi_nombre_de_usuario/carpeta/script-cambiarIP.sh.
Clickeando en el botón Icono podemos elegir el ícono que deseamos para nuestro lanzador. Si no elegimos uno, el ícono por defecto para aplicaciones es asignado de forma automática.
Una vez ingresados los parámetros obligatorios, podemos clikear OK para crear nuestro nuevo lanzador y lo veremos en nuestro Panel, listo para ser usado cuando tengamos necesidad de renovar nuestra IP.