In this instructable we are going to install and use Project Byzantium to a Raspberry Pi and especially to a Raspbian image. Then we will connect our Raspbian image which we will call ByzPi to a Byzantium noderunning in a common pc.
But what is project Byzantium? According to the official web page
"The goal of Project Byzantium is to develop a communication system by which users can connect to each other and share information in the absence of convenient access to the Internet. This is done by setting up an ad-hoc wireless mesh network that offers services which replace popular websites often used for this purpose, such as Twitter and IRC.
These services and web apps were selected because they are the ones most often used by activists around the world to find one another, exchange information, post media, and organize. They were also selected because they stand the best chance of being easy to use by our intended userbase, which are people using mobile devices like smartphones, MP3 players, and tablet PCs. Unlike most mesh implementations, a Byzantium Mesh requires no specialized equipment that may not be easy to get during an emergency, just an x86 computer with at least one 802.11 a/b/g/n wireless interface. It will run on just about any x86 computer, including later generation Macbooks."
Step 1: One Step at a Time
Lets first count the installation steps:
- Install the Raspbian image to a Raspberry PI.
- Write the Project Byzantium image to a usb stick.
- Install the ByzPi to the Raspbian image.
- Boot our pc with the Project Byzantium live image and create an ad-hoc node.
- Connect our ByzPi to the Byzantium node.
Step 2: Hardware List
Ok lets start with the hardware list. We will need:
- A Raspberry Pi (i used my Pi model B with 512 memory and 8gb sdcard)
- A common pc (i used my old Toshiba laptop)
- A usb stick (i used an old SanDisk 8gb)
- A wifi dongle for the Raspberry Pi. (i used my Linksys WUSB54GC ver.3)
First we need the Raspberry Pi for the installation of Raspbian & ByzPi.
Second we need the usb stick to write the live image of Project Byzantium and the pc to run the live image.
Notice: Project Byzantium is a live image which means that we cant install it to the pc
Step 3: Software List
We will need:
- The latest Raspbian Wheezy image Download Raspbian Wheezy
- The latest Project Byzantium live image Download Project Byzantium
- Gdiskdump (for LInux) or Win32 Disk Imager (for WIndows) Download GdiskdumpDownload Win32 Disk Imager
- Unetbootin (Linux or Windows) Download Unetbootin
First we must download the Raspbian image. Then with Gdiskdump or Win32 Disk Imager we must write the image to the 8gb sdcard. After the first boot & setup of our Raspberry Pi we must install all the updates of the software. Open a terminal at the Raspberry Pi and type sudo apt-get update and when finished type sudo apt-get upgrade. It is very important to have all the updates to our Pi. Lets continue with our pc now
Second we must download the Project Byzantium image. Then with Unetbootin write the image to the usb stick.
We have till now installed the Raspbian image to the PI and the Byzantium image to the usb stick. We will proceed with the ByzPi installation to our next step.
Notice: The ByzPi installation is based to the Raspbian Wheezy image. I don't know if that is possible with Jessie & Jessie light. If it is and you have already done it and is working, please write a comment to inform me.
Step 4: Install ByzPi
The installation of ByzPi is very simple but it takes some time. Open a terminal at Raspberry Pi and type the following command: curl -s http://byzantium.github.io/ByzPi/install.sh | bash press enter and it will take about 40 minutes to make the whole installation. It takes some time to run because the script does an apt-get upgrade so all of the systemware will be up to date. During the installation you will see a couple of errors at the terminal. I cant tell you what are these errors, but dont stop the installation, continue till the end.
According to the github wiki of the ByzPi: If you ran the curl command from the wiki, you don't need to run the script, just reboot, and you should be connected. That think never worked to me so after the installation, insert the wifi dongle, reboot your Pi open a terminal and type the below commands:
#List the folders & find the ByzPi one
#Enter the ByzPi folder
#Enter the autoconfigd-0.3 folder
#Run the python script
sudo python byzantium_configd.py
After a few seconds the script will stop and now we have our Raspberry Pi ready to auto connect if any Byzantium node will appear. And that will be our next step to create a Byzantium node to a common pc.
Step 5: Project Byzantium Live Image - Services.
Ok we have finished with the Pi and it is time to start our Byzantium node. It is very simple just take the usb stick with the Byzantium live image from step 3 and boot your pc from it. At the options screen choose the first one and after a couple of seconds you will able to see the Desktop. After a while Firefox will open to notify you that you node is up & running.
Immediately the Raspberry Pi will connect to your node. In order to find that out go to the Desktop icon Network Map and click it. Then a tab will open at the Firefox and you will able to see the connected users and their ip.
Open another tab at the FIrefox and at the address type localhost. You will see 3 services:
- Web chat - an IRC type service where the users can connect and talk each other
- Notepad - this is Etherpad and you can use it to create common documents with others
- Microblog - this is a twitter style microblog where you can upload announcements etc.
-Click at the Web chat and give a user name and a channel name.In order to connect from Raspberry Pi to web chat open the Epiphany browser, and type at the address yourByzantiumnodeip/chat/?channels=byzantium (or however you have named your channel) give a user name and you will able to chat with the other users.
-Click at the Notepad and give a name. In order to connect from Raspberry Pi open the Epiphany browser and at the address type yourByzantiumnodeip/pad/p/Byzantium and you will be able to share documents.
For some reason that i dont know the Microblog service at my laptop wont open so i cant give you any information. But from past experiments with Byzantium i know that it is working.
Thats the end. You can now create an adhoc mesh network in any condition and also connect your Raspberry Pi to it