« Previous - Version 3/8 (diff) - Next » - Current version
6lowpan group from 18-748 -, 05/06/2010 07:52 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.

'''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
}}}

'''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.