1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

Explain how to connect RIOT to Linux

This commit is contained in:
Lucas Jenss 2015-07-18 18:41:47 +02:00
parent c72f37a30b
commit 36e1da6689

View File

@ -0,0 +1,58 @@
# ng_networking example
## Connecting RIOT native and the Linux host
To establish a connection between RIOT and the Linux host, the following dependencies are required:
* netcat (with IPv6 support)
Ubuntu 14.04 comes with netcat IPv6 support pre-installed. On Debian it's available in the package `netcat-openbsd`.
After installing, create a tap interface (to which RIOT will connect) and a bridge (to which Linux will connect):
sudo ip tuntap add tap0 mode tap user ${USER}
sudo ip link set tap0 up
Now you can start the `ng_networking` example by invoking `make term`. This should automatically connect to the `tap0` interface.
To verify that there is connectivity between RIOT and Linux, go to the RIOT console and run `ifconfig`:
> ifconfig
Iface 7 HWaddr: ce:f5:e1:c5:f7:5a
inet6 addr: ff02::1/128 scope: local [multicast]
inet6 addr: fe80::ccf5:e1ff:fec5:f75a/64 scope: local
inet6 addr: ff02::1:ffc5:f75a/128 scope: local [multicast]
Copy the link-local address of the RIOT node (prefixed with `fe80`) and try to ping it **from the Linux node**:
ping6 fe80::ccf5:e1ff:fec5:f75a%tap0
Note that the interface on which to send the ping needs to be appended to the IPv6 address, `%tap0` in the above example. When talking to the RIOT node, you always want to send to/receive from the `tap0` interface.
If the pings succeed you can go on to send UDP packets. To do that, first start a UDP server on the RIOT node:
> udp server start 8808
Success: started UDP server on port 8808
Now, on the Linux host, you can run netcat to connect with RIOT's UDP server:
nc -6uv fe80::ccf5:e1ff:fec5:f75a%tap0 8808
You should now see that UDP messages are received on the RIOT side. Opening a UDP server on the Linux side is also possible. Do do that, write down the IP address of the host (run on Linux):
ifconfig tap0
tap0 Link encap:Ethernet HWaddr ce:f5:e1:c5:f7:59
inet6 addr: fe80::4049:5fff:fe17:b3ae/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:488 (488.0 B) TX bytes:3517 (3.5 KB)
Then open a UDP server on Linux:
nc -6ul 8808
Now, on the RIOT side, send a UDP packet using:
udp send fe80::4049:5fff:fe17:b3ae 8808 testmessage