6LoWPAN-installation

Version 6 (6lowpan group from 18-748 -, 05/06/2010 08:11 pm)

1 1 6lowpan group from 18-748 -
= Nano-RK 6LoWPAN Installation =
2 1 6lowpan group from 18-748 -
'''STEP 1: Install Linux'''
3 1 6lowpan group from 18-748 -
4 1 6lowpan group from 18-748 -
Install a Linux kernel >= 2.6.32.  The 6LoWPAN network driver has only been tested on 2.6.32 and
5 1 6lowpan group from 18-748 -
will not compile on previous versions.
6 1 6lowpan group from 18-748 -
7 1 6lowpan group from 18-748 -
'''STEP 2: Obtain an IPv6 Address'''
8 1 6lowpan group from 18-748 -
9 1 6lowpan group from 18-748 -
For 6LoWPAN to work you need to have an IPv6 address.  Unfortunately, most ISPs only provide
10 1 6lowpan group from 18-748 -
IPv4 connectivity.  If this is the case you can obtain an IPv6 address by using the Freenet6
11 1 6lowpan group from 18-748 -
tunnelling service.  You can find more info here: [http://gogonet.gogo6.com/page/freenet6-services].
12 1 6lowpan group from 18-748 -
You will need to register so that their service can give you an IPv6 address.
13 1 6lowpan group from 18-748 -
14 4 6lowpan group from 18-748 -
Once you have registered, you will have to download the 'gw6c' software.  This can be obtained from
15 4 6lowpan group from 18-748 -
the previous website, or through your distro's package management system.  The latest versions are
16 4 6lowpan group from 18-748 -
available in the repositories for Ubuntu and Gentoo.  When the software has been installed, it can
17 4 6lowpan group from 18-748 -
be configured by editing 'gw6c.conf'.  This file is installed with gw6c, on Ubuntu it is located at
18 4 6lowpan group from 18-748 -
'/etc/gw6c/gw6c.conf', and on Gentoo it is at '/etc/gateway6/gw6c.conf'.  You will have to enter your
19 4 6lowpan group from 18-748 -
login information, and change the server from 'anon' to 'broker'.
20 4 6lowpan group from 18-748 -
21 4 6lowpan group from 18-748 -
Full installation details for Gentoo can be found at [http://www.gentoo.org/doc/en/ipv6.xml] under
22 4 6lowpan group from 18-748 -
the section for freenet6.  The procedure is similar for Ubuntu.
23 4 6lowpan group from 18-748 -
24 1 6lowpan group from 18-748 -
'''STEP 3: Obtain an IPv6 Network prefix'''
25 1 6lowpan group from 18-748 -
26 1 6lowpan group from 18-748 -
Because we will be distributing IPv6 addresses to each node you will also need to acquire a
27 1 6lowpan group from 18-748 -
network prefix.  Luckily, freenet6 also offers a service where you can get a full IPv6
28 1 6lowpan group from 18-748 -
network prefix.
29 1 6lowpan group from 18-748 -
30 3 6lowpan group from 18-748 -
To do this make sure to change your gw6c.conf configuration file to 'router':
31 3 6lowpan group from 18-748 -
32 3 6lowpan group from 18-748 -
{{{
33 3 6lowpan group from 18-748 -
host_type=router
34 3 6lowpan group from 18-748 -
}}}
35 3 6lowpan group from 18-748 -
36 3 6lowpan group from 18-748 -
Also change the Network interface to 6lowpan0:
37 3 6lowpan group from 18-748 -
38 3 6lowpan group from 18-748 -
{{{
39 3 6lowpan group from 18-748 -
if_prefix=6lowpan0
40 3 6lowpan group from 18-748 -
}}}
41 4 6lowpan group from 18-748 -
42 4 6lowpan group from 18-748 -
If you notice problems, make sure the 6lowpan driver is loaded and that the interface exists.
43 5 6lowpan group from 18-748 -
Also make sure that 'radvd' is installed if it was not pulled down as a dependency of gw6c.  It
44 6 6lowpan group from 18-748 -
is required to send router advertisements to the network.  Note however that gw6c will configure
45 6 6lowpan group from 18-748 -
and start radvd, you should not have to configure it manually.
46 3 6lowpan group from 18-748 -
47 1 6lowpan group from 18-748 -
'''STEP 4: Setup Edge Router Network Device Driver'''
48 1 6lowpan group from 18-748 -
49 1 6lowpan group from 18-748 -
go to the driver directory...
50 1 6lowpan group from 18-748 -
51 1 6lowpan group from 18-748 -
{{{
52 1 6lowpan group from 18-748 -
cd edge/driver/kernel-2.6.32
53 1 6lowpan group from 18-748 -
}}}
54 1 6lowpan group from 18-748 -
55 1 6lowpan group from 18-748 -
and compile the driver...
56 1 6lowpan group from 18-748 -
57 1 6lowpan group from 18-748 -
{{{
58 1 6lowpan group from 18-748 -
make
59 1 6lowpan group from 18-748 -
}}}
60 1 6lowpan group from 18-748 -
61 1 6lowpan group from 18-748 -
now start up the 6LoWPAN module...
62 1 6lowpan group from 18-748 -
63 1 6lowpan group from 18-748 -
{{{
64 1 6lowpan group from 18-748 -
sudo insmod sixlowpan.ko
65 1 6lowpan group from 18-748 -
}}}
66 1 6lowpan group from 18-748 -
67 1 6lowpan group from 18-748 -
{{{
68 1 6lowpan group from 18-748 -
sudo ifconfig 6lowpan0 up
69 1 6lowpan group from 18-748 -
}}}
70 1 6lowpan group from 18-748 -
71 1 6lowpan group from 18-748 -
Running "ifconfig" should now display "6lowpan0" as a network interface:
72 1 6lowpan group from 18-748 -
73 1 6lowpan group from 18-748 -
{{{
74 1 6lowpan group from 18-748 -
$ifconfig
75 2 6lowpan group from 18-748 -
6lowpan0  Link encap:Ethernet  HWaddr 92:9d:0b:44:66:c2
76 2 6lowpan group from 18-748 -
          inet6 addr: fe80::909d:bff:fe44:66c2/64 Scope:Link
77 2 6lowpan group from 18-748 -
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
78 2 6lowpan group from 18-748 -
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
79 2 6lowpan group from 18-748 -
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
80 2 6lowpan group from 18-748 -
          collisions:0 txqueuelen:0
81 2 6lowpan group from 18-748 -
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
82 1 6lowpan group from 18-748 -
}}}
83 1 6lowpan group from 18-748 -
84 1 6lowpan group from 18-748 -
Now start up gw6c...
85 1 6lowpan group from 18-748 -
86 1 6lowpan group from 18-748 -
{{{
87 1 6lowpan group from 18-748 -
sudo /etc/init.d/gw6c start
88 1 6lowpan group from 18-748 -
}}}
89 1 6lowpan group from 18-748 -
90 1 6lowpan group from 18-748 -
Running "ifconfig" again should now display the IPv6 prefix associated with 6lowpan0
91 1 6lowpan group from 18-748 -
92 2 6lowpan group from 18-748 -
{{{
93 2 6lowpan group from 18-748 -
$ifconfig
94 2 6lowpan group from 18-748 -
6lowpan0  Link encap:Ethernet  HWaddr 16:38:96:c7:4f:48  
95 2 6lowpan group from 18-748 -
          inet6 addr: 2001:5c0:1107:9b00::1/64 Scope:Global
96 2 6lowpan group from 18-748 -
          inet6 addr: fe80::1438:96ff:fec7:4f48/64 Scope:Link
97 2 6lowpan group from 18-748 -
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
98 2 6lowpan group from 18-748 -
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
99 2 6lowpan group from 18-748 -
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
100 2 6lowpan group from 18-748 -
          collisions:0 txqueuelen:0 
101 2 6lowpan group from 18-748 -
          RX bytes:0 (0.0 B)  TX bytes:298 (298.0 B)
102 2 6lowpan group from 18-748 -
103 2 6lowpan group from 18-748 -
}}}
104 2 6lowpan group from 18-748 -
105 1 6lowpan group from 18-748 -
'''STEP 5: Setup the Edge Router Radio Node'''
106 1 6lowpan group from 18-748 -
107 1 6lowpan group from 18-748 -
We now need to configure the radio node to be used by the edge router so that it may communicate
108 1 6lowpan group from 18-748 -
with the firefly network.
109 1 6lowpan group from 18-748 -
110 1 6lowpan group from 18-748 -
First go to the radio node directory...
111 1 6lowpan group from 18-748 -
112 1 6lowpan group from 18-748 -
{{{
113 1 6lowpan group from 18-748 -
cd edge/node
114 1 6lowpan group from 18-748 -
}}}
115 1 6lowpan group from 18-748 -
116 1 6lowpan group from 18-748 -
Compile and program a node...
117 1 6lowpan group from 18-748 -
118 1 6lowpan group from 18-748 -
{{{
119 2 6lowpan group from 18-748 -
make && make program
120 1 6lowpan group from 18-748 -
}}}
121 1 6lowpan group from 18-748 -
122 1 6lowpan group from 18-748 -
'''STEP 6: Setup the Edge Router User Level Process'''
123 1 6lowpan group from 18-748 -
124 1 6lowpan group from 18-748 -
Last thing to setup is the user level process.
125 1 6lowpan group from 18-748 -
126 1 6lowpan group from 18-748 -
Go to the user space process directory
127 1 6lowpan group from 18-748 -
128 1 6lowpan group from 18-748 -
{{{
129 1 6lowpan group from 18-748 -
cd edge/user
130 1 6lowpan group from 18-748 -
}}}
131 1 6lowpan group from 18-748 -
132 1 6lowpan group from 18-748 -
compile...
133 1 6lowpan group from 18-748 -
134 1 6lowpan group from 18-748 -
{{{
135 1 6lowpan group from 18-748 -
make
136 1 6lowpan group from 18-748 -
}}}
137 1 6lowpan group from 18-748 -
138 1 6lowpan group from 18-748 -
and run the process...
139 1 6lowpan group from 18-748 -
140 1 6lowpan group from 18-748 -
{{{
141 1 6lowpan group from 18-748 -
sudo ./edge
142 1 6lowpan group from 18-748 -
}}}
143 1 6lowpan group from 18-748 -
144 1 6lowpan group from 18-748 -
'''STEP 7: Setup the nodes'''
145 1 6lowpan group from 18-748 -
146 1 6lowpan group from 18-748 -
See the [http://www.nanork.org/wiki/6LoWPAN-api 6LoWPAN api] to find the correct way of programming
147 1 6lowpan group from 18-748 -
on the nodes.  Examples can be found in the apps/ folder.
148 1 6lowpan group from 18-748 -
149 1 6lowpan group from 18-748 -
'''STEP 8: Setup the MAC Addresses'''
150 1 6lowpan group from 18-748 -
151 1 6lowpan group from 18-748 -
You should now assign each firefly node in your network with a unique 16-bit address.  You can
152 1 6lowpan group from 18-748 -
do this by using the config-eeprom program.
153 1 6lowpan group from 18-748 -
154 1 6lowpan group from 18-748 -
{{{
155 1 6lowpan group from 18-748 -
./config-eeprom
156 1 6lowpan group from 18-748 -
}}}
157 1 6lowpan group from 18-748 -
158 1 6lowpan group from 18-748 -
'''STEP 9: Test'''
159 1 6lowpan group from 18-748 -
160 1 6lowpan group from 18-748 -
Congratulations you should now have a network of firefly nodes connected to the internet.  Test
161 1 6lowpan group from 18-748 -
that this is in fact true by going to [http://www.ipv6tools.org] and try pinging one of the nodes
162 1 6lowpan group from 18-748 -
in your network.