¡Saludos, muchachos!
Bueno, tras intentar compilar openwrt he sacado en claro dos cositas:
1) Aún a estas alturas no uso la búsqueda del foro lo suficiente (pero voy mejorando)
2) El manual de jar229 está genial. Sé que es un poco de tontos que a estas alturas siga gustándome que los textos tengan fotos, pero para manejarse entre las opciones del menuconfig, eh, es un detalle.
Host de la compilación: VirtualBox con 2GB y 3 núcleos y un disco duro virtual a parte. Ubuntu 32bits 12.04.1
Router objetivo: HG556a
Al principio intenté compilar la rama bcm63xx-next del repo de git de Noltari (Hay que ver qué rápido bajan los servers de github) y me encontré con dos problemitas:
mv: arguments too long
No tengo muy claro si esto es algo que hay que tener en cuenta al hacer un Makefile, que los comandos a interpretar por la shell de turno no sean muy kilométricos o es cosa de que los desarrolladores de ubuntu no quieren que escribamos cosas muy largas en consola (por seguridad o algo, digo yo) pero se arregla fácil cambiando el tamaño de la pila donde éstos se almacenan:
ulimit -s 65536
Nota: El número detrás de -s es arbitrario, como no sabía cuán larga era la línea de argumentos que estaba petando o si fuera a haber más, le puse el valor más alto que se me ocurrió.
Después de esto pude compilar, sin problemas, una imágen limpia, sin añadir nada de nada. (Sólo indiqué la arquitectura del objetivo y el perfil de wifi que quería (el privativo)).
Después, al meterle soporte para usb y almacenamiento externo, la compilación volvió a fallar: Me dió el mismo error que al señor peterpunk, ante lo cual reinicié la compilación sin -Jx y desactivando la compilación en paralelo del kernel.
En éste último caso, me dió un error algo más reconocible:
checking whether to build serial drivers... yes
configure: error: "USB drivers requested, but libusb not found."
make[3]: *** [/media/TEMP/openwrt/openwrt-1/build_dir/target-mips_uClibc-0.9.33.2/nut-2.6.5/.configured_] Error 1
make[3]: Leaving directory `/media/TEMP/openwrt/openwrt-1/feeds/packages/utils/nut'
make[2]: *** [package/feeds/packages/nut/compile] Error 2
make[2]: Leaving directory `/media/TEMP/openwrt/openwrt-1'
make[1]: *** [/media/TEMP/openwrt/openwrt-1/staging_dir/target-mips_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make[1]: Leaving directory `/media/TEMP/openwrt/openwrt-1'
make: *** [world] Error 2
Así que me dispuse a compilar la versión del trunk del repo de Noltari en vez de la rama anteriormente mencionada. (Porqué miré en este hilo y vi la respuesta a peterpunk)
La compilación funcionó sin errores, con soporte para USB y todo, pero al arrancar, el kernel dio un panic como el que describís en el hilo de desarrollo:
Auto run second count down: 0
boot kernel from be020100
Code Address: 0x80010000, Entry Address: 0x80010000
Decompression OK!
Entry at 0x80010000
Closing network.
Starting program at 0x80010000
[ 0.000000] Linux version 3.7.6 (system@VirtualHole) (gcc version 4.6.4 20121210 (prerelease) (Linaro GCC 4.6-2012.12) ) #1 Sat Feb 9 12:56:23 CET 2013
[ 0.000000] Detected Broadcom 0x6358 CPU revision a1
[ 0.000000] CPU frequency is 300 MHz
[ 0.000000] 64MB of RAM installed
[ 0.000000] registering 40 GPIOs
[ 0.000000] board_bcm963xx: Boot address 0xbe000000
[ 0.000000] board_bcm963xx: CFE version: 100.48.56-49.46
[ 0.000000] board_bcm963xx: invalid nvram checksum
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU revision is: 0002a010 (Broadcom BMIPS4350)
[ 0.000000] Kernel panic - not syncing: unable to detect bcm963xx board
Así que de momento esperaré a que el cambio que habéis mandado al tracker de openwrt se haga efectivo antes de continuar.
Espero que esto ayude a que no nos repitamos preguntando lo mismo.
Y una preguntita: He notado que desde que se hace «make menuconfig» hasta cuando se hace «make kernel_menuconfig» aunque no se toque ninguna opción pero se guarden los cambios, en el .config se borran algunas líneas. Es normal, ¿verdad?
Tengo que reconocer que al principio me asustó un poco que las opciones que activas en el primer menuconfig no se ven reflejadas en el segundo, pero al final todo se compilar por arte de magia
Un saludo!