[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!!!"