[Lugro-mesh] Los pasos que realiza BerlinRoofNet hasta donde estamos ahora
Julio Cesar Puigpinos
lugro-mesh@lugro.org.ar
Thu, 11 Oct 2007 11:17:32 -0300
BRN se inicia con: /etc/init.d/berlinroofnet start
Este ejecuta la siguiente linea: LoadClick userlevel main.click $CHANNEL $ESSID
Esta linea ejecuta la funcion "LoadClick" del archivo
/lib/berlinroofnet/BrnNodeFunction/Click y le pasa 4 parametros.
Estos son: $1 - directory/mode for click (userlevel || linuxmodule)
$2 - initial click-configuration file to load into
click (in most cases: "main.click")
$3 - Wifi channel to be used
$4 - ESSID to be used
De esa funcion se ejecuta userlevel y da los siguientes errores:
1º) Despues de que termina el 'sleep 15', el 'ifconfig local 10.9.0.1
up' da error porque no sabe que es "local". Por ahora le comente este
ultimo comando.
2º) Lo otro es:
2.1) $CLICK_CONF_PATH/click-include $2 \ # ejecuta eso con
parametro main.click
2.2) | sed -e "s/WIFI_CHANNEL 10/WIFI_CHANNEL $BRN_CHANNEL/" -e
"s/SSID \"BerlinRoofNet\"/SSID \"$BRN_ESSID\"/" \ # recibe de
click-include y cambia el canal y el ESSID
2.3) | $PREFIX $CLICK_BIN_PATH/click-align | $PREFIX
$CLICK_BIN_PATH/click 2>&1 | logger # ejecuta click-align
con lo que recibe y se lo pasa a click
En el 2.1 pasa lo siguiente:
La linea original de click-include en donde se ejecutan las cosas era:
exec tr '[\v\t]' ' ' $SCRIPTDIR$(basename $1) | sed
's/^\s*include/include/' | awk -F '[ ();]+' "{ if (\$1 == \"include\")
system(\"$0 $SCRIPTDIR\"\$2); else print \$0
Pero esto devolvia un archivo vacio a click-align.
Entonces lo cambie a:
cat $SCRIPTDIR$(basename $1) | exec tr '[\v\t]' ' ' | sed
's/^\s*include/include/' | awk -F '[ ();]+' "{ if (\$1 == \"include\")
system(\"$0 \"\$2); else print \$0
Porque:
* tr necesita recibir algo desde el stdin, y en este caso no
lo recibia.
* awk lo que quiere realizar es poner dentro del mismo archivo
que le pasa a click-align el contenido de los archivos que se incluyen
con la sentencia 'include()' dentro de "main.click", pero no
encontraba esos archivos.
Osea que click-include lo que hace es devolver el main.click,
agregandole lo que contienen: README, util.click, devices.click y
meshnode.click
Los pasos resumidos son asi:
1 Se inicia BRN con: /etc/init.d/berlinroofnet start
2 Este llama a la funcion LoadClick de:
/lib/berlinroofnet/BrnNodeFunction/Click
3 Este ultimo ejecuta /etc/berlinroofnet/click-include
4 Vuelve al paso 2 hasta que tendria que terminar.
El error que teniamos lo solucione (eso creo :P), pero ahora me da
error en los elementos de BRN y no sale del loop que hay en la funcion
del paso 2.
Mas info y aclaraciones a la brevedad.
Saludos, Julio
--
NO A LA MATRICULA!!!: http://noalamatricula.wordpress.com/
Software Freedom Day's Blog Argentina
http://sfd-argentina.blogspot.com/
www.kwort.org Kwort Linux Distribution
www.lugro.org.ar GNU/Linux User Group Rosario, Argentina
Registered GNU/Linux User #358886
"Say No to Trolls with no Balls!"
"Netiquette o Tablas!!!"