P2P for embedded systems: BitTorrent and Emule – Part 2
In 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.
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”
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
Build libevent 1.4.14b:
./configure –target=mipsel-linux –host=mipsel-linux –prefix=/home/jaufranc/edev/libs
Build Transmission 2.13:
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
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:
- You can just use transmission-cli command line client. See transmission-cli man page for details.
- 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.