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:
parent
c72f37a30b
commit
36e1da6689
58
examples/ng_networking/README.md
Normal file
58
examples/ng_networking/README.md
Normal 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
|
Loading…
Reference in New Issue
Block a user