view · edit · print · history

Transmission is the easiest and fastest to install.Unslung optware Has a web interface, low memory footprint, configurable port, Multitracker, PEX support, UPNP support, Encryption support, Bandwith limiting

If you're comfortable with the command line, a low memory and CPU bittorrent client is btpd. Now available in optware. Tested and works well on unslung. Reading /opt/share/doc/btpd/README should get you started.

An alternate low memory bittorrent solution is to use rtorrent. This is a console program and can run inside a 'gnu screen' or 'dtach' session. This configuration will run comfortably in a system with no swap.

 rtorrent: HandshakeManager::receive_succeeded(...) Unread data won't fit PCB's read buffer.
It's a bug in gcc 4.1, explained in http://libtorrent.rakshasa.no/ticket/840 . To work around, you have to build libtorrent with slugos 3.10 toolchain. Unofficial build is available here.

Another Alternate is bitflu. It is written in Perl and have 2 control interface :

 * integrated Webui : Be careful, because it use Ajax and refresh every 2s, so don't forget to close your browser when you finish to look at your transfert!
 * telnet with colorized output ;)

To install, just untar and execute bitflu.pl. some configuration is avaiable in '.bitflu.config' (On Debian, you must also install 'libdigest-sha1-perl' to work)

Another alternate is enhanced-ctorrent with Torrential. The gui is written in PHP and runs on appweb and lighthttpd.

EnhancedCTorrent really functions quite well.

See also ConfigureEnhanced-ctorrentWithUnslung (http://www.nslu2-linux.org/wiki/HowTo/ConfigureEnhanced-ctorrentWithUnslung)

SRS 11/22/2008

Bittorrent is possible with torrentflux. Torrentflux is a web based PHP client to steer a bittorrent program written in perl. Perl and apache/PHP can be installed on the NSLU2 device, so downloading with bittorrent is also possible ;-)

Only installed Apache/PHP/MySQL and Torrentflux, no time to test any further. anyone success?

Update (7/12/2006): I've got php-thttpd installed instead of Apache, and it looks like TorrentFlux will still install and work, though I haven't actually tried downloading a torrent with it yet. Occasionally I get a blank page after updating admin pages - could this be a permissions problem? - Tim

Please refer to


This may be a relevant issue.

Update (22/12/2006): Ah... would this also explain why I can't get a single torrent to even start downloading, as they all display either 'Torrent Stopped' or 'Torrent Died'? :-(

Subsequent update (14/3/2007) Yes, I think the problem was with thttpd. I have just switched from thttpd to lighttpd with PHP via FastCGI, and all the old problems with PHP applications falling over, have now gone. Torrentflux now works pretty well, though system load on the slug goes up considerably - anything between 1.5 and 4 even with one torrent. I wouldn't like to try more than 1-2 torrents simultaneously, but then I'm not a regular user of BitTorrent, so I'm unlikely to need more than one torrent running.

