Esta receta es un resumen quick & dirty de los pasos necesarios para instalar un sistema OpenWRT estándar en La Fonera. Básicamente es una traducción simplificada de las dos recetas que aparecen en las referencias.
IMPORTANTE: Algunos comandos de esta receta pueden bloquear (brick) tu fonera (con erótico resultado). Así que queda bajo tu responsabilidad, luego no me llores :-)
Accede a la fonera por ssh y ejecuta lo siguiente:
root@OpenWrt:~# *wget http://fonera.info/camicia/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma* Connecting to fonera.info[87.106.220.204]:80 openwrt-ar531x-2.4-v 100% |*****************************| 512 KB 00:00 ETA root@OpenWrt:~# *mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7* Unlocking vmlinux.bin.l7 ... Erasing vmlinux.bin.l7 ... Writing from openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma to vmlinux.bin.l7 ... [w] root@OpenWrt:~# *sync; reboot*
root@OpenWrt:~# *cd /tmp* root@OpenWrt:/tmp# *cp /dev/mtd/5 /tmp/mtd5* root@OpenWrt:/tmp# *cp /dev/mtd/6 /tmp/mtd6* root@OpenWrt:/tmp# *wget http://fonera.info/camicia/out.hex* Connecting to fonera.info[62.81.199.144]:80 out.hex 100% |*************************************| 4096 00:00 ETA:-- ETA root@OpenWet:/tmp# *md5sum out.hex* d5a5ee5817da231684c6198801b5cb1f out.hex
Comprueba que el MD5 corresponde para asegurarte de que el fichero ha bajado correctamente.
root@OpenWrt:~# *mtd erase "FIS directory"* Unlocking FIS directory ... Erasing FIS directory ... root@OpenWrt:~# *cat mtd5 >/dev/mtd/5* root@OpenWrt:~# *cat out.hex >/dev/mtd/6* root@OpenWrt:~# *sync* root@OpenWrt:~# *md5sum out.hex /dev/mtd/6 mtd5 /dev/mtd/5* d5a5ee5817da231684c6198801b5cb1f out.hex d5a5ee5817da231684c6198801b5cb1f /dev/mtd/6 2d5c82c2a7785e65640199987000cee5 mtd5 2d5c82c2a7785e65640199987000cee5 /dev/mtd/5
Todo lo que has hecho antes sirve ni más ni menos que para habilitar el acceso telnet al RedBoot. Lo siguiente es para comprobar que realmente lo has conseguido.
Si todo ha ido bien, cuando reinicies la fonera, el RedBoot abrirá un servidor telnet durante unos segundos en la dirección 192.168.1.254:9000. Si la interfaz de red de tu PC no tiene una IP en el rango 192.168.1.0/24, tienes que añadirle una para poder conectar con el RedBoot. Lo habitual es que tu PC y la fonera estén conectados al mismo switch. Para que no te quedes sin conexión a internet y puedas seguir leyendo esta receta, en lugar de cambiarle la IP, es mejor que le añadas otra, para lo cual ejecuta esto en el PC:
# ip addr add 192.168.1.100/24 dev eth0
Obviamente no debe haber ningún otro equipo que tenga esa IP ni tampoco la de la fonera.
Lo siguiente es un scriptillo que debes ejecutar en el PC. Este script se encarga de hacer telnet a la fonera en el momento justo.
root@OpenWrt:~# <b>while true; do fping -t 200 192.168.1.254 && break; done; sleep 5; echo -e "\x3" | nc -w 1 -vvv 192.168.1.254 9000; telnet 192.168.1.254 9000</b> 192.168.1.254 is unreachable 192.168.1.254 is unreachable ICMP Host Unreachable from 192.168.1.100 for ICMP Echo sent to 192.168.1.254 192.168.1.254 is unreachable 192.168.1.254 is alive 192.168.1.254: inverse host lookup failed: Unknown host (UNKNOWN) [192.168.1.254] 9000 (?) open == Executing boot script in 4.130 seconds - enter ^C to abort ^C RedBoot> net timeout sent 2, rcvd 76 Trying 192.168.1.254... Connected to 192.168.1.254. Escape character is '^]'. RedBoot>
La única forma que tiene el RedBoot de descargar ficheros de la red es con un cliente TFTP. Por eso lo más fácil es que pongas un servidor TFTP en tu PC (receta). Ejecuta lo siguiente en el PC para descargar los ficheros necesarios en /srv/tftp, que es el directorio que indica dicha receta:
# wget http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/openwrt-atheros-2.6-vmlinux.lzma -O /srv/tftp/vmlinux # wget http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/openwrt-atheros-2.6-root.squashfs -O /srv/tftp/squashfs
Cuando tengas listo el servidor TFTP y los ficheros en su sitio puedes volver con la fonera. Ejecuta lo siguiente desde el RedBoot. Algunos de estos comandos pueden tardar varios minutos, paciencia y no los cortes que la lías.
RedBoot> *ip_address -l 192.168.1.254 -h 192.168.1.100*
IP: 192.168.1.254/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.100
RedBoot> *load -r -b %{FREEMEMLO} vmlinux*
Using default protocol (TFTP)
Raw file loaded 0x80040c00-0x80100bff, assumed entry at 0x80040c00
RedBoot> *fis init*
About to initialize [format] FLASH image system - continue (y/n)? *y*
*** Initialize FLASH Image System
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> *fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7*
... Erase from 0xa8030000-0xa80f0000: ............
... Program from 0x80040c00-0x80100c00 at 0xa8030000: ............
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> *fis free*
0xA80F0000 .. 0xA87E0000Estos datos son importantes (sobre todo si a ti te salen diferentes que lo que ves aquí). Resta estas dos números en hexadecimal porque lo necesitas para un comando posterior. Lo puedes hacer con bc:
$ bc obase=16 ibase=16 A87E0000 - A80F0000 *6F0000*
La imagen del sistema de ficheros…
RedBoot> *load -r -b %{FREEMEMLO} squashfs*
Using default protocol (TFTP)
Raw file loaded 0x80040c00-0x80160bff, assumed entry at 0x80040c00Pasarlo a flash. Aquí es dónde tienes que utilizar la dirección que calculaste antes:
RedBoot> *fis create -l 0x6f0000 rootfs* ... Erase from 0xa80f0000-0xa87e0000: ............................................................................................................... ... Program from 0x80040c00-0x80160c00 at 0xa80f0000: .................. ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
Al reiniciar La Fonera, tiene un servidor telnet en la IP 192.168.1.1, puedes acceder como root, no tiene clave. Lo más recomendable es que quites el servidor telnet y arranques dropbear (servidor SSH).
Para permitir SSH en la interfaz Ethernet escribe (o des-comenta) esto al final de /etc/config/firewall:
accept:proto=tcp dport=22
Para que la interfaz Ethernet (eth0) pida una IP por DHCP cambia el fichero /etc/config/network para que quede así:
config interface loopback option ifname lo option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0 config interface lan option ifname eth0 option type bridge option proto dhcp
Y para activar la interfaz WiFI, elimina la siguiente línea del fichero /etc/config/wireless:
option disabled 1
En ese mismo fichero puedes configurar el SSID y el tipo de encriptación, por defecto no tiene (“red insegura” que dice Windows Vista).
Gracias a Paco y a oscarah por sus inestimables aportaciones





Comentarios
pero bueno...
… con la pedazo de receta que te has currado y ni un solo comentario. :)
Al releer todo esto de webif2 … he quitado dd-wrt y estoy poniendo open-wrt. Todo como la seda. Decir que para pasar de dd-wrt a open-wrt no hace falta parchear nada, podemos empezar el proceso desde el “load” de archivos desde el servidor de tftp.
Un saludo y ya te contaré.
—
“Computer Science is no more about computers than astronomy is about telescopes.”
– Edsger W. Dijkstra
Me he currado
Bueno...
… pues ya tengo webif2 y openWrt :) Como mola tener espacio en la fonera para instalar cosas… ;)
—
“Computer Science is no more about computers than astronomy is about telescopes.”
– Edsger W. Dijkstra
Ahora que lo pienso, es digno de estudio.
Hola brue y todos los demás, lo cierto es que lo que comentabas antes sobre lo que esta receta era muy buena (como todas, pero esta espectacular :) ) y sin embargo no tiene ningún comentario, es algo que vengo notando yo desde hace tiempo, por ejemplo, esta receta del señor cleto, a mí simplemente me apasiona y en cuanto tenga tiempo la diseccionaré hasta el último punto final:
http://crysol.org/node/815
Y sin embargo tiene nada más que 780 visitas (error de +- 30).
En fin, algo digno de estudio (lo del fenómeno receta, no cleto :P ).
Si volviese atrás en el tiempo le propondría al profe que me pedía una práctica utilizando data mining, tomar como base de datos las recetas de CRySoL, para intentar determinar qué número de visitas tendría cada receta, algunas hipótesis iniciales que se me ocurren que pueden influir en este hecho, son:
- Que estén relacionadas con redes. – Que estén relacionadas con gráficos. – Que estén relacionadas sólo con Hardware. – Que se haya realizado sobre Ubuntu o sobre Debian. – Si el lenguaje de programación es C, C++ o Python.
…
y bueno muchas más y seguro que a ustedes se les ocurren otras mejores.
Bueno, después de este rollo macabeo que no sé ni a que cuento viene, os dejo tranquilos.
Saludos. 8)
**************************************************************
“Si el corazón pensara, dejaría de latir”, los girasoles ciegos.