]> pere.pagekite.me Git - homepage.git/commitdiff
Complete blog post.
authorPetter Reinholdtsen <pere@hungry.com>
Mon, 21 Oct 2013 09:31:25 +0000 (09:31 +0000)
committerPetter Reinholdtsen <pere@hungry.com>
Mon, 21 Oct 2013 09:31:25 +0000 (09:31 +0000)
blog/draft/2013-mesh-network-rpi.txt

index 4aa973a8d15ed6def770f7c1aa3828a1cff3fc85..7abba847f86a6ab3afe9e6c03ac363e36669978e 100644 (file)
@@ -1,14 +1,59 @@
 Title: A Raspberry Pi based batman-adv Mesh network node
 Title: A Raspberry Pi based batman-adv Mesh network node
+Tags: english, nuug, freedombox, mesh network
+Date: 2013-10-21 11:40
 
 
+<p>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.</p>
 
 
+<p>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 <ahref="http://servalproject.org/">the Serval Project</a>
+voip client, allowing every one around the playground to phone and
+message each other for free.</p>
 
 
+<p>To get this working, I've created a debian package
+<ahref="https://github.com/petterreinholdtsen/meshfx-node">meshfx-node</a>
+and a script
+<ahref="https://github.com/petterreinholdtsen/meshfx-node/blob/master/build-rpi-mesh-node">build-rpi-mesh-node</a>
+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.</p>
 
 
-wifi -> batman-adv mesh backbone
-ethernet -> bridget to mesh
+<p>To create an image, run the following with a sudo enabled user
+after inserting the target SD card into the build machine:</p>
 
 
+<p><pre>
+% 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
+%
+</pre></p>
 
 
+<p>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
+<ahref="http://people.skolelinux.org/pere/blog/Oslo_community_mesh_network___with_NUUG_and_Hackeriet_at_Hausmania.html">an
+earlier blog post about this mesh testing</a>.</p>
 
 
-<table>
+<p>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:</p>
+
+<p><table>
 
 <tr><th>Supplier</th><th>Model</th><th>NOK</th></tr>
 <tr><td>Teknikkmagasinet</td><td>Raspberry Pi model B</td><td>349.90</td></tr>
 
 <tr><th>Supplier</th><th>Model</th><th>NOK</th></tr>
 <tr><td>Teknikkmagasinet</td><td>Raspberry Pi model B</td><td>349.90</td></tr>
@@ -17,4 +62,12 @@ ethernet -> bridget to mesh
 <tr><td>Clas Ohlson</td><td>Kingston 16 GB SD card</td><td>199.-</td></tr>
 <tr><td>Total cost</td><td></td><td>943.80</td></tr>
 
 <tr><td>Clas Ohlson</td><td>Kingston 16 GB SD card</td><td>199.-</td></tr>
 <tr><td>Total cost</td><td></td><td>943.80</td></tr>
 
-</table>
+</table></p>
+
+<p>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. :)</p>
+