In short: I would advise generally against running thttpd on the slug for anything more than the admin pages (Unslung) and static HTTP pages with no virtual hosts. If you want PHP on the slug without the overhead of Apache, go for lighttpd (or perhaps Cherokee, but I haven't tried that) - for me, thttpd is just too unreliable to work with PHP. YMMV, but this is how I see it.

Update (12/23/2006) (Update 10/09/2007 with beta1) - Spook I can confirm that torrentflux does not work with thttpd but I've had success with this on OpenSlug:


* Openslug on a standard NSLU2
* Lighttpd with PHP
* Sqlite
* torrentflux-b4rt_1.0-beta1
* TransmissionCLI
 (maybe eaccelerator to help with php performance?)

Some packages are only available for Unslung and I'm writing this for OpenSlug. You will have to manually download the necessary packages and install them manually.

What you will need.

Refer to running PHP with lighttpd: http://www.nslu2-linux.org/wiki/HowTo/DeployPHPWebAppUsingFastCGI Using this configuration, you should be running successfully with PHP on Lighttpd.

You will also need to compile transmissioncli using the native compile environment. Refer to setting up the native compile environment on SlugOS: http://www.nslu2-linux.org/wiki/HowTo/SlugOSNativeCompileEnvironment

You will need a lot of space for this. Pretty much just install the packages described in steps 3-8

Setting Up

  Now you need sqlite:
# ipkg install sqlite2 

Edit php.ini to load the sqlite modules. Look for the section that loads extensions and add the lines:


--Note: php.ini may be found in /opt/etc

Download torrentflux-b4rt_1.0-beta1.tar.bz2 to /opt/share/public and extract

# tar -jxfv /opt/share/public/torrentflux-b4rt_1.0-beta1.tar.bz2 


# tar -jxv -f /opt/share/public/torrentflux-b4rt_1.0-beta1.tar.bz2 

Start the webserver

# /opt/etc/init.d/S80lighttpd 

You can now check to see whether the components are working nicely together using the check script:

# cp /opt/share/public/torrentflux-b4rt_1.0-beta1/misc/check/check_1.0.php /opt/share/www 

Open a web browser and check out the page: (I'm running my server on port 80). The first 3 sections should all pass but the important part here is section 4. PHP-Database-Support. sqlite should Pass

With that done, you can now copy the rest of the web files to your web root:

# cp -rp /opt/share/public/torrentflux-b4rt_1.0-beta1/html/* /opt/share/www 

The first time you launch torrentflux, it will run through a setup procedure. Choose sqlite as your database. When you are asked to name your database, make sure to fill in every field and UNCHECK "create a new database". When you go to the next screen, a new database will be created at the root of your website (assuming you didn't put in a full path). Go through the setup wizard and you will be instructed to delete setup.php. Go ahead and delete it.

Reload torrentflux and you'll be asked to log in. What you put here will set up the root user's username and password. Go ahead and log in and you'll see the nifty torrentflux interface.

This is usually where the rest of the HowTo's on torrentflux stop but the REALLY important section starts... now.

Slug-specific Procedures

Compile the transmissioncli

# cd /opt/share/public/torrentflux-b4rt_1.0-beta1/clients/transmission
# tar -jxvf Transmission-0.80-svn2076_tfCLI-svn3084.tar.bz2
# cd Transmission-0.80-svn2076_tfCLI-svn3084
# ./configure --disable-gtk --prefix=/opt && make && make install 

this will place transmissioncli in /opt/bin. Make sure you configure the torrentflux settings to reflect this location. If you install newer versions of Torrentflux-b4rt, you should always compile the transmisioncli that comes with that version.

The NSLU2 (and any other embedded linux system like the WRT's) run busybox to combine a lot of common POSIX commands into one executable. If you run this:

# ps --help 

You will see that this version of ps does not accept any arguments and Torrentflux uses a lot of ps arguments to format the output so that it can ensure that the processes executed have actually launched. A full version of ps comes with the procps package so:

# ipkg install procps 

In addition, if you started the web server using S80lighttpd and haven't logged out yet, the stderr output of that process is still linked to your current session. If you go to the web interface and try to start up a torrent, you may see this in your ssh session:

sh: nohup: not found

This means that the nohup command is not installed. It's available in the coreutils package so... :

# ipkg install coreutils 

Finishing Up

So there you have it. Torrentflux running on a slug with as little overhead as possible. Start up a couple of torrents and see how it works out for you. I've been able to run 4 torrents simultaneously, but at that point, the box is pretty much dedicated to doing just torrenting. Try it for yourselves and respond with your results.

You can also try setting up python to run the tornado client (some trackers ban transmissioncli) but that is a big resource hog. Try it and come back with some results.

Torrentflux Ver 2.3 Working With Unslung 5


view · edit · print · history · Last edited by SRS.
Based on work by SRS, arthur92710, slugmanbashi, BrianZhou, minime, nomor, simon, Sebastien, limo, fcarolo, dirttyturbo, tawalker, emm_is, sread, Spook727, Tim Walker, Freddy Chu, and Mase.
Originally by Mase.
Page last modified on November 22, 2008, at 06:42 AM