P2P for embedded systems: BitTorrent and Emule – Part 2

Orange Pi Development Boards

Transmission BTIn part1, I explained how to build and install aMule for mips platorm, in part2, we’ll build and install Transmission BitTorrent client for devices based on Sigma Designs SMP8634/SMP8635.

Transmission BT is already used in quite a few NAS and media players including Syabas Networked Media Tank, Western Digital WD MyBook, ReadyNAS, D-Link DNS-323 & CH3SNAS… as you can see at the bottom of the transmission download page.

Building Transmission 2.13 daemon and client

First download Transmission 2.13 source code and required dependencies: OpenSSL 1.0.0c, cURL 7.21.3 and libevent 1.4.14b (do not use libevent 2.0.x). You’ll also need zlib 1.2.5 that we compiled in part1.

Extract them:

tar xjvf ../Downloads/transmission-2.13.tar.bz2
tar xzvf ../Downloads/openssl-1.0.0c.tar.gz
tar xjvf ../Downloads/curl-7.21.3.tar.bz2
tar xzvf ../Downloads/libevent-2.0.9-rc.tar.gz

Build OpenSSL 1.0.0c:

./Configure no-asm –prefix=/home/jaufranc/edev/libs linux-generic32
make CC=”mipsel-linux-gcc” AR=”mipsel-linux-ar r” RANLIB=”mipsel-linux-ranlib”
make install

Build cURL 7.2.13:

./configure –prefix=/home/jaufranc/edev/libs –build=mipsel-linux –target=mipsel-linux -host=i686 –disable-ipv6 –without-random –with-ssl=/home/jaufranc/edev/libs –with-zlib=/home/jaufranc/edev/libs CC=mipsel-linux-gcc LDFLAGS=-ldl
make install

Build libevent 1.4.14b:

./configure –target=mipsel-linux –host=mipsel-linux –prefix=/home/jaufranc/edev/libs
make install

Build Transmission 2.13:

export OPENSSL_CFLAGS=-I/home/jaufranc/edev/libs/include/
export LIBCURL_CFLAGS=-I/home/jaufranc/edev/libs/include/
export LIBEVENT_CFLAGS=-I/home/jaufranc/edev/libs/include/
export OPENSSL_LIBS=”-L/home/jaufranc/edev/libs/lib -lssl -lcrypto”
export LIBCURL_LIBS=”-L/home/jaufranc/edev/libs/lib -lcurl”
export LIBEVENT_LIBS=”-L/home/jaufranc/edev/libs/lib/ -levent”
./configure –target=mipsel-linux -host=mipsel-linux –enable-daemon –enable-cli –disable-gtk  –with-zlib=/home/jaufranc/edev/libs –prefix=/home/jaufranc/edev/transmission –disable-silent-rules
make install

That’s it, the command line client (transmission-cli), daemon (transmission-daemon), remote (transmission-remote) and other binary and required files (e.g. for web server) will be installed in /home/jaufranc/edev/transmission/

Installing and running transmission-cli and transmission-daemon in the target board

Once you have all files installed in the prefix directory (/home/jaufranc/edev/transmission in our example), you’ll need to copy those files to the target board inside the root file system (rootFS).

You’ll have different options to use Transmission BT:

  1. You can just use transmission-cli command line client. See transmission-cli man page for details.
  2. To control Transmission BT via an your PC, tablet or smartphone you’ll need to use transmission daemon and remote. Both programs communicates thru IPC. First, you may have to edit the config files as explained in Transmission BT Wiki and run transmission-daemon (man page) in your target target then you could access your board with transmission-remote (man page) or transmission-remote-gui  to add, pause, resume or cancel download as well as control the speed of downloads.
make CC="mipsel-linux-gcc" AR="mipsel-linux-ar r" RANLIB="mipsel-linux-ranlib"
Support CNX Software - Donate via PayPal or become a Patron on Patreon

Leave a Reply

Notify of