Linux
en el Eumitcom WL11000SA-N
================================
Este es una especie de como (howto) que te ayudará a hacer que tu access
point basado en la placa Eumitcom WL11000SA-N use Linux y soporte muchas más
cosas de las que soportaba originalmente.
El autor (Santiago García Mantiñán x=manty;x@x.net) no se hace responsable
de los daños que se puedan ocasionar a ningún aparato por el buen o mal uso
que de esta información pueda hacerse.
¿Qué es un access point basado en una placa Eumitcom WL11000SA-N?
----------------------------------------------------------------
Se trata de access points que se venden o vendieron bajo distintas marcas,
entre ellas:
* US Robotics (USR 2450)
* SMC EZconnect (2652W)
* Addtron (AWS-100)
Esta plataforma tiene la peculiaridad de ser totalmente compatible con Linux
y que la gente del proyecto OpenAP ha desarrollado para ella una
distribución basada en este sistema operativo. Con lo cual podemos tener un
software totalmente libre, y por tanto modificable, funcionando en un AP, lo
cual incrementa muchísimo las capacidades de esta maquinilla.
Las características físicas de la máquina son las siguientes:
* Ethernet Controller -- NE2000
* Processor -- AMD ELAN SC400
* Flash -- 1 Megabyte
* RAM -- 4 Megabytes
O sea, es básicamente un 486 a 33 Mhz pequeñito.
¿Qué hace falta para poder poner Linux en el AP?
------------------------------------------------
Se necesita una tarjeta pcmcia de memoria lineal de al menos 2 megabytes,
las hay de dos tipos, las SRAM, que llevan una pila para mantener su
contenido, y las flash, que como no son volátiles no llevan pila alguna.
Toda la documentación habla de tarjetas o bien de 2 megas o de 4 megas,
tarjetas de mayor capacidad pueden no funcionar.
No sirven las tarjetas compact flash que se suelen usar en las cámaras y
otros dispositivos portátiles, estas tarjetas no son lineales, se comportan
como discos duros y su lectura es por sectores, por lo que no sirven.
Necesitaremos también un cable serie null modem (cruzado) y un emulador de
terminal como por ejemplo el minicom.
Al grano, ya tengo todo, ¿cómo narices hago?
--------------------------------------------
Con el access point apagado, debes abrirlo y sacar la tarjeta wireless
pcmcia que viene incluida dentro, para ello suele bastar con rascar el
pegamento de una de las dos sujeciones hasta que se pueda presionar para
liberar la placa metálica que fija la tarjeta.
Ahora prepararemos la tarjeta de memoria, esta tarjeta tiene que ser de al
menos dos megas ya que contendrá dos Linux, la imagen que se va a usar en el
access point (que mide un mega) y la que se encargará de grabar esta imagen
en la memoria flash del AP.
Todas las distribuciones para los AP generan un par de imágenes, una de un
mega llamada flash y otra de dos megas llamada sram, si no quieres
compilarte una en sus webs (ver las URLS al final del doc) sueles
encontrarte imágenes precompiladas.
La primera vez que queremos poner Linux en el AP necesitaremos la tarjeta de
memoria llena por completo con las imágenes sram, es decir, si la tarjeta es
de dos megas grabaremos una imagen sram en ella, sin embargo si la tarjeta
es de cuatro megas grabaremos dos imágenes de dos megas contiguas. Las
siguientes veces que queramos programar el AP ya no será necesario abrirlo o
usar la tarjeta de memoria, ya que podremos hacerlo usando el comando
reflash desde el Linux del propio AP.
Existen varias formas de copiar la imagen sram a la tarjeta (sram o flash)
que vamos a usar para programar el AP:
Si tenemos una tarjeta sram de dos megas:
cat sram > /dev/mem0c0c
Si tenemos una tarjeta sram de cuatro megas:
cat sram sram > /dev/mem0c0c
Esta forma de grabarlas puede funcionar también para las tarjetas flash, sin
embargo solo funcionará bien si la tarjeta está borrada, y no si se quiere
reprogramar, por lo que se recomienda usar el comando wrflash incluido por
ejemplo en la distribución original del OpenAP o bien en el paquete de alios
que podemos bajar de http://www.telos.de/download/
Usando este comando haríamos:
Si tenemos una tarjeta flash de dos megas:
wrflash -e -f sram /dev/mem0c0c
Si tenemos una tarjeta flash de cuatro megas:
cat sram sram > sramdoble ; wrflash -e -f sramdoble /dev/mem0c0c
Una vez programada la tarjeta de memoria con la imagen que queremos usar,
debes ponerla en el lugar que ocupaba la tarjeta wireless.
A continuación deberás localizar los agujeros correspondientes al jumper
JP2, que están entre el AMD Elan y los leds amarillo y verde más proximos a
este. Deberás, todavía con el AP apagado, hacer un cortocircuito entre estos
dos agujeros usando por ejemplo un clip.
Bueno, si queremos ver lo que sucede cuando arranquemos la máquina
deberíamos conectarla con el cable serie null modem a un ordenador donde
se ejecutaría el emulador de terminal, el cual debe de estar ajustado
a 8 bits, sin paridad y con un bit de stop, lo que suele escribirse
como 8N1, y con una velocidad de 4800 o 9600 bps (depende del Linux que
vayamos a grabar, el OpenAP original iba a 9600, pero últimamente todos
tienden a usar 4800, mira la documentación de la distribución que vayas a
flashear).
Ya estamos listos, vamos a flashear el AP, para lo que nos prepararemos para
sacar el clip, cosa que habrá que hacer después de enchufar el AP y en cuanto
empiecen a parpadear los dos leds que están más alejados de nuestro clip. El
parpadeo de los leds debe de tener una frecuencia de aproximadamente un
hercio, así a ojo.
Pues ale, eso, si no lo has hecho ya, enchúfalo y cuando empiezan a flashear
los leds saca el clip. Si todo fue bien deberías de estar viendo un arranque
de Linux en el terminal. Este arranque debería de hacer todo de forma
automática, una vez que arranca flashea el AP y reinicia de nuevo el AP para
arrancar ya el Linux que acabas de grabar.
Es bastante normal que en alguna de estas distribuciones salgan algunos de
errores indicando que se está reintentando la grabación de algún byte de la
flash, tranquilos, no pasa nada, mientras que termine el proceso y reinicie,
todo va bien.
Pues nada, si todo ha ido bien deberíais de haber visto reiniciar el AP y
cargar el kernel de Linux de nuevo, aunque esta vez desde su propia flash y
no de la memoria pcmcia. En fin, si es así podéis apagarlo y cambiar la
tarjeta de memoria por la wireless para arrancar de nuevo el AP con Linux y
ya con la wireless.
En lo sucesivo (como flashear de nuevo)
---------------------------------------
Para volver a flashear otra versión de Linux en el AP una vez que lo tenemos
con Linux, no necesitamos la tarjeta de memoria, podremos hacerlo con el
comando reflash desde la consola del AP, si bien este comando varía según la
distribución escogida.
Así LinuxAP usa tftp para bajarse la imagen, por lo que necesitaremos un
servidor de tftp en el que tengamos disponible la imagen, la sintaxis de
LinuxAP sería: reflash -s flash IPdelservidortftp.
Por otro lado openap y openap-ct usan http para bajarse la imagen, con lo
que con ponerla disponible en cualquier servidor web ya está, la sintaxis en
este caso sería: reflash URLcompletadelaimagen.
Las imágenes a usar en el caso de reflash son las imágenes de un mega que
generan las distribuciones y que suelen tener por nombre "flash".
Notas adicionales
-----------------
Es conveniente, sobre todo si queremos utilizar funciones avanzadas del AP
como WDS, que actualicemos el firmware de la tarjeta que acompaña al AP a la
versión más moderna posible, la que se tiende a utilizar en estos momentos
es la 1.5.6, ya que antes de la versión 1.5.X el firmware tenía varios bugs
que afectaban a estas funciones. Para ello podemos aprovechar cuando
tengamos la tarjeta wireless fuera del AP, la pinchamos en un PC y la
actualizamos.
Sobre el driver que usamos, es el hostap, os recomiendo usar la ultima
versión estable disponible, aunque ahora mismo en vez de la estable (la
0.0.2) casi que os recomendaría pillaros el la versión de CVS que tiene
corregido un bug que podía colgar completamente la máquina, aún le queda
mucho que andar a este driver, pero teniendo en cuenta la cantidad de
hardware tan distinto que tiene que soportar yo casi diría que hace
milagros. En mi caso en mi AP Eumitcom las últimas versiones no van muy
estables, pero en las otras máquinas que tengo si va muy bien. Esperemos que
siga mejorando.
Para hacer la actualización del firmware en la flash de la tarjeta wireless
hoy por hoy no se recomienda hacerla con Linux :-( aunque se está trabajando
en mejorar esto, hasta hace poco era imposible por culpa de un bug del
driver, ahora está desaconsejado, en cuanto se pruebe a fondo y se termine
de pulir ya podremos flashear el firmware incluso desde el AP.
Si vais a hacer la actualización en Windows y tenéis una tarjeta USR como
las que vienen en los AP de USR necesitareis el driver que podeis obtener
en: http://www.usr.com/support/2410/2410-files/Driver_USR03_1.33.exe ojo
porque no todas las versiones del driver de USR soportan el upgrade de
firmware, esta versión si lo hace. Además necesitareis la utilidad de
actualización que os la podeis bajar desde:
http://www.usr.com/support/2410/2410-files/USR_Firmware_Update_Tool.exe
Y el firmware a flashear por ahí se puede uno descargar versiones hasta la
1.4.9, pero no he conseguido ninguna url donde este disponible el firmware
1.5.6 para estas tarjetas, si las he conseguido para tarjetas más modernas,
por ejemplo, los de Demarc suelen tener los firms más modernos para su
tarjetas, pero estos solo sirven para las tarjetas modernas, no para las que
tienen como NIC id 0x8002 o 0x8003, en todo caso por si a alguien le
interesa para tarjetas más modernas (prism 2.5, id 0x800a y superiores):
http://www.demarctech.com/downloads/reliawave-zm/prism25-156.zip
el firm secundario para estas tarjetas es el sf010506.hex, mientras que el
de las antiguas es el s1010506.hex, yo he probado el firmware 1.5.6 en las
tarjetas que vienen con el USR (USR 2410) y a mi me va bien, al igual que
en mis tarjetas Conceptronic.
URLS
----
El proyecto OpenAP original:
http://opensource.instant802.com/
El proyecto OpenAP-ct, basado en el original pero actualizado:
http://tools.collegeterrace.net/openap-ct/
La home del LinuxAP:
http://linuxap.ksmith.com/
El openap-ng:
http://www.red-bean.com/~proski/openap-ng/
Otras doc sobre el tema:
http://www.olotwireless.net/castella/linuxap.htm
http://www.zaragozawireless.org/zgzwl/wk/index.php/USR2450
Mi home page, o donde encontrar este documento:
http://manty.net
La home page de nuestra red aquí en Betanzos:
http://betawl.net