Wireless en Acer TravelMate 292

calendario10/02/2005 reloj22:35 calendarioCategorías: Peripecias ComentarComentar

Bueno, este es un documento que tenía en mente hace bastante, y que teneis que agradecer su publicación a un CD de Windows 98, que metí para hacer una prueba, y me limpió todas las particiones que tenía, incluida la de mi magnífico Debian.
Bueno, poco a poco voy re-montando el portatil con Debian, aún receloso de Gentoo, pero cada vez le voy cogiendo más gustillo a la espiral 🙂
Y nada más, me pongo manos a la obra, ampliad el post para leer el artículo completo, que era por no hacer pesada la página principal 🙂

Antes de nada decir, que voy a explicar sobre un portatil Acer TravelMate 292 LCi, con Debian Sarge, aunque vale, sin apenas modificaciones, para casi toda la gama de portátiles Acer.

Lo primero de todo es activar las teclas especiales, para lo cual iremos a la página de Acer Hot Keys, y nos descargaremos el driver (yo usé la version 0.5.19), lo descomprimiremos con

tar -zxvf driver.tgz

y lo compilaremos como se suele hacer

make && make install

Para iniciarlo luego y que vaya, hay que pasarle al módulo la serie de nuestro portátil:

modprobe acerhk force_series=290

En el caso de que tengais mi mismo modelo, o cualquiera de la serie 290, os he dejado compilado y optimizado para nuestra serie el driver (abajo, donde las descargas), solo teneis que bajar el acerhk.ko y copiarlo en /lib/modules/version_del_kernel/extra/acerhk.ko, y hacer un

depmod -a

para actualizar la lista de módulos disponibles. Para cargarlo, se hace sin parámetros:

modprobe acerhk

Con esto ya tendremos las teclas multimedia configuradas, además de otras opciones, como la de wirelessled, (la lucecita de la wireless), la cual hay que encender, o sinó la wireless no tirará 🙂
Para encenderla no tenemos que hacer más que:

echo "1" > /proc/driver/acerhk/wirelessled

o

echo "0" > /proc/driver/acerhk/wirelessled

para apagarla. Recordar que es necesario tener el botón de la wireless activado, ya que si está desactivado, la luz tampoco se encenderá :).

Una vez que hemos conectado la wireless, hay que configurar los drivers, para lo que descargaremos lo primero wireless-tools

apt-get install wireless-tools

que bajará aplicaciones tan interesantes como iwlist, que usaremos luego para escanear las redes.
Tras esto, iremos a la web del proyecto ipw2200, y nos bajaremos y compilaremos el driver (yo usé ipw2200-1.0.0.tgz):

tar -zxvf ipw2200-1.0.0.tgz
cd ipw2200-1.0.0
make && make install

Y después bajaremos el firmware, y lo descomprimos en /usr/lib/hotplug/firmware/

cd /usr/lib/hotplug/firmware/
wget http://bughost.org/firmware/ipw2200-fw-2.2.tgz
tar -zxvf ipw2200-fw-2.2.tgz

Ahora nos vamos a la carpeta donde descomprimimos ipw2200-1.0.0.tgz, y hacemos:

./load

Si todo ha ido bien, ahora podremos hacer como root:

centrino:~# iwlist scan
lo        Interface doesn't support scanning.

eth0      Interface doesn't support scanning.

eth1      Scan completed :
          Cell 01 - Address: 00:80:C8:17:33:3F
                    ESSID:"PAIS-ROMANICO"
                    Protocol:IEEE 802.11b
                    Mode:Master
                    Channel:1
                    Encryption key:off
                    Bit Rate:11 Mb/s
                    Extra: Rates (Mb/s): 1 2 5.5 11
                    Signal level=-70 dBm
                    Extra: Last beacon: 8ms ago
          Cell 02 - Address: 00:80:5A:22:3A:64
                    ESSID:""
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Channel:6
                    Encryption key:off
                    Bit Rate:54 Mb/s
                    Extra: Rates (Mb/s): 1 2 5.5 9 11 6 12 18 24 36 48 54
                    Signal level=-22 dBm
                    Extra: Last beacon: 1ms ago

Donde vemos en mi caso dos redes: la de una organización de debajo de mi casa, y la mía oculta, a la cual, para conectarme tendré que hacer:

wlan essid www.patoroco.net

Y ya debería haber conectado con ese nodo. Aunque hay que decir, que por defecto conecta con la que más señal tiene, por lo que si solo teneis vuestra wireless, esto se ubiese hecho automáticamente. Para comprobar a donde estais conectados se hace:

iwconfig

Y debería salir algo como esto:

eth1      IEEE 802.11g  ESSID:"www.patoroco.net"
          Mode:Managed  Frequency:2.437 GHz  Access Point: 00:80:5A:22:3A:64
          Bit Rate=54 Mb/s   Tx-Power=20 dBm
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=100/100  Signal level=-22 dBm  Noise level=-87 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Esto sería suficiente en el caso de ser por dhcp, pero yo lo tengo estático para enrutar mejor los puertos del router, y necesité configurar el archivo /etc/network/interfaces, añadiendo esto:

iface eth1 inet static
        address 192.168.1.4
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        wireless_essid www.patoroco.net
        dns-nameservers 80.58.61.250 80.58.61.254
        dns-search PaToRoCo

Y ya con un ifup eth1 levantaría la red, teniendo la wireless funcionando perfectamente (recordar que para apagarla sería .unload), pero siempre está bien un poco de automatización :D.
En mi caso usaré Hotkeys para las X, y en la consola una modificación casera del mapa del teclado. Lo primero de todo creé un par de programas en bash, uno para encender la wireless y otro para apagarla:
/usr/bin/wiron

#!/bin/bash

#se cargan los módulos
modprobe ieee80211_crypt
modprobe ieee80211_crypt_wep
modprobe ieee80211
modprobe ipw2200
echo "Módulos cargados";
#se quita la red de cable
ifconfig eth0 down

#se enciende la luz
echo 1 > /proc/driver/acerhk/wirelessled

#levantamos la wireless
ifup eth1

/usr/bin/wiroff

#!/bin/bash

#se tira la wireless
ifconfig eth1 down

#se descargan los módulos
rmmod ipw2200
rmmod ieee80211
rmmod ieee80211_crypt_wep
rmmod ieee80211_crypt

echo "Módulos descargados";

#se apaga la luz
echo 0 > /proc/driver/acerhk/wirelessled

#levantamos la red de cable
/etc/init.d/networking restart

Y les dí permisos de ejecución:

chmod +x /usr/bin/wiron
chmod +x /usr/bin/wiroff

Ahora instalamos sudo, un programa que nos permite ejecutar programas desde nuestro usuario, como si lo ejecutase root:

apt-get install sudo

Y configuramos usando el comando visudo:

Cmnd_Alias WIRELESS= /usr/bin/wiron, /usr/bin/wiroff
User_Alias ADMIN = patoroco
ADMIN ALL= NOPASSWD: WIRELESS
root    ALL=(ALL) ALL

Lo que nos permitiría ejecutar perfectamente desde nuestro usuario (patoroco en mi caso):

sudo wiron
sudo wiroff

Ahora solo nos queda asignar las teclas que queramos a estos programas. Para ello, crearemos un script para las teclas desconocidas en la consola, ya que en mi caso, cuando subía y bajaba el botón de la wireless en la consola, salía un molesto mensaje de que añadiese los códigos de las letras, por lo que creé /etc/init.d/acerk con el siguiente contenido:

#!/bin/bash

echo "Configurando teclas especiales"

setkeycodes e015 240
setkeycodes e016 241

Se pueden añadir más para las otras teclas multimedia, pero para lo que vamos a usar nos vale.
Ahora modificamos el mapa del teclado, que en mi caso se encuentra en /usr/share/keymaps/i386/qwerty/es.kmap.gz

cd /usr/share/keymaps/i386/qwerty/
gunzip es.kmap.gz
nano es.kmap

Y añadimos las teclas que seteamos antes, aparte de los comandos que queremos que ejecuten:

keycode 240 = F37
keycode 241 = F38


string F37 = "sudo wiroff 2> /dev/nullnclearn"
string F38 = "sudo wiron 2> /dev/nullnclearn"

Ahora guardamos e instalamos el mapa de teclado:

gzip -c9 es.kmap >es.kmap.gz
loadkeys es.kmap.gz
inst F ymap es.kmap

Y ya podemos comprobar, como subiendo y bajando el botoncito de la wireless, se enciende y se apaga la wireless. Apuntar que lo de 2> /dev/null, es para que la salida de errores se envíe a /dev/null, o lo que es lo mismo, a ninguna parte.

Ahora toca configurarlo para las X, donde en mi caso, usaré los botones P1 y P2 para encender y apagar la wireless.
Instalamos hotkeys:

apt-get install hotkeys

Y creamos el fichero /usr/share/hotkeys/acertm292.def a nuestro gusto.
Y ahora solo falta arrancar el hotkeys cuando arranquemos las X, bien mediante gnome-session-properties añadiedo un programa al inicio con el comando

hotkeys -t acertm292

O bien, si arrancais con startx, vuestro .xinitrc quedaría así:

exec hotkeys -t acertm292 & gnome-session

Y bueno, ya está todo creo. Solo quería pedir disculpas por las faltas de ortografía, pero soy de los que pienso que lo importante es el contenido, no la forma 🙂

Se da por dicho, pero no me hago responsable de que lo explicado en este manual queme algún equipo o demás cosas malas por un uso malintencionado :).

Comentarios