Inhaltsverzeichnis
Das Merkur-Board als RPL-Router an Deinem PC
In diesem Tutorial zeigen wir, wie Du ein Merkur-Board zusammen mit dem Merkur-Programmer dazu verwenden kannst, Deinen PC als Router zum 6lowPAN-Funknetz zu verwenden. Dafür wird das Merkur-Board als RPL-Router verwendet. Dein Linux-Rechner wird damit zum 6lowPAN-Router.
Vorbereitung
Verbinde Dein Merkur-Board mit dem Merkur-Programmer und stecke den Merkur-Programmer in den USB-Port Deines Rechners.
Ferner mußt Du die Entwicklungsumgebung für Contiki-OS auf Deinem Rechner installiert haben:
Das Merkur-Board als RPL-Router
Als RPL-Router verbindet das Merkur-Board den 6lowPAN-Transceiver mit der UART-Schnittstelle, die über den Merkur-Programmer mit der USB-Schnittstelle verbunden ist.
Zunächst flashen wir ein Merkurboard als RPL-Boarder-Router.
Firmware für das Merkurboard kompilieren
# Move to RPL-folder cd ~/osd-contiki/examples/osd/rpl-border-router/
Die verwendete Merkur-Board Version festlegen (Für ältere Merkurboards mit der Bezeichnung 128 im Namen ist die Zahl 256 durch 128 zu ersetzen):
export TARGET=osd-merkur-256
Die Sourcen übersetzen und ein FLASH(.hex) sowie EEPROM(.eep) Image erzeugen:
make
Firmware auf das Merkur-Board übertragen
Die Images mit Hilfe von AVRDUDE und den im Auslieferungszustand installierten OSD Bootloader über einen 3.3V USB-Serial-Wandler auf das Merkurboard spielen:
make flash
Den PC als 6lowPAN-Router einrichten
Routersoftware kompilieren
cd ~/osd-contiki/tools/ make tunslip6
Inbetriebnahme
Achtung bei neuer Merkurboardversion 256k
Um den Mikrocontroller am Merkurboard resetten zu können, ist der RESET-Pin über einen 100nF Kondensator mit DTR am 3.3V USB-Serial-Wandler verbunden.
Beim Öffnen des Ports am Computer wird dadurch ein Reset ausgelöst.
Es kann vorkommen, dass beim Starten von tunslip6 ein Reset ausgelöst wird, welcher eine korrekte Funktion verhindert.
Dabei erscheint die Zeile mit „Got configuration message of type P“ nicht.
Um dieses Problem zu umgehen, muss während der Verwendung von tunslip6 die Verbindung zum DTR Pin getrennt werden.
Bei evtl. notwendiger Umprogrammierung wieder hergestellt werden.
Router-Setup
- global eindeutiges Präfix wählen (oder online generieren)
- Router starten
sudo ./tunslip6 -s /dev/ttyUSB0 -B 38400 2001:DB8:c001:f00d::1/64
********SLIP started on ``/dev/ttyUSB0'' opened tun device ``/dev/tun0'' ifconfig tun0 inet `hostname` up ifconfig tun0 add 2001:DB8:c001:f00d::1/64 ifconfig tun0 add fe80::cb8:c001:f00d:1/64 ifconfig tun0 tun0 Link encap:UNSPEC Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet Adresse:127.0.1.1 P-z-P:127.0.1.1 Maske:255.255.255.255 inet6-Adresse: fe80::cb8:c001:f00d:1/64 Gültigkeitsbereich:Verbindung inet6-Adresse: 2001:db8:c001:f00d::1/64 Gültigkeitsbereich:Global UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1500 Metrik:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 Kollisionen:0 Sendewarteschlangenlänge:500 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) *** Address:2001:DB8:c001:f00d::1 => 2001:0db8:c001:f00d Got configuration message of type P Setting prefix 2001:db8:c001:f00d:: Server IPv6 addresses: 2001:db8:c001:f00d:221:2eff:ff00:3375 fe80::221:2eff:ff00:3375 120s
Mein Merkurboard mit der rpl-boarder-router Firmware besitzt die IPv6 Adresse 2001:db8:c001:f00d:221:2eff:ff00:3375
Achtung: die IPv6 Adresse besteht aus dem Präfix 2001:DB8:c001:f00d: und der MAC Adresse auf dem Merkurboard 0221:2eff:ff00:3375
Nun besitzt unser Linux Computer eine neue Netzwerkkarte tun0.
Jetzt können wir über den Browser die Routingtabelle unsere neue Netzwerkkarte tun0 ansehen. Die Adresse ist die Server IPv6 addresses siehe oben.
http://[2001:db8:c001:f00d:221:2eff:ff00:3375]