Übersetzungen dieser Seite:

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

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]

de/tutorials/contiki/merkur_board_native_usb_router.txt · Zuletzt geändert: 2017/07/19 15:44 von harald42