The bubba 3 (a.k.a. b3) is a nice piece of hardware, sold by Excito (http://www.excito.com/). It’s a bit expensive, but you really get what you pay for:
- a debian-based system, on which you have full control
- a nice and clean web interface to perform all basic file management operations and configuration
Under the hood, it’s an ARM-based architecture for which Excito provides all possible debian packages in its online repositories. That makes the whole compilation-installation process really confortable.
In our experiments, retroshare uses as few as 3-5% CPU in average, which can grow up to 40%-60% when doing heavy transfer activity or message signature verifications, since this requires lots of cryptographic operations.
We experimented with the compilation and running of RetroShare as well as retroshare-nogui on it with great success and perfect stability. We basically need the following steps:
- create a new location on the b3
- launch retroshare-nogui
All this comes with some goodies and options, that we detail in each section. For command lines we’ll use the following conventions for the prompt:
- “#” for lines executed as root on the b3
- “$” for commands executed as a normal user on the b3
- “>” for commands executed on a side PC (supposedly running Linux, but Windows work as well)
Compilation on the b3
This has been tested with svn revision 6069. Install the dependencies:
# apt-get install subversion build-essential cmake zlib1g-dev # apt-get install libgcrypt11-dev libssl-dev # apt-get install libprotobuf-dev protobuf-compiler # apt-get install qt4-qmake libbz2-dev libupnp-dev libsqlite3-dev # apt-get install libgnome-keyring-dev
Get the source of Retroshare and libssh-0.5.4, and make libssh:
$ mkdir Code $ cd Code $ svn co svn://svn.code.sf.net/p/retroshare/code/trunk trunk $ wget https://red.libssh.org/attachments/download/41/libssh-0.5.4.tar.gz $ tar zxvf libssh-0.5.4.tar.gz $ cd libssh-0.5.4 $ mkdir build $ cd build $ cmake -DWITH_STATIC_LIB=ON .. $ make $ cd ..
$ qmake CONFIG=release $ make
The last command takes ages (Approx 2 hours). Go and grab a coffee. You will end-up with the following two executables:
Note: the compilation will eventually fail in plugins/VOIP/. It doesn’t matter. You already have what you need.
Create a new Retroshare location for the b3
Now you basically have two options: (1) create your location on a PC and copy it to the b3, or (2) launch Retroshare GUI in remote on the b3 to create your location. The later requires that you can SSH on the b3 from a machine that has a X server (See how to do that on windows).
In any case, you need to copy your pgp directory into the b3. Supposing you have your home PC running linux, you need to do:
> cd ~/.retroshare > tar zcvf export.tgz default_cert.txt pgp e647a83893baef36af... [archive] [pgp dir] [Change to your own]
(If you chose option (1) above, you need the location directory in the second line, otherwise you don’t) Then copy the file export.tgz onto your b3, and unzip it:
$ mkdir .retroshare $ cd .retroshare $ tar zxvf ~/export.tgz
With option (1), make sure the content of ~/.retroshare/default_cert.txt corresponds to the location directory you want to use. In case you can do option (2) you need to ssh on your b3 and launch Retroshare, to create the location:
> ssh -Y b3.local $ ./Code/trunk/retroshare-gui/src/Retroshare
At this step, you should add friends to your location on the b3 (including yourself!), add shared directories, etc. Let RetroShare run for a few minutes so that it has the chance to save all your configuration once, then quit.
Launch the no-gui client
Just launch retroshare-nogui. It will load the default location pointed out by ~/.retroshare/default_cert.txt, and ask for the PGP passphrase for the associated identity. Once it is running,
- put it in the background (hit ^Z then type “bg+[ENTER]”).
- log out!
You should be able to connect to your Retroshare location running on the b3!
Command line client with RPC
The latest version of Retroshare-nogui includes a RPC interface (for Remote Procedure Call) that allows you to control a Retroshare instance running on a distant machine using a SSH tunnel. For that, you need to launch retroshare-nogui with the following procedure:
- generate a SSH key to connect to your instance
- generate a passphrase hash to setup a connexion password
- launch retroshare-nogui
All the commands should be performed on the b3, in the same directory:
$ ssh-keygen -t rsa -f rs_ssh_host_rsa_key $ retroshare-nogui -G $ retroshare-nogui -X -C -S 7022 -L [user] -P [password hash]
Multiple control clients for the RPC are in development. At the time of writing, they work but are still unfinished.
- Android client, developed by Electron128
- Windows C# client, developed by Sehraf
- Web client, developed by drbob. See our blog post!
- SSH access.
We made a binary package for you, so that you don’t need to compile 😉
- Headless executable: retroshare-nogui_0.5.4-0.6270_squeeze_armel.debsha256: 53c45e53331b499fe46e15e10d870ab1e070e7a2d1703f69269efa76c3e70f8c
- Package with additional Qt GUI: retroshare_0.5.4-0.6270_squeeze_armel.deb
Other embedded systems:
Some courageous people have compiled Retroshare on other small architectures, for instance on the Raspberry Pi and the DreamPlug