Un regalo navideño:OpenWrt Barrier Breaker r39167 con SMP, voip e imagenio. Y por supuesto upnp, udpxy y WiFi 802.11n.
http://goo.gl/TwkGppEs
EXPERIMENTAL. Ya sabéis los riesgos de esto, de modo que no entraré en detalles, pero no asumo ninguna responsabilidad.
El udpxy está en el puerto 4000.
En esta versión parece que funciona SMP (a mí me funciona), pero para estar seguros harán falta voluntarios que la prueben.
Nota para los más técnicos: En esta versión sólo había un fichero que se replicaba cada vez que reiniciaba, /etc/init.d/luci_fixtime, que aparecía con nombres curiosos ciciixixmeme y otras combinaciones de letras del nombre original. luci_fixtime toca su propia hora (touch) al reiniciar el router y la utiliza como fecha/hora de partida cuando arranca el router. Me fijé que en los reinicios la hora no quedaba correctamente reflejada ni en el archivo original ni en las réplicas. He supuesto que por algún motivo mientras se está ejecutando el script no logra reescribir su hora y lo he modificado para que la hora quede en otro archivo distinto de luci_fixtime.
Los cambios:
--- a/feeds/luci/modules/admin-core/root/etc/init.d/luci_fixtime 2013-12-26 18:39:46.224168268 +0100
+++ b/feeds/luci/modules/admin-core/root/etc/init.d/luci_fixtime 2013-12-26 21:55:19.920493017 +0100
@@ -6,11 +6,11 @@
start() {
cat <<' EOF' | lua -l luci.fs -l luci.util -
if (os.time() < 1000000000) then
- os.execute('date -s ' .. os.date('%Y%m%d%H%M', luci.fs.mtime("/etc/init.d/luci_fixtime")))
+ os.execute('date -s ' .. os.date('%Y%m%d%H%M', luci.fs.mtime("/etc/timestamp")))
end
EOF
}
stop() {
- [[ -w /etc/init.d/luci_fixtime ]] && cat /dev/null >> /etc/init.d/luci_fixtime && touch /etc/init.d/luci_fixtime
+ rm -f /etc/timestamp ; date > /etc/timestamp
}
¡¡ Y ha funcionado !! Ya sé que no es una solución de verdad, porque no identifica el problema raíz, pero el apaño funciona y yo no llego a más. Tampoco es que sea muy elegante cambiar la fecha de un script mientras se ejecuta.
Supongo que en algún momento los verdaderos expertos darán con el problema y se podrá funcionar sin parches.
¡Feliz Navidad!
NOTA (31-12-2013): Cuidado con esta versión. He hecho pruebas y funciona como está, pero como ya dije, hay un error en el trunk cuando se compila para doble núcleo (SMP) que no está corregido y que persiste. Yo he podido reproducir el error al instalar el paquete openvpn. Un sólo reinicio y ya se habían dañado algunos archivos (el error aparece cuando se escribe o se toca el overlay fs/jffs2). Esta versión sólo vale para usar tal y como está. Si queréis más flexibilidad tenéis que usar versiones (como la anterior que publiqué) que sólo usan un núcleo del procesador.