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

  1. tar -zxvf driver.tgz

y lo compilaremos como se suele hacer

  1. make && make install

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

  1. 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

  1. depmod -a

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

  1. 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:

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

o

  1. 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

  1. 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):

  1.  
  2. tar -zxvf ipw2200-1.0.0.tgz
  3. cd ipw2200-1.0.0
  4. make && make install

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

  1.  
  2. cd /usr/lib/hotplug/firmware/
  3. wget http://bughost.org/firmware/ipw2200-fw-2.2.tgz
  4. tar -zxvf ipw2200-fw-2.2.tgz
  5.  

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

  1. ./load

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

  1.  
  2. centrino:~# iwlist scan
  3. lo Interface doesn't support scanning.
  4.  
  5. eth0 Interface doesn't support scanning.
  6.  
  7. eth1 Scan completed :
  8. Cell 01 - Address: 00:80:C8:17:33:3F
  9. ESSID:"PAIS-ROMANICO"
  10. Protocol:IEEE 802.11b
  11. Mode:Master
  12. Channel:1
  13. Encryption key:off
  14. Bit Rate:11 Mb/s
  15. Extra: Rates (Mb/s): 1 2 5.5 11
  16. Signal level=-70 dBm
  17. Extra: Last beacon: 8ms ago
  18. Cell 02 - Address: 00:80:5A:22:3A:64
  19. ESSID:"<hidden>"
  20. Protocol:IEEE 802.11bg
  21. Mode:Master
  22. Channel:6
  23. Encryption key:off
  24. Bit Rate:54 Mb/s
  25. Extra: Rates (Mb/s): 1 2 5.5 9 11 6 12 18 24 36 48 54
  26. Signal level=-22 dBm
  27. Extra: Last beacon: 1ms ago
  28. </hidden>

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:

  1. 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:

  1. iwconfig

Y debería salir algo como esto:

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

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:

  1.  
  2. iface eth1 inet static
  3. address 192.168.1.4
  4. netmask 255.255.255.0
  5. network 192.168.1.0
  6. broadcast 192.168.1.255
  7. gateway 192.168.1.1
  8. wireless_essid www.patoroco.net
  9. dns-nameservers 80.58.61.250 80.58.61.254
  10. dns-search PaToRoCo
  11.  

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

  1.  
  2. #!/bin/bash
  3.  
  4. #se cargan los módulos
  5. modprobe ieee80211_crypt
  6. modprobe ieee80211_crypt_wep
  7. modprobe ieee80211
  8. modprobe ipw2200
  9. echo "Módulos cargados";
  10. #se quita la red de cable
  11. ifconfig eth0 down
  12.  
  13. #se enciende la luz
  14. echo 1 > /proc/driver/acerhk/wirelessled
  15.  
  16. #levantamos la wireless
  17. ifup eth1
  18.  

/usr/bin/wiroff

  1.  
  2. #!/bin/bash
  3.  
  4. #se tira la wireless
  5. ifconfig eth1 down
  6.  
  7. #se descargan los módulos
  8. rmmod ipw2200
  9. rmmod ieee80211
  10. rmmod ieee80211_crypt_wep
  11. rmmod ieee80211_crypt
  12.  
  13. echo "Módulos descargados";
  14.  
  15. #se apaga la luz
  16. echo 0 > /proc/driver/acerhk/wirelessled
  17.  
  18. #levantamos la red de cable
  19. /etc/init.d/networking restart
  20.  

Y les dí permisos de ejecución:

  1.  
  2. chmod +x /usr/bin/wiron
  3. chmod +x /usr/bin/wiroff
  4.  

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

  1. apt-get install sudo

Y configuramos usando el comando visudo:

  1.  
  2. Cmnd_Alias WIRELESS= /usr/bin/wiron, /usr/bin/wiroff
  3. User_Alias ADMIN = patoroco
  4. ADMIN ALL= NOPASSWD: WIRELESS
  5. root ALL=(ALL) ALL
  6.  

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

  1.  
  2. sudo wiron
  3. sudo wiroff
  4.  

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:

  1.  
  2. #!/bin/bash
  3.  
  4. echo "Configurando teclas especiales"
  5.  
  6. setkeycodes e015 240
  7. setkeycodes e016 241
  8.  

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

  1.  
  2. cd /usr/share/keymaps/i386/qwerty/
  3. gunzip es.kmap.gz
  4. nano es.kmap

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

  1.  
  2. keycode 240 = F37
  3. keycode 241 = F38
  4.  
  5.  
  6. string F37 = "sudo wiroff 2> /dev/nullnclearn"
  7. string F38 = "sudo wiron 2> /dev/nullnclearn"
  8.  

Ahora guardamos e instalamos el mapa de teclado:

  1.  
  2. gzip -c9 es.kmap >es.kmap.gz
  3. loadkeys es.kmap.gz
  4. inst F ymap es.kmap
  5.  

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:

  1. 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

  1.  
  2. hotkeys -t acertm292
  3.  

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

  1.  
  2. exec hotkeys -t acertm292 & gnome-session
  3.  

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