- <item>
- <title>A Raspberry Pi based batman-adv Mesh network node</title>
- <link>http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html</guid>
- <pubDate>Mon, 21 Oct 2013 11:40:00 +0200</pubDate>
- <description><p>The last few days I have been experimenting with
-<a href="http://www.open-mesh.org/projects/batman-adv/wiki">the
-batman-adv mesh technology</a>. I want to gain some experience to see
-if it will fit <a href="https://wiki.debian.org/FreedomBox">the
-Freedombox project</a>, and together with my neighbors try to build a
-mesh network around the park where I live. 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 was 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
-<a href="http://www.raspberrypi.org/">Raspberry Pi</a>, 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 (bridged) 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 allow
-non-mesh clients to hook up to the mesh. This in turn is useful for
-Android phones using <a href="http://servalproject.org/">the Serval
-Project</a> voip client, allowing every one around the playground to
-phone and message each other for free. The reason is that Android
-phones do not see ad-hoc wifi networks (they are filtered away from
-the GUI view), and can not join the mesh without being rooted. But if
-they are connected using a normal wifi base station, they can talk to
-every client on the local network.</p>
-
-<p>To get this working, I've created a debian package
-<a href="https://github.com/petterreinholdtsen/meshfx-node">meshfx-node</a>
-and a script
-<a href="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. Also, as
-Debian lack support for the CPU features available in the Raspberry
-Pi, the system do not use the hardware floating point unit. I hope
-the routing performance isn't affected by the lack of hardware FPU
-support.</p>
-
-<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. At least it does for
-me with a the wifi card I am using. The default mesh settings are the
-ones used by the Oslo mesh project at Hackeriet, as I mentioned in
-<a href="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>
-
-<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><td>Teknikkmagasinet</td><td>Raspberry Pi type B case</td><td>99.90</td></tr>
-<tr><td>Lefdal</td><td>Jensen Air:Link 25150</td><td>295.-</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></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. And some times
-I hook up my work horse laptop to the mesh to test it. 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>
-</description>
- </item>
-