« Previous - Version 6/8 (diff) - Next » - Current version
6lowpan group from 18-748 -, 05/06/2010 08:11 pm


= Nano-RK 6LoWPAN Installation =
'''STEP 1: Install Linux'''

Install a Linux kernel >= 2.6.32. The 6LoWPAN network driver has only been tested on 2.6.32 and
will not compile on previous versions.

'''STEP 2: Obtain an IPv6 Address'''

For 6LoWPAN to work you need to have an IPv6 address. Unfortunately, most ISPs only provide
IPv4 connectivity. If this is the case you can obtain an IPv6 address by using the Freenet6
tunnelling service. You can find more info here: [http://gogonet.gogo6.com/page/freenet6-services].
You will need to register so that their service can give you an IPv6 address.

Once you have registered, you will have to download the 'gw6c' software. This can be obtained from
the previous website, or through your distro's package management system. The latest versions are
available in the repositories for Ubuntu and Gentoo. When the software has been installed, it can
be configured by editing 'gw6c.conf'. This file is installed with gw6c, on Ubuntu it is located at
'/etc/gw6c/gw6c.conf', and on Gentoo it is at '/etc/gateway6/gw6c.conf'. You will have to enter your
login information, and change the server from 'anon' to 'broker'.

Full installation details for Gentoo can be found at [http://www.gentoo.org/doc/en/ipv6.xml] under
the section for freenet6. The procedure is similar for Ubuntu.

'''STEP 3: Obtain an IPv6 Network prefix'''

Because we will be distributing IPv6 addresses to each node you will also need to acquire a
network prefix. Luckily, freenet6 also offers a service where you can get a full IPv6
network prefix.

To do this make sure to change your gw6c.conf configuration file to 'router':

{{{
host_type=router
}}}

Also change the Network interface to 6lowpan0:

{{{
if_prefix=6lowpan0
}}}

If you notice problems, make sure the 6lowpan driver is loaded and that the interface exists.
Also make sure that 'radvd' is installed if it was not pulled down as a dependency of gw6c. It
is required to send router advertisements to the network. Note however that gw6c will configure
and start radvd, you should not have to configure it manually.

'''STEP 4: Setup Edge Router Network Device Driver'''

go to the driver directory...

{{{
cd edge/driver/kernel-2.6.32
}}}

and compile the driver...

{{{
make
}}}

now start up the 6LoWPAN module...

{{{
sudo insmod sixlowpan.ko
}}}

{{{
sudo ifconfig 6lowpan0 up
}}}

Running "ifconfig" should now display "6lowpan0" as a network interface:

{{{
$ifconfig
6lowpan0 Link encap:Ethernet HWaddr 92:9d:0b:44:66:c2
inet6 addr: fe80::909d:bff:fe44:66c2/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
}}}

Now start up gw6c...

{{{
sudo /etc/init.d/gw6c start
}}}

Running "ifconfig" again should now display the IPv6 prefix associated with 6lowpan0

{{{
$ifconfig
6lowpan0 Link encap:Ethernet HWaddr 16:38:96:c7:4f:48
inet6 addr: 2001:5c0:1107:9b00::1/64 Scope:Global
inet6 addr: fe80::1438:96ff:fec7:4f48/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:298 (298.0 B)

}}}

'''STEP 5: Setup the Edge Router Radio Node'''

We now need to configure the radio node to be used by the edge router so that it may communicate
with the firefly network.

First go to the radio node directory...

{{{
cd edge/node
}}}

Compile and program a node...

{{{
make && make program
}}}

'''STEP 6: Setup the Edge Router User Level Process'''

Last thing to setup is the user level process.

Go to the user space process directory

{{{
cd edge/user
}}}

compile...

{{{
make
}}}

and run the process...

{{{
sudo ./edge
}}}

'''STEP 7: Setup the nodes'''

See the [http://www.nanork.org/wiki/6LoWPAN-api 6LoWPAN api] to find the correct way of programming
on the nodes. Examples can be found in the apps/ folder.

'''STEP 8: Setup the MAC Addresses'''

You should now assign each firefly node in your network with a unique 16-bit address. You can
do this by using the config-eeprom program.

{{{
./config-eeprom
}}}

'''STEP 9: Test'''

Congratulations you should now have a network of firefly nodes connected to the internet. Test
that this is in fact true by going to [http://www.ipv6tools.org] and try pinging one of the nodes
in your network.