Back in December ZipIts were selling for $9.99 on amazon. It seemed like way too good a deal to be true, but I couldn’t resist the urge to get one, they have so many features that interest me. I figured it was worth the risk. I received the ZipIt, installed Linux, and tested out the hardware. Impressed as I was, I ordered 10 more. One of the primary reasons for acquiring this many ZipIts was to set up and experiment with a mesh network. I’m not disappointed, the value of my Zipits went way up this past weekend! This post describes the steps for configuring the ZipIt as a node on a mesh network.
As of Linux kernel 2.6.38 the batman-adv kernel module is in mainline. Using buildroot I configured and built the kernel to include the module. I cross-compiled the user land utility batctrl and installed it to the /usr/sbin directory of Z2Lite.
To set up a mesh network node, boot Z2Lite and issue the following commands. I put them in a script file and assigned the script to a key in tmux.conf. Be sure to kill the wpa-supplicant process if it’s running.
z2lite:~# modprobe batman-adv
z2lite:~# ifconfig wlan0 down
z2lite:~# ifconfig wlan0 mtu 1476
z2lite:~# iwconfig wlan0 mode ad-hoc
z2lite:~# iwconfig wlan0 essid zipit ap 02:1A:34:56:78:9A channel 1
z2lite:~# batctl if add wlan0
z2lite:~# ifconfig bat0 192.168.11.219
z2lite:~# ifconfig wlan0 up
z2lite:~# ifconfig bat0 up
Assign a unique AP mac address for each node (i.e. ZipIt) and choose a channel that best suits your environment. That’s it, everything else is just like other IP networks, ping, ssh etc. The batctl utility has a few commands for troubleshooting the network if you have issues. I haven’t had time to experiment yet, but the first is going to be location triangulation. I think it’s built into the protocol.