6LoWPAN-installation

Version 4 (6lowpan group from 18-748 -, 05/06/2010 08:04 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 4 6lowpan group from 18-748 -
Also make sure that 'radvd' is also installed if it was not pulled down as a dependency of gw6c.
44 3 6lowpan group from 18-748 -
45 1 6lowpan group from 18-748 -
'''STEP 4: Setup Edge Router Network Device Driver'''
46 1 6lowpan group from 18-748 -
47 1 6lowpan group from 18-748 -
go to the driver directory...
48 1 6lowpan group from 18-748 -
49 1 6lowpan group from 18-748 -
{{{
50 1 6lowpan group from 18-748 -
cd edge/driver/kernel-2.6.32
51 1 6lowpan group from 18-748 -
}}}
52 1 6lowpan group from 18-748 -
53 1 6lowpan group from 18-748 -
and compile the driver...
54 1 6lowpan group from 18-748 -
55 1 6lowpan group from 18-748 -
{{{
56 1 6lowpan group from 18-748 -
make
57 1 6lowpan group from 18-748 -
}}}
58 1 6lowpan group from 18-748 -
59 1 6lowpan group from 18-748 -
now start up the 6LoWPAN module...
60 1 6lowpan group from 18-748 -
61 1 6lowpan group from 18-748 -
{{{
62 1 6lowpan group from 18-748 -
sudo insmod sixlowpan.ko
63 1 6lowpan group from 18-748 -
}}}
64 1 6lowpan group from 18-748 -
65 1 6lowpan group from 18-748 -
{{{
66 1 6lowpan group from 18-748 -
sudo ifconfig 6lowpan0 up
67 1 6lowpan group from 18-748 -
}}}
68 1 6lowpan group from 18-748 -
69 1 6lowpan group from 18-748 -
Running "ifconfig" should now display "6lowpan0" as a network interface:
70 1 6lowpan group from 18-748 -
71 1 6lowpan group from 18-748 -
{{{
72 1 6lowpan group from 18-748 -
$ifconfig
73 2 6lowpan group from 18-748 -
6lowpan0  Link encap:Ethernet  HWaddr 92:9d:0b:44:66:c2
74 2 6lowpan group from 18-748 -
          inet6 addr: fe80::909d:bff:fe44:66c2/64 Scope:Link
75 2 6lowpan group from 18-748 -
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
76 2 6lowpan group from 18-748 -
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
77 2 6lowpan group from 18-748 -
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
78 2 6lowpan group from 18-748 -
          collisions:0 txqueuelen:0
79 2 6lowpan group from 18-748 -
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
80 1 6lowpan group from 18-748 -
}}}
81 1 6lowpan group from 18-748 -
82 1 6lowpan group from 18-748 -
Now start up gw6c...
83 1 6lowpan group from 18-748 -
84 1 6lowpan group from 18-748 -
{{{
85 1 6lowpan group from 18-748 -
sudo /etc/init.d/gw6c start
86 1 6lowpan group from 18-748 -
}}}
87 1 6lowpan group from 18-748 -
88 1 6lowpan group from 18-748 -
Running "ifconfig" again should now display the IPv6 prefix associated with 6lowpan0
89 1 6lowpan group from 18-748 -
90 2 6lowpan group from 18-748 -
{{{
91 2 6lowpan group from 18-748 -
$ifconfig
92 2 6lowpan group from 18-748 -
6lowpan0  Link encap:Ethernet  HWaddr 16:38:96:c7:4f:48  
93 2 6lowpan group from 18-748 -
          inet6 addr: 2001:5c0:1107:9b00::1/64 Scope:Global
94 2 6lowpan group from 18-748 -
          inet6 addr: fe80::1438:96ff:fec7:4f48/64 Scope:Link
95 2 6lowpan group from 18-748 -
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
96 2 6lowpan group from 18-748 -
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
97 2 6lowpan group from 18-748 -
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
98 2 6lowpan group from 18-748 -
          collisions:0 txqueuelen:0 
99 2 6lowpan group from 18-748 -
          RX bytes:0 (0.0 B)  TX bytes:298 (298.0 B)
100 2 6lowpan group from 18-748 -
101 2 6lowpan group from 18-748 -
}}}
102 2 6lowpan group from 18-748 -
103 1 6lowpan group from 18-748 -
'''STEP 5: Setup the Edge Router Radio Node'''
104 1 6lowpan group from 18-748 -
105 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
106 1 6lowpan group from 18-748 -
with the firefly network.
107 1 6lowpan group from 18-748 -
108 1 6lowpan group from 18-748 -
First go to the radio node directory...
109 1 6lowpan group from 18-748 -
110 1 6lowpan group from 18-748 -
{{{
111 1 6lowpan group from 18-748 -
cd edge/node
112 1 6lowpan group from 18-748 -
}}}
113 1 6lowpan group from 18-748 -
114 1 6lowpan group from 18-748 -
Compile and program a node...
115 1 6lowpan group from 18-748 -
116 1 6lowpan group from 18-748 -
{{{
117 2 6lowpan group from 18-748 -
make && make program
118 1 6lowpan group from 18-748 -
}}}
119 1 6lowpan group from 18-748 -
120 1 6lowpan group from 18-748 -
'''STEP 6: Setup the Edge Router User Level Process'''
121 1 6lowpan group from 18-748 -
122 1 6lowpan group from 18-748 -
Last thing to setup is the user level process.
123 1 6lowpan group from 18-748 -
124 1 6lowpan group from 18-748 -
Go to the user space process directory
125 1 6lowpan group from 18-748 -
126 1 6lowpan group from 18-748 -
{{{
127 1 6lowpan group from 18-748 -
cd edge/user
128 1 6lowpan group from 18-748 -
}}}
129 1 6lowpan group from 18-748 -
130 1 6lowpan group from 18-748 -
compile...
131 1 6lowpan group from 18-748 -
132 1 6lowpan group from 18-748 -
{{{
133 1 6lowpan group from 18-748 -
make
134 1 6lowpan group from 18-748 -
}}}
135 1 6lowpan group from 18-748 -
136 1 6lowpan group from 18-748 -
and run the process...
137 1 6lowpan group from 18-748 -
138 1 6lowpan group from 18-748 -
{{{
139 1 6lowpan group from 18-748 -
sudo ./edge
140 1 6lowpan group from 18-748 -
}}}
141 1 6lowpan group from 18-748 -
142 1 6lowpan group from 18-748 -
'''STEP 7: Setup the nodes'''
143 1 6lowpan group from 18-748 -
144 1 6lowpan group from 18-748 -
See the [http://www.nanork.org/wiki/6LoWPAN-api 6LoWPAN api] to find the correct way of programming
145 1 6lowpan group from 18-748 -
on the nodes.  Examples can be found in the apps/ folder.
146 1 6lowpan group from 18-748 -
147 1 6lowpan group from 18-748 -
'''STEP 8: Setup the MAC Addresses'''
148 1 6lowpan group from 18-748 -
149 1 6lowpan group from 18-748 -
You should now assign each firefly node in your network with a unique 16-bit address.  You can
150 1 6lowpan group from 18-748 -
do this by using the config-eeprom program.
151 1 6lowpan group from 18-748 -
152 1 6lowpan group from 18-748 -
{{{
153 1 6lowpan group from 18-748 -
./config-eeprom
154 1 6lowpan group from 18-748 -
}}}
155 1 6lowpan group from 18-748 -
156 1 6lowpan group from 18-748 -
'''STEP 9: Test'''
157 1 6lowpan group from 18-748 -
158 1 6lowpan group from 18-748 -
Congratulations you should now have a network of firefly nodes connected to the internet.  Test
159 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
160 1 6lowpan group from 18-748 -
in your network.