sábado, agosto 04, 2007

Ya funciona la fonera!!!

Como sabéis estos últimos días he estado haciendo alguna cosilla con el LFS y también tenía pendiente la reparación de la fonera, ya que con ella pensaba desarrollar mi principal proyecto del verano. Bueno los que seguís el blog sabéis la historia de mi fonera, la flasheé, para hacer con ella algunas cosas en el centro tic, pero luego la deje sin conexión, desconfiguré la red y la deje totalmente aislada, pero podía recuperarla utilizando el cable serie que o bien lo montaba yo mismo, cosa que no fui capaz de hacer, o bien lo compraba montado, que también lo hice. Sin embargo cuando llegó intente usarlo pero fracasé y creo que fue debido a mi gran habilidad para soldar. Entonces ya la dejé abandonada una temporada... hasta ayer.

Lo que pasa es que hablando en el irc Uticox me preguntó por mi fonera, le dije que seguía bricked, que yo ahora estaba con el LFS, el me respondió que yo hacía muchas cosas pero no acababa ninguna y que el que mucho abarca... Y lleva toda la razón del mundo, la fonera que era mi gran proyecto para el verano lo había dejado simplemente porque había surgido un problemilla que no fui capaz de solucionar tras varios intentos, así que le dije, hoy estoy con el LFS y quiero seguir con él, pero mañana mismo me pongo con la fonera y la arreglaré. Bueno cuando llego "mañana" (antes de ayer) no seguí con la fonera, porque estuve en la playa y luego por la tarde salí un rato y luego quería leerme los feeds del día. Pero ayer si que cogí la fonera y dije de hoy no pasa, hoy la arreglo, y si no me pongo a trabajar con ella hasta que funcione, no puede ser que yo no pueda repararla. Así que cogí los materiales electrónicos, la fonera, el cable serie, y el manual para conectarlo todo.

Cuando fui a empezar ya tuve el primer problema, los pines que hay que soldarle al circuito estaban mal soldados, a parte de que la soldadura tenía un aspecto muy feo, tenía algunas grietas, y un pin estaba soldado junto con el de al lado, por poquísimo, pero hacía contacto, así que nada a quitar todo esto y a soldarlo de nuevo. Bastó con mover un poco los pines para que todo el estaño se despegara, se rompiera y se cayera (podéis imaginaros la calidad de mi soldadura xD), así que nada a soldar de nuevo, cogí el estaño y un soldador, pero antes de usarlo busqué un manual de como soldar, ponía que hay que calentar el componente y poner el estaño al lado, para tratar de que sea el componente quien derrita el estaño. Así que nada lo intento, pero mas problemas, espero, espero, sigo esperando, pero no soy capaz de recrear lo que pone en el manual, se ve que el soldador sera muy malo y no se calienta lo suficiente. Entonces recuerdo que en casa hay dos soldadores, voy a buscar el otro... y lo intento de nuevo, pero este se calienta demasiado!! pongo el soldador tocando el pin y por el otro lado del pin pongo el estaño para que se derrita cuando el pin tenga la temperatura adecuada, pero entonces empieza a oler a quemado y el pin se mueve, hasta el punto de se sale, le doy la vuelta al circuito (lo tenia bocabajo para soldar) y veo que el plástico negro que une los 6 pines esta deformado y un poco quemado. Y ahora que hago? un soldador no calienta y el otro calienta demasiado...

Intenté practicar con cables, si, soldando cables, y salía mas o menos bien. Intenté de nuevo con el circuito, cogí seis pines nuevos (porque los otros ya era para tirar), pero tampoco fue bien, con el primer soldador no había manera, no se llegaba a calentar lo necesario (pero si le ponía el estaño directamente en la punta lo fundía al instante), probé con el otro de nuevo, pero con intención de ponerlo muy poco tiempo para que lo pines no se derritieran, fracasé.

Cambio de estrategia, si no soy capaz de hacerlo por hardware vamos a seguir intentándolo por software. Se me ocurrieron varias cosas, pero para empezar la conecté al router y la enchufé, porque a lo mejor por algún fenómeno físico-cuántico la fonera funcionaba bien. Ahora paso una cosa un poco rara, la fonera creo una red inalámbrica abierta con essid OpenWrt, me conecto a ella y tengo acceso a internet, un traceroute para que ver que pasa y WTF! lo primero que aparace es mi router (192.168.0.1), intento conectarme a mis otras máquinas y puedo perfectamente, tengo acceso a mi red local, es decir, que la fonera es un puente invisible entre mi router y yo. Próximo paso? pues se me ocurren dos cosas una muy sencilla, y otra mas compleja, la primera es conectar la fonera a mi laptop y snifar a ver que pasa, la otra es montar una segunda tarjeta de red en mi server y convertirlo en un router, el plan es que mi server este conectado al router y a la fonera, y que el trafico de la fonera lo pase por la otra tarjeta de red hasta el router y de ahí a internet. La parte interesante es que la fonera creara su red OpenWrt, yo me conectaré a ella con la laptop navegaré un poco y todo el tráfico pasara por mi server, donde podré snifarlo todo y ver que huellas deja la fonera en los paquetes tcp, si tuviera un router con linux no tendría tantas complicaciones... Siguiente problema: no se como convertir mi server en un router, así que al amigo google y a buscar un poco. Pero en ese momento recordé que en fonera.info hay un tutorial de como recuperar una fonera mal flasheada, y pensé que mejor releerlo antes de seguir con este complejo (y seguramente inútil) plan. Leo que redboot puede iniciarse al arranque y esperar una conexión durante unos segundos y luego seguir con el arranque normal (redboot se usa para flashear la fonera). Pero chicos, se hace tarde, mañana por la mañana comprobaré si mi fonera arranca el redboot e ese modo, en cuyo caso podré reflashearla y asunto solucionado!

Hoy cuando me he levantado, como de costumbre me acerco enciendo el router, y el servidor, pero esta vez también cogí la fonera, el alimentador, y un cable cruzado. Me tiro en el sofá con el portátil, lego poco los feeds y luego ya me dispuse a probar lo de la fonera. Configuro mi tarjeta de red ethernet con ip 192.168.1.166, netmask 255.255.255.0 y sin gateway. También desactive el wifi para evitar problemas. Después conecto la fonera al portátil con el cable cruzado, abro un terminal con dos pestañas y en una pongo ejecuto un ping a 192.168.1.254 y en la otra dejo preparado un telnet 192.168.1.254 9000 para ejecutarlo en cuanto esa ip responda al ping. A continuación conecto la fonera a la corriente eléctrica, y al poco empiezo a ver que responde a los pings! raudo y veloz ejecuto el telnet y se conecta, pero me suelta un bonito mensaje:

== Executing boot script in 8.723 seconds - enter ^C to abort

Yo no se exactamente a que se refiere con ^C, pero yo lo interpreté como crtl+c, no sirvió, lo intenté de nuevo y tampoco valió para nada. Entonces, como en todos los manuales hablaba de putty, decidí intentarlo con putty, y esta vez el resultado fue diferente, el propio putty se encargó del tema, esto fue lo que apareció en el terminal de putty:

== Executing boot script in 8.723 seconds - enter ^C to abort
^C
RedBoot>

Ya tenía el prompt de reboot!! y yo todavía conservo el servidor tftp en mi portátil, el mismo que monte en su día cuando la flasheé por primera vez, y en el todavía tengo los archivos necesarios para el flasheado, así que comencé a introducir los comandos y tras un rato ya tenía la fonera flasheada de nuevo con openwrt. Sobre como flashearla ya escribí un post.

Una vez se ha acabado el flasheo hay que reiniciar la fonera y conectarse por telnet a la ip 192.168.1.1, y tendremos una shell de la fonera, en la cual hay que setear un password para root y partir de ahí las próximas conexiones serán por ssh. Mi problema ahora fue que no podía contactar con 192.168.1.1, y acaba de flashear! bueno tras varios intentos fallidos volví a flashear y tampoco podía conectar de ninguna forma con la fonera, pero entonces puse el wireshark a funcionar y reinicié la fonera, después vi que la fonera preguntaba por 192.168.1.254, y entonces pensé, y si me pongo esa ip, al mejor ya puedo conectarme a ella, lo hice y funcionó, hice el telnet, le puse el password y volví a reiniciar, ahora para probar que todo estaba bien conecté por ssh a la fonera y funcionó, por último configure una cosa, la ip de la fonera, porque mi red no está en ese rango, así que le puse la que le correspondía, 192.168.0.5, apago, la conecto al router y ya es visible para toda mi red. Ya funciona bien, y lo mejor no es eso, lo mejor es que aunque se me vuelva a estropear, lo puedo solucionar de la misma forma, porque redboot esta configurado para escuchar durante el arranque en la ip 192.168.1.254 puerto 9000 durante 10 segundos, así que si me vuelvo a cargar el sistema operativo puedo reflashear con toda la tranquilidad del mundo y sin cable serie!!! Por cierto quien quiera conseguir esto que lea este tutorial (aunque a mi tras flashearla la primera vez se me puso esa configuración): Configurar el Redboot para poder entrar por telnet

Bueno ya para acabar comentar que la inactividad de los últimos días ha sido por culpa de la playa, de los cazadores de mitos, de alguna salida, y del lfs. Ahora espero estar ocupado con la fonera, os iré contando mis avances con ella. Y el LFS para cuando este lista la fonera, porque no esta de mas recordar que era un proyecto de "relleno" para entretenerme mientras no tenía fonera.