fsam7440: Control del Botón Wireless del Fujitsu Siemens Amilo en Linux
23 de Septiembre de 2007 en Sistemas, Linux, Wireless
Lecturas: 9,591

Fujitsu Siemens Amilo M 7440Mi portátil, un Fujitsu Siemens Amilo M 7440, es uno de los mejores que he tenido. Tiene casi tres años y en su momento, un Centrino a 2GHz, 2 GB de RAM, 100 GB de disco y varios extras era una golosina… Pero tiene un defecto: el botón que activa la Wireless va por software, es decir, no está controlado por la BIOS y sin sistema operativo no se puede activar.

Éso es un verdadero problema en algunas situaciones empresariales, pero a mi nivel, lo que realmente quita las ganas es que cada vez que instalo una distribución Linux debo hacer peripecias para poner en marcha el “controlador” del switch wireless.

En este artículo dejo constancia y explico la forma de tener control sobre el interruptor de software de la Wireless del portátil desde cualquier distribución Linux (aunque para el ejemplo me basaré en Ubuntu ;) ).

Descargar el controlador

Por suerte, Alejandro y Javier Vidal Mata crearon un proyecto para solucionar este tema: RF Kill Switch’s Driver. Se trata de un módulo para los kernels 2.4.* y 2.6.* que permite activar y desactivar la radio de la tarjeta wireless del portátil.

De las versiones que hay disponibles, nos interesa la fsam-console-0.2, pues es la que nos permitira incluirla en scripts y demás ;)

Compilación

El paquete viene comprimido y casi preparado para ser makeado. En primer lugar debemos descomprimirlo en algún lugar que vayamos a considerar definitivo. No es absolutamente necesario, pues al final del proceso obtendremos el ejecutable, pero no me gusta separar los archivos ;) En mi caso lo guardo en un directorio llamado /programs/fsam7440/.

tar -jxvf fsam7440-console-0.2.tar.bz2

Antes de seguir debemos asegurarnos que tenemos las herramientas necesarias para hacer el proceso. Depende de la configuración de la instalación de linux se deberá ejecutar una o varias de las siguientes instrucciones:

apt-get install gcc-3.4
apt-get install make
apt-get install build-essential
apt-get install kernel-headers-’uname -r’

El primer paso de todos es situarnos dentro del directorio descomprimido y ejecutar

./configure

Éso nos dará un resultado que es el checking que hace el instalador para ver si el sistema dispone de las herramientas necesarias para compilar el módulo. Según veamos en los mensajes, deberemos ir instalando los paquetes necesarios (ver más arriba).

Será entonces cuando podemos generar el ejecutable:

make && make install

Es muy possible que nos salgan varios avisos. Siempre que sean avisos no hay problema, pero si son errores deberemos investigar su causa.

Probamos que funciona

Bién, una vez compilado tendremos un ejecutable a nuestra disposición, el fsam7440. Para probar que funciona ejecutamos el archivo y le pasamos un parámetro (un cero o un uno) que definirá si queremos encender la wireless o apagarla:

./fsam7440 1

./fsam7440 0

Con el primero encendemos la wireless y nos devolverá un mensaje del tipo RF On, y con el segundo la apagamos, devolviéndonos un mensaje del tipo RF Off. Cuando la encendamos se debería encender también el led de la wireless en el panel de leds del portátil.

Para quedarnos tranquilos y verificar que realmente funciona (y no sólo enciende y apaga los leds) con la wireless teóricamente encendida ejecutaremos un escaneado del entorno en busca de redes disponibles (claro, deberíamos saber de antemano que hay alguna disponible ;) ).

iwlist scanning

Ésto nos debería dar una lista de las redes inalámbricas a las que nos podemos conectar. Si no, es que no se ha compilado bién ;)

Encenderla automáticamente al iniciar el ordenador

Obviamente, no vamos a abrir una consola e introducir el comando cada vez que arranquemos el ordenador. De hecho, lo ideal sería tener un servicio y configurarlo para que arranque automáticamente con el inicio del ordenador.

En primer lugar deberemos crear un script de servicio. Nos vamos a /etc/init.d (por convención únicamente), creamos un archivo llamado wireless.sh y nos disponemos a editarlo:

touch wireless.sh

vim wireless.sh

una vez dentro, le insertamos el siguiente código (Atención! Este código es orientativo. Funciona aunque podría ser mejor).

#!/bin/sh -e
### BEGIN INIT INFO
# Provides: wireless
# Required-Start: fsam7440
# Required-Stop: fsam7440
### END INIT INFO

case “$1″ in
start)
echo “Activating RF Wireless…”
/programs/fsam7440/fsam7440-console-0.2/fsam7440 1
echo “Done”
exit 0
;;

stop)
echo “Deactivating RF Wireless…”
/programs/fsam7440/fsam7440-console-0.2/fsam7440 0
echo “Done”
exit 0
;;

force-reload|restart)
echo “Reactivating RF Wireless…”
/programs/fsam7440/fsam7440-console-0.2/fsam7440 0
/programs/fsam7440/fsam7440-console-0.2/fsam7440 1
echo “Done”
exit 0
;;

*)
echo “Usage: /etc/init.d/wireless {start|stop|restart|force-reload}”
exit 1
;;
esac
exit 0

NOTA: Todas las comillas que aparecen aquí deben ser comillas dobles normales.

Vale, ya podemos guardarlo. Ahora tenemos un servicio llamado wireless.sh que acepta el parámetro start, stop, restart y force-reload ;)

El siguiente y último paso es agregarlo al proceso de arranque del sistema. Aquí cada distribución de Linux funcionará a su manera. En nuestro ejemplo con Ubuntu, lo hemos situado en los procesos locales (se arrancará en todas las situaciones). Entramos en el directorio /etc/rcS.d y generamos un enlace simbólico a nuestro servicio. Vamos a situarlo justo después de que se arranque la red normal (en mi caso, S40networking), así que el comando a ejecutar es:

ln -s ../init.d/wireless.sh S42wireless.sh

Perfecto. Si ahora hacemos un ls -l del directorio veremos el nuevo elemento a tener en cuenta en el arranque:

lrwxrwxrwx 1 root root 18 2007-09-23 12:45 S42wireless.sh -> ../init.d/wireless.sh

Conclusión y Comentarios
La verdad es que no es un proceso complicado. Son unos cuantos pasos, éso si, pero con paciencia y fijándonos en lo que hacemos llegamos a buen puerto. El problema es tener que repetir todo el proceso con cada distribución que instalamos en el portátil, que acaba siendo muy pesado.

Todas las instrucciones anteriores las he hecho con el usuario root. Es posible hacerlas todas con sudo, como se quiera.

Enlaces

Tags: , , , , , ,
 Enviar a Fresqui

Leer los Comentarios

[ # 7299 ] Comment desde Ana [21 de Octubre de 2007, 03:36]

Hola!

Sólo quería darte las gracias porque la guía para el Amilo me ha sido muy, muy útil. En mi caso, con una pequeña variación, porque mi ordenador es del modelo 7400 en lugar de 7440, así que tuve que bajar el archivo correspondiente a ese modelo (de aquí: http://zwobbl.homelinux.net/pub/). Todos los demás pasos fueron parecidos y al final he conseguido tener internet en mi portátil con Ubuntu.

A mí también me ha dado un resultado buenísimo el ordenador, creo que hace ya cuatro años que lo compré y funciona de maravilla. Y ahora con linux va a empezar a ir mejor todavía… :-D

Un saludo

[ # 7316 ] Comment desde Xavi [21 de Octubre de 2007, 01:15]

Me alegro que te haya sido de utilidad… A mi me costó lo suyo en su momento hacer todo ésto, pero después de 3 distribuciones le cojí el truco… y de ahí el artículo.

Saludos!

[ # 7485 ] Comment desde Alberto [24 de Octubre de 2007, 05:48]

Pues a mi me esta costando horrores. Consegui instalarlo hace meses con las instrucciones de la web de Kill Switch (la primera en tus links) de una manera muchisimo más sencilla (de hecho copiando y pegando los comandos que vienen en el apartado de instalacion de esta web). Ahora, tras formatear el disco, he instalado Windows y Ubuntu (a través de Wubi). Y ya no me funciona tal como lo hice antes. He encontrado tu web pero no tengo suerte, ni tampoco conocimientos suficientes ni paciencia. Voy a seguir dandome cabezazos y si no vuelvo y te doy mas informacion para ver si me puedes ayudar. Pero ya te digo, tal como lo hice en esa web me resultó mucho más sencillo, aunque ahora ya no me funciona haciendolo dela misma forma qu elo hacía antes. Ni idea…

[ # 7489 ] Comment desde Xavi [24 de Octubre de 2007, 07:04]

Estoy contigo de que hay formas más fáciles de hacerlo. Ésta es la forma en que acabo dejando el invento para el uso normal, la que para mí es más elegante y correcta ;)

Sobre el tema de que a tí no te funciona, no soy ningún crack, pero si quieres miramos de solucionarlo ;) Dónde te has quedado? Cuál es el síntoma? xD

Saludos.

[ # 7542 ] Comment desde Jor [26 de Octubre de 2007, 12:00]

Hola…
muy útil el driver en Linux, pero ¿y en Solaris 10?

¿Alguien ha sido capaz de hacer funcionar el puñetero botón en Solaris?
¿Será muy dificil pasar el código del driver de linux a solaris?

Saludos

[ # 7563 ] Comment desde Xavi [26 de Octubre de 2007, 08:07]

Buenas.

Pues sinceramente, ni idea. No he instalado nunca Solaris en mi portátil… se puede?

[ # 35919 ] Comment desde Yovanis [13 de Septiembre de 2008, 12:56]

Por favor, alguien me puede ayudar para activar mi wireless.
Mi laptop es un Amilo Li 2735, ya no sé que hacer para que funcione, ahora tengo instaldo ubunt 8.04, pero nada. El led de la wifi no enciende de ninguna manera.
Ya he probado con el fsam7440 sin resultados, se ve que para mi caso cambian los valores de puerto y estado, pero no sé que valor poner.

Gracias de antemano.

Escribe un Comentario





Estadísticas