Inhaltsverzeichnis
Das Merkur-Board als Native-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 Packetempfänger und Sender verwendet. Dein Linux-Rechner als Nativer Router damit wird er 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 slip-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 slip-radio.
Firmware für das Merkurboard kompilieren
# Move to slip-radio cd ~/osd-contiki/examples/osd/slip-radio/
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 Nativen 6lowPAN-Router einrichten
Routersoftware kompilieren
cd ~/osd-contiki/examples/osd/native-border-router/ make clean make TARGET=native
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 border-router.native 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 ./border-router.native -B 38400 2001:DB8:c001:f00d::1/64
Contiki-2.6-4855-g5e15ec648 started with IPV6, RPL Rime started with address 1.2.3.4.5.6.7.8 MAC nullmac RDC br-rdc NETWORK sicslowpan Tentative link-local IPv6 address fe80:0000:0000:0000:0302:0304:0506:0708 RPL-Border router started ********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 tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500 inet 127.0.1.1 netmask 255.255.255.255 destination 127.0.1.1 inet6 2001:db8:c001:f00d::1 prefixlen 64 scopeid 0x0<global> inet6 fe80::872a:a95e:9764:13b0 prefixlen 64 scopeid 0x20<link> unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 Setting prefix 2001:db8:c001:f00d::1 created a new RPL dag Server IPv6 addresses: 0x5602d5c8d5c0: =>2001:db8:c001:f00d:221:2eff:ff00:c7ce 0x5602d5c8d5e8: =>fe80::221:2eff:ff00:c7ce 1380s
Mein Merkurboard mit der slip 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:c7ce]