logo.png

Mesh Network

mesh_screenshot.jpg

Mesh networks are useful as a quick way to make a fully decentralised communications system which is not connected to the internet. Think festivals, hacker conferences, onboard ships at sea, disaster/war zones, small business internal office communications, protests, remote areas of the world, scientific expeditions and off-world space colonies. All the cool stuff. The down side is that you can't access any internet content. The upside is that you can securely communicate with anyone on the local mesh. No ISPs. No payments or subscriptions beyond the cost of obtaining the hardware. Systems need to be within wifi range of each other for the mesh to be created. It can be an ultra-convenient way to do purely local communications.

Ready made images

Client images

"Client" isn't exactly the right term, but it's a mesh peer with a user interface. These images can be copied to a USB drive and used with a laptop/netbook/desktop machine.

mesh-client.img.xz

GPG signature:

mesh-client.img.xz.sig

sha256 hash


Router images

Mesh router image for the Beaglebone Black:

mesh-router-beaglebone-black.img.xz

GPG signature:

mesh-router-beaglebone-black.img.xz.sig

sha256 hash

7e90e0489eff70d7211b2b9b891ba6da20670bedbbe6db3edbb41bc54f7c8679

To build the disk image yourself

It's better not to trust images downloaded from random places on the interwebs. Chances are that unless you are in the web of trust of the above GPG signatures then they don't mean very much to you. If you actually want something trustworthy then build the images from scratch. It will take some time. Here's how to do it.

First you will need to create an image. On a Debian based system:

sudo su
apt-get -y install build-essential libc6-dev-i386 \
    gcc-multilib g++-multilib git python-docutils mktorrent \
    vmdebootstrap xz-utils dosfstools btrfs-tools extlinux \
    python-distro-info mbr qemu-user-static binfmt-support \
    u-boot-tools qemu
git clone https://github.com/bashrc/freedombone
cd freedombone
git checkout stockholm
make install
freedombone-image -t i386 -v meshclient

If you don't have Atheros or free software compatible wifi adapter then you can include proprietary wifi drivers which will work with most laptops. This is NOT RECOMMENDED because proprietary drivers are unsupportable and may contain either malware or be exploitable in a way which can't be fixed. However, if you're in an emergency and don't have any Atheros or free software wifi USB dongles then you can use the following command to make the image:

freedombone-image -t i386 -v meshclient --insecure yes

This takes a while. Maybe an hour or so, depending on the speed of your system and the internets. The good news though is that once created you can use the resulting image any number of times, and you don't need to trust some pre-built image.

List what drives are on your system with:

ls /dev/sd*

Now plug in the USB thumb drive, and do the same again. Notice which drive letter gets added.

You can now copy the image to the USB thumb drive, replacing sdX with the identifier of the USB thumb drive. Don't include any numbers (so for example use sdc instead of sdc1).

dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync

And wait. Again it will take a while to copy over. When that's done plug it into the laptop or netbook which you want to use on the mesh, power on and set the BIOS to boot from the USB stick.

On first boot you'll be asked to set a username, and then you can open the chat client and select the users icon to show the Tox IDs for other users on the mesh. When folks join they will be announced.

Rinse, repeat, for any number of laptops that you want to get onto the mesh or to build out coverage within an area. There are no servers. Just peer-to-peer communications routed through the network which are end-to-end secure after a friend request is accepted. By default the chat client doesn't log anything.

No logs, no masters.

You can also use single board computers (SBCs) such as the BeagleBone Black to make mesh routers which can be bolted to walls or the sides of buildings and consume minimal electrical power, so could be solar or battery powered for short term events such as festivals. To do that use the following command to make the image:

freedombone-image -t beaglebone -v mesh

The resulting image can be copied to a microSD card, inserted into a Beaglebone Black and booted. Don't forget to plug in an Atheros USB wifi dongle.

This site can also be accessed via a Tor browser at 4fvfozz6g3zmvf76.onion

Back to top | E-mail me