Consulta laboratorio 6

Consulta laboratorio 6

de Andres Alcarraz -
Número de respuestas: 9

Hola, tengo un par de problemas con la actividad previa 1.

El primer problema que tuve fue que al compilar no entraba en la rom el servidor cooja, lo solucioné usando como CC el compilador de TI.

De todos modos tuve que hacer algunas modificaciones porque algunos includes no son compatibles con contiki (por ejemplo io.h ya no existe, lo tuve que linkear a msp430.h), luego un typedef de un tipo off_t que tenía definiciones incompatibles (en lo descargado de TI está definido como long y en contki como unsigned long) lo solucioné haciendo que coincidieran.

Luego de eso la línea 

make TARGET=cooja server-only.csc
levanta con algunos warnings respecto a unas finciones eint() y dint() que son declaradas implicitamente (estarán referenciadas en algún include que en versiones anteriores del compilador estaban declaradas y ahora estarán en otro header):

La cuestión es que ignoro esos warnings de compilación y todo anda bien con el border router pero el server no imprime nada en la salida estándar ni cuando DEBUG=1 ni nunca llega a obtener una ip. Por lo que obviamente no responde al ping. No llega ni a imprimir el primer printf:

PRINTF("Starting Erbium Example Server\n");

Por otro lado habiendo instalado instalado la extensión copper en firefox no logro que me abra las uris coap:// obviamente no me puedo conectar a la del server de ejemplo pero tampoco funciona con la url de ejemplo del propio copper (coap://californium.eclipse.org/) no dice que no encuentra el manejador de protocolo pero no hace nada.

En fin estoy bastante trancado y no se como seguir adelante.

Saludos


Andrés

En respuesta a Andres Alcarraz

Re: Consulta laboratorio 6

de Javier Schandy -

Andrés,

1) Respecto al compilador, fíjate qué versión estás usando. Nosotros trabajamos con:

msp430-gcc (GCC) 4.7.0 20120322 (mspgcc dev 20120716)

Como solución rápida para desatrancarte te recomiendo que trabajes sobre la máquina virtual "Instant Contiki 3.0". El miércoles si querés tratamos de solucionar el tema de fondo.

2) Por el problema de Copper, cómo estás intentando de acceder? Estás poniendo la dirección IPv6 entre paréntesis rectos? La url en firefox debería ser algo así:

coap://[aaaa::212:7402:2:202]/

Saludos,

Javier



En respuesta a Javier Schandy

Re: Consulta laboratorio 6

de Andres Alcarraz -

Hola Javier gracias, 

Cuando instalé el vmware para instalar el insant contiki me armó quilombo en la máquina y lo desinstalé, además el tiempo que demora en bajar no es nada despreciable y no estoy sobrado de espacio. Voy a probar a bajarla de nuevo y con  virtualbox si no me funciona con la versión que decís. Algún tutorial de como instalar esa versión del msp gcc? estoy siguiendo una de la página de contiki pero el script está llevando mucho tiempo y no da garantías.

Pero lo más importante como configurar correctamente contiki para que use esa versión del binario? poniendo el bin en el PATH alcanza?

El problema con copper es que lo estoy probando con la url de ejemplo de californium: coap://californium.eclipse.org/ referenciada en el botón de la extensión copper y no anda, no puedo probarlo con otra url porque no me está andando la simulación.

Sin embargo si me anda desde el coap-client, por ejemplo haciendo un get al well-kown:

coap-client -N -m get coap://californium.eclipse.org/.well-known/core
v:1 t:NON c:GET i:93f8 {} [ ]
</obs>;ct=0;obs;rt="observe";title="Observable resource which chv:1 t:NON c:GET i:93f9 {} [ ]
anges every 5 seconds",</obs-pumping>;obs;rt="observe";title="Obv:1 t:NON c:GET i:93fa {} [ ]
servable resource which changes every 5 seconds",</separate>;titv:1 t:NON c:GET i:93fb {} [ ]
le="Resource which cannot be served immediately and which cannotv:1 t:NON c:GET i:93fc {} [ ]
 be acknowledged in a piggy-backed way",</large-create>;rt="blocv:1 t:NON c:GET i:93fd {} [ ]
k";title="Large resource that can be created using POST method",v:1 t:NON c:GET i:93fe {} [ ]
</large-create/19>;ct=0;sz=5,</seg1>;title="Long path resource",v:1 t:NON c:GET i:93ff {} [ ]
</seg1/seg2>;title="Long path resource",</seg1/seg2/seg3>;title=v:1 t:NON c:GET i:9400 {} [ ]
"Long path resource",</large-separate>;rt="block";sz=1280;title=v:1 t:NON c:GET i:9401 {} [ ]
"Large resource",</obs-reset>,</.well-known/core>,</multi-formatv:1 t:NON c:GET i:9402 {} [ ]
>;ct="0 41";title="Resource that exists in different content forv:1 t:NON c:GET i:9403 {} [ ]
mats (text/plain utf8 and application/xml)",</path>;ct=40;title=v:1 t:NON c:GET i:9404 {} [ ]
"Hierarchical link description entry",</path/sub1>;title="Hierarv:1 t:NON c:GET i:9405 {} [ ]
chical link description sub-resource",</path/sub2>;title="Hierarv:1 t:NON c:GET i:9406 {} [ ]
chical link description sub-resource",</path/sub3>;title="Hierarv:1 t:NON c:GET i:9407 {} [ ]
chical link description sub-resource",</link1>;if="If1";rt="Typev:1 t:NON c:GET i:9408 {} [ ]
1 Type2";title="Link test resource",</link3>;if="foo";rt="Type1 v:1 t:NON c:GET i:9409 {} [ ]
Type3";title="Link test resource",</link2>;if="If2";rt="Type2 Tyv:1 t:NON c:GET i:940a {} [ ]
pe3";title="Link test resource",</obs-large>;obs;rt="observe";tiv:1 t:NON c:GET i:940b {} [ ]
tle="Observable resource which changes every 5 seconds",</validav:1 t:NON c:GET i:940c {} [ ]
te>;ct=0;sz=8;title="Resource which varies",</test>;title="Defauv:1 t:NON c:GET i:940d {} [ ]
lt test resource",</large>;rt="block";sz=1280;title="Large resouv:1 t:NON c:GET i:940e {} [ ]
rce",</obs-pumping-non>;obs;rt="observe";title="Observable resouv:1 t:NON c:GET i:940f {} [ ]
rce which changes every 5 seconds",</query>;title="Resource accev:1 t:NON c:GET i:9410 {} [ ]
pting query parameters",</large-post>;rt="block";title="Handle Pv:1 t:NON c:GET i:9411 {} [ ]
OST with two-way blockwise transfer",</location-query>;title="Pev:1 t:NON c:GET i:9412 {} [ ]
rform POST transaction with responses containing several Locatiov:1 t:NON c:GET i:9413 {} [ ]
n-Query options (CON mode)",</obs-non>;obs;rt="observe";title="Ov:1 t:NON c:GET i:9414 {} [ ]
bservable resource which changes every 5 seconds",</large-updatev:1 t:NON c:GET i:9415 {} [ ]
>;ct=0;rt="block";sz=4;title="Large resource that can be updatedv:1 t:NON c:GET i:9416 {} [ ]
 using PUT method",</shutdown>

Por eso me temo que sea un problema de la extensión con la versión de firefox. Pregunta a vos te anda el copper con esa url (coap://californium.eclipse.org/)?

Saludos y gracias

Andrés



En respuesta a Andres Alcarraz

Re: Consulta laboratorio 6

de Andres Alcarraz -

Hola Estoy corriendo instant contiki el ejemplo server-only, el server coap (nodo 2) responde al ping 6, pero cuando ingreso la url en firefox queda en discovering y no responde a ningún botón. No se si es conveniente actualizar algo.

Por si acaso definí la ip de cooja2 empezando con aaaa en lugar de fd00 ya que ese es el prefijo que asigna por defecto el border router en la versión de instant-contiki

Saludos

Andrés

En respuesta a Andres Alcarraz

Re: Consulta laboratorio 6

de Javier Schandy -

Andres,

Te recomiendo crear en la máquina virtual una simulación con las siguientes características:

1) Nodo 1: examples/ipv6/rpl-border-router/border-router.c.

Acordate de habilitar el serial socket (server) en el Puerto 6001

2) Nodos 2, 3, 4, ...., N: examples/er-rest-example/er-example-server.c

3) Arrancá la simulación, abrí una terminal en  examples/ipv6/rpl-border-router y escribí:

make connect-router-cooja

Ahí deberías poder acceder a los servidores CoAP desde Copper. Con la configuración que está por defecto, al nodo dos podes entrar con la siguiente url:

coap://[aaaa::212:7402:2:202]/

Saludos,

Javier

En respuesta a Javier Schandy

Re: Consulta laboratorio 6

de Andres Alcarraz -

Eso no es lo que hace la simulación del make de la página referenciada en la letra del laboratorio?

En respuesta a Andres Alcarraz

Re: Consulta laboratorio 6

de Javier Schandy -

Si, pero te puse los pasos por si querías verificarlo haciendo una nueva simulación. Por los síntomas pareciera que tuvieras un problema con Copper... Probaste de usarlo en la máquina virtual?

Saludos,

Javier

En respuesta a Javier Schandy

Re: Consulta laboratorio 6

de Andres Alcarraz -

Ahí es donde lo estoy probando, en el firefox de mi máquina ni anda (ni con la url de ejemplo de californium).

En la máquina virtual ya sea con la url de californium como con la del nodo 2, se queda en discovering, el border router funciona bien porque el ping6 responde, parece ser un problema del copper de la máquina virtual, pero como no toqué nada no entiendo que puede estar pasando.

Bueno ahora si se le dio por andar pero juro que no toqué nada. Estoy editando este post porque lo había enviado antes de que anduviera.

Saludos



En respuesta a Andres Alcarraz

Re: Consulta laboratorio 6

de Javier Schandy -

Andres,

Me anda si, te dejo captura. Yo tengo instalado Copper sobre el Firefox que viene en la VM.

Respecto al compilador, contiki termina llamando msp430-gcc, por lo tanto, para ver qué versión está usando contiki, podes poner msp430-gcc --version en la terminal parado en cualquier lado y te debería dar la versión correcta.

Saludos,

Javier



captura_copper

En respuesta a Javier Schandy

Re: Consulta laboratorio 6

de Andres Alcarraz -

Efectivamente el copper no funciona con la última versión de firefox (56) pero si con la 55.

Finalmente pude compilar en mi máquina también, por si a alguien le interesa seguí el procedimiento que está en el github de contiki (https://github.com/contiki-os/contiki/wiki/MSP430X) pero para que ande tuve que hacer que compile usando gcc-4.7 (esto es sencillo ya que está en los repos de ubuntu) e instalar una versión vieja de texinfo (hay que bajarla y compilarla a mano), aunque supongo que el paso que da problema no es grave ya que es solo para instalar páginas de manual, pero como el make fallaba probé, igual el proceso de ./configure, make make install anduvo sin mayores problemas para texinfo 4.13, que es la versión con la que dice que anda el procedimiento.

Saludos

Andrés