Um Contiki SNMP sowie den RPL Border Router auf den RZ Raven USB Stick zu bekommen sind einige Vorbereitungen nötig.
Diese Anleitung enthält nur die Beschreibung für den letzen Punkt.
Standardmäßig ist innerhalb des Ravenusbstick Quellcodes das Autostart Process Makro deaktiviert. Zur Aktivierung ist folgendes Vorgehen notwendig:
examples/ravenusbstick/ravenusbstick.c das Makro #if 0 und das dazugehörige #endif auskommentieren.examples/ravenusbstick/Makefile.ravenusbstick die Zeile +CFLAGS += -DAUTOSTART_ENABLE hinzufügen.platform/avr-ravenusb/contiki-raven-main.c den Aufruf autostart_start(autostart_processes); verfügbar machen indem die Makros #if 0 und das dazugehörige #endif entfernt bzw. auskommentiert werden.
Damit der Prozess des Contiki SNMP später von Contiki automatisch gestartet wird, muss dieser in die Autostart Prozess Liste eingetragen werden. Die kann innerhalb der Datei examples/ravenusbstick/ravenusbstick.c über den Funktionsaufruf AUTOSTART_PROCESSES geschehen. Dort steht als Beispiel schon der AUfruf eines Hello World Prozesses drin. Dieser kann entweder gelöscht oder behalten werden. Damit Contiki SNMP nun nach dem Bootvorgang ebenfalls gestartet wird, reicht die Eintragung AUTOSTART_PROCESSES(&hello_process, &snmpd_process);. Sowie die Verknüpfung zur Headerdatei zu Dateibeginn mit #include „snmpd.h“.
Damit der SNMP Quellcode aus dem Contiki apps Ordner in die Kompilierung eingebunden wird, genügt der Aufruf im Makefile examples/ravenusbstick/Makefile.ravenusbstick mit der zusätzlichen Zeile APPS=snmpd
Die Auswahl der gewünschten MIB erfolgt im Makefile mit dem Befehl MIB_INIT= gewünschtes MIB File.
Also im Fall des Raven USB Sticks in der Datei examples/ravenusbstick/Makefile, der MIB Aufruf kann dann einfach nach dem Target Aufruf eingefügt werden.
Also z.B. aus der Zeile
${MAKE} TARGET=avr-ravenusb NOAVRSIZE=1 -f Makefile.ravenusbstick ravenusbstick.elf
wird dann
${MAKE} TARGET=avr-ravenusb MIB_INIT=mib-init-ravenusb.c NOAVRSIZE=1 -f Makefile.ravenusbstick ravenusbstick.elf
Das Repository unter https://github.com/szehl/snmp-rpl-mib/tree/ravenusb-rpl-border-router-with-snmpv3-rpl-mib enthält alle zuvor besprochenen Änderungen.