Using RetroShare on the Excito Bubba3

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:

  1. compile
  2. create a new location on the b3
  3. 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 ..

Compile Retroshare:

$ 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:

trunk/retroshare-nogui/src/retroshare-nogui
trunk/retroshare-gui/src/RetroShare

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:

  1. generate a SSH key to connect to your instance
  2. generate a passphrase hash to setup a connexion password
  3. 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]

Control clients

Multiple control clients for the RPC are in development. At the time of writing, they work but are still unfinished.

Binary package!

We made a binary package for you, so that you don’t need to compile 😉

Other embedded systems:

Some courageous people have compiled Retroshare on other small architectures, for instance on the Raspberry Pi and the DreamPlug

About Cyril

I'm sharing the lead of the RetroShare project with G10H4CK. I've been working on RetroShare for four years now.
This entry was posted in Uncategorized. Bookmark the permalink.

1 Response to Using RetroShare on the Excito Bubba3

  1. Pingback: Retroshare’s Web Interface. | RetroShare Team

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s