Modem Huawei SmartAX MT 810

De Guía Ubuntu
Saltar a: navegación, buscar

En este artículo se explica cómo hacer funcionar correctamente el modem Huawei SmartAX MT 810 (también conocido como "el alfajor" debido a su forma redondeada) y otros modems que responden a la misma configuración, los cuales se listan en el apartado Modems compatibles de este artículo.

Estos modems utilizan 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, 6.06 y 6.10 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 las versiones 7.04 y 7.10 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.

Nota idea.png El modem de Huawei es distribuido de manera gratuita junto con el servicio de banda ancha de Arnet Argentina. Este manual está basado en ese ISP, aunque se intenta generalizar para que sea aplicable a otros proveedores.

FUENTES: Blog de PoMeLo; Ubuntu-ES: lauchacba; Ubuntu-ES: pablore79; Kubuntu-ES: YAFU.

Modems compatibles

Los siguientes modems son compatibles con el driver y el firmware cuya instalación se explica en este artículo:

  • Huawei SmartAX MT 810
  • Sagem Fast 800
  • Sagem Fast 908
  • Comtrend CT 350
  • Comtrend CT 361
  • US Robotics USR9000 Sureconnect
  • Telindus ND 220 Arescom
  • Elcon 111U
  • Aztech 206U
  • Dlink DSL-200i
  • Arescom NDS1060
  • ECI B-FOCuS 150A II
  • Aethra Starmodem
  • Teledat 300 USB
  • Zoom 5510B
  • Asus AAM6000UG

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

Nota advertencia.png 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

Nota advertencia.png Este paso sólo es aplicable a las versiones de Ubuntu 5.10 "Breezy Badger", 6.06 "Dapper Drake" LTS 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 una 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>
Nota clasica.png 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
Nota clasica.png Al escribir la contraseña, esta no se mostrará en pantalla (tampoco aparecerán los asteriscos), pero se escribirá de todos modos.
Nota clasica.png 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.
Nota idea.png Si cometiste algún error en este paso (usuario, contraseña, DNS, etc...), termina de ingresar los datos. Una vez de vuelta en el prompt de la terminal, vuelve a ejecutar ./go e introduce los datos correctos.

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: <bash>

# 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

</bash>

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.

Nota clasica.png 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
Nota advertencia.png 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.

Nota clasica.png 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: <bash>

#!/bin/bash
sudo pkill pppd
sudo pppd call adsl

</bash>

o: <bash>

#!/bin/bash
sudo pppoe-stop
sudo pppoe-start

</bash>

Guardamos con extensión .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. Desplegamos el menú contextual del Panel (clic con el botón secundario del ratón) y seleccionamos Agregar a Panel.... En la ventana de Agregar a Panel, pulsamos 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 (obligaatorio)
  • Nombre: Renovar IP (no obligaatorio)
  • Comando: [PATH]/script-cambiarIP.sh (el script)
  • Comentario: Desconecta y reconecta el servicio para cambiar la IP (no obligatorio)
  • Ícono: El ícono a usar (no obligatorio)

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.

Nota clasica.png El lanzador DEBE ser del tipo Aplicación en terminal para garantizar la correcta ejecución del mismo en una terminal. Dado que los comandos pppd call adsl/pkill pppd y pppoe-start/pppoe-status/pppoe-stop requieren privilegios de root, esto nos asegura que la terminal ejecutando el script nos permita ingresar la contraseña cuando ésta sea necesaria.

Ver también

Enlaces externos