lunes, junio 25, 2007

Problemas compilando el código de la fonera

Como tengo un verano por delante para montar bien lo de la fonera, voy a estudiar al máximo todos los temas. Lo primero que he querido hacer es compilar el código de la fonera y pasan dos cosas, la primera es que es un proceso largo y luego da como resultado (según he leído) mas de 1 GB de datos así que decidí que lo mejor era hacerlo en el server, nada cojo y descargo el código de la fonera mediante wget, lo descomprimo y para compilarlo primero hay que seleccionar los paquetes que se quieren y a continuación compilar. Ejecuto make menuconfig para el primer paso y salí sin hacer ningún cambio, simplemente lo dejo con la configuración por defecto, después ejecute make para compilar y empieza a trabajar... sigue trabajando... no para... y esto que ayer me dieron ya las once y media de la noche y yo por las noches apago el servidor, así que pienso: "lo paro y ya lo volveré a hacer mañana por la mañana con mas tiempo", y así lo hice, lo paré y apagué el server.

Pero claro no todo podía ser tan fácil, lo que yo tenía pensado es dejar el servidor compilando mientras yo me iba a la playa, así cuando volviera ya debía estar todo listo, nada mas lejos de la realidad. Me levanto, enciendo el server, el router, la fonera y el portátil, me conecto por ssh al server, me voy al directorio /media/hdd/fonera y ejecuto make menuconfig, errores, vale porque no funciona hoy si ayer iba perfectamente? bueno pienso que a lo mejor se han modificado algunos ficheros por la compilación de anoche que corte por el camino, así que decido borrar todos esos archivos y descomprimir de nuevo el archivo fonera.tar.bz2, el que descargué de la web de fon y contiene el código, ahora ejecuto de nuevo make menuconfig y tampoco me funciona, WTF!! pero si ayer funcionó perfectamente y a la primera! bueno, sigo intentando de todo pero nada, reinstalé las herramientas necesarias para compilar el código (build-essential, flex, make, gcc, binutils...) pero nada no he conseguido que funcione, he mirado en google y no he visto nada útil... no se que hacer, haber si se me ocurre algo, de todas formas, por si algún lector puede ayudarme el error que me da al ejecutar make menuconfig es este:

svn: '.' is not a working copy
make: execvp: ./scripts/timestamp.pl: Permiso denegado
Collecting package info...
./scripts/gen_menuconfig.pl < .pkginfo > .config.in || rm -f .config.in
/bin/sh: ./scripts/gen_menuconfig.pl: /usr/bin/perl: bad interpreter: Permiso denegado
cmd() { &>/dev/null make $* || { echo "Build failed. Please re-run make with V=99 to see what's going on"; /bin/false; } } 3>&1 4>&amp;amp;amp;amp;amp;2; cmd -C scripts/config all
make: execvp: scripts/config/mconf: Permiso denegado
make: *** [menuconfig] Error 127

También siguiendo el consejo que pone ahí probé con make menuconfig V=99, pero tampoco funciona, esto es lo que me suelta:

svn: '.' is not a working copy
make: execvp: ./scripts/timestamp.pl: Permiso denegado
Collecting package info...
./scripts/gen_menuconfig.pl < .pkginfo > .config.in || rm -f .config.in
/bin/sh: ./scripts/gen_menuconfig.pl: /usr/bin/perl: bad interpreter: Permiso denegado
make -C scripts/config all
make[1]: se ingresa al directorio `/media/hdd/fonera/scripts/config'
make -C lxdialog
make[2]: se ingresa al directorio `/media/hdd/fonera/scripts/config/lxdialog'
make[2]: No se hace nada para `all'.
make[2]: se sale del directorio `/media/hdd/fonera/scripts/config/lxdialog'
make[1]: se sale del directorio `/media/hdd/fonera/scripts/config'
scripts/config/mconf Config.in
make: execvp: scripts/config/mconf: Permiso denegado
make: *** [menuconfig] Error 127

Además también quiero que conste que ayer cuando funcionó no tuve que poner el V=99.

En fin, se ve que el servidor solo va a darme problemas inexplicables, cuando no de hardware, de software... a ver si consigo compilar el código de una vez.

[EDIT]

Finalmente he conseguido compilar el código, lo que no se muy bien es que ha pasado que ahora ha funcionado y antes no lo hacía, os cuento lo que he hecho. Antes cuando estaba con el disco duro antiguo (6gb) era conocido en el sistema como /dev/hdd, ahora el nuevo disco duro que he puesto es /dev/hde. El antiguo lo montaba en /media/hdd/, cuando cambié el disco duro cambié el /etc/fstab y puse en ese directorio /dev/hde1 (nuevo hd) en lugar de /dev/hdd1 (antiguo hd). Entonces la primera vez que hice el proceso funcionó, a partir de entonces, al día siguiente, ya no funcionaba, no podía compilarlo. Hoy he cambiado de opinión y he cambiado el punto de montaje de /dev/hde1, he preferido ponerlo en un directorio acorde a su nombre /media/hde, acto seguido volví a intentar la compilación y funcionó perfectamente, lo deje con la configuración por defecto y ejecuté make para compilar, después de un buen rato ha terminado.

En fonera/build_mips/root tengo el mismo contenido que en la fonera. Si os interesa aquí podéis ver un interesante post sobre como compilar para la fonera y como portar aplicaciones para la fonera.

4 comentarios:

Anónimo dijo...

Lo único que se me ocurre es que lo estés haciendo sin ser root, por lo de "Permiso denegado".

Neobius dijo...

Esa es una cosa que a mi me ha extrañado muchísimo, porque todo el proceso lo hago como root, es mas ni siquiera dándole persmisos rwx a todos los archivos de la carpeta /media/hdd/fonera (donde tengo el codigo de la fonera) deja de aparecer ese error.

Solo me queda seguir investigando.

Saludos ;-)

Anónimo dijo...

Entonces lo tienes en el disco duro usb, que supongo que será fat32, ¿verdad? ¿Y si lo descomprimes en una partición del disco duro interno, con un sistema de ficheros ext2 o ext3?
Creo que esa puede ser la causa del error, aunque no estoy seguro, ya que te funcionó la noche anterior.

Prueba a ver...

Neobius dijo...

No esta en el disco usb, esta en un disco interno, en una partición ext3 de 50GB y además es el mismo lugar donde estuvo la vez anterior...

Gracias por intentar ayudarme ;-)