From: Petter Reinholdtsen Date: Mon, 21 Oct 2013 09:31:25 +0000 (+0000) Subject: Complete blog post. X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/commitdiff_plain/2b49d85ca1afe20f58329cc1aae17707e11d4692?ds=sidebyside Complete blog post. --- diff --git a/blog/draft/2013-mesh-network-rpi.txt b/blog/draft/2013-mesh-network-rpi.txt index 4aa973a8d1..7abba847f8 100644 --- a/blog/draft/2013-mesh-network-rpi.txt +++ b/blog/draft/2013-mesh-network-rpi.txt @@ -1,14 +1,59 @@ Title: A Raspberry Pi based batman-adv Mesh network node +Tags: english, nuug, freedombox, mesh network +Date: 2013-10-21 11:40 +

The last few days I have been experimenting with the batman-adv +mech technology. I want to gain some experience to see if it will fit +the Freedombox project, and try to build a mesh network around the +park where I live together with my neighbors. Batman-adv is a layer 2 +mesh system ("ethernet" in other words), where the mesh network appear +as if all the mesh clients are connected to the same switch.

+

My hardware of choice were the Linksys WRT54GL routers I had lying +around, but I've been unable to get them working with batman-adv. So +instead, I started playing with a Raspberry Pi, and tried to get it +working as a mesh node. My idea is to use it to create a mesh node +which function as a switch port, where everything connected to the +Raspberry Pi ethernet plug is connected to the mesh network. This +allow me to hook a wifi base station like the Linksys WRT54GL to the +mesh by plugging it into a Raspberry Pi, and thus allow non-mesh +clients to hook up to the mesh. This in turn is useful for Android +phones using the Serval Project +voip client, allowing every one around the playground to phone and +message each other for free.

+

To get this working, I've created a debian package +meshfx-node +and a script +build-rpi-mesh-node +to create the Raspberry Pi boot image. I'm using Debian Jessie (and +not Raspbian), to get more control over the packages available. +Unfortunately a huge binary blob need to be inserted into the boot +image to get it booting, but I'll ignore that for now.

-wifi -> batman-adv mesh backbone -ethernet -> bridget to mesh +

To create an image, run the following with a sudo enabled user +after inserting the target SD card into the build machine:

+

+% wget -O build-rpi-mesh-node \
+    https://raw.github.com/petterreinholdtsen/meshfx-node/master/build-rpi-mesh-node
+% sudo bash -x ./build-rpi-mesh-node > build.log 2>&1
+% dd if=/root/rpi/rpi_basic_jessie_$(date +%Y%m%d).img of=/dev/mmcblk0 bs=1M
+%
+

+

Booting with the resulting SD card on a Raspberry PI with a USB +wifi card inserted should give you a mesh node. The default mesh +settings are the ones used by the Oslo mesh project at Hackeriet, as I +mentioned in +an +earlier blog post about this mesh testing.

- +

The mesh node was not horribly expensive either. I bought +everything over the counter in shops nearby. If I had ordered online +from the lowest bidder, the price should be significantly lower:

+ +

@@ -17,4 +62,12 @@ ethernet -> bridget to mesh -
SupplierModelNOK
TeknikkmagasinetRaspberry Pi model B349.90
Clas OhlsonKingston 16 GB SD card199.-
Total cost943.80
+

+ +

Now my mesh network at home consist of one laptop in the basement +connected to my production network, one Raspberry Pi node on the 1th +floor that can be seen by my neighbor across the park, and one +play-node I use to develop the image building script. I look forward +to figuring out what kind of latency the batman-adv setup will give, +and how much packet loss we will experience around the park. :)

+