Transmission BitTorrent Client

From NAS-Central Buffalo - The Linkstation Wiki
Revision as of 17:03, 23 February 2009 by Thenegus (Talk | contribs)

Jump to: navigation, search
Caption Transmission WebUI


What is Transmission?

Transmission is a BitTorrent client package that (as of version 1.34) also contains Clutch, an integrated webUI. It easy to compile, install, configure and operate, and it has relatively low memory and cpu usage.

Compiling and Installation

General Info

The Transmission Wiki Howto Build page gives details. In short, three binaries are created:

  • transmission-daemon (daemon which runs with the webUI active)
  • transmission-remote (a remote control utility for transmission-daemon and transmission), and
  • transmissioncli (the bittorrent client).

Note:A Forum user has reported that the version in the optware feed gives segfaults when installed in his open stock linkstation pro, following the instructions on transmissions site for compiling should be the best approach.

Building in Lenny

This is a headless build - we don't need the GTK+ stuff. (Directions tested in Lenny armel - seeking someone to confirm this works from a fresh install- please report any missing dependencies to the thread).

Satisfy dependencies:

apt-get install libcurl3-openssl-dev gettext libtool intltool openssl libcurl3

A lot of other packages (like glib) will be pulled down as well.

Get the source and download it to /usr/src (check for newer source!):

cd /usr/src
tar xjvf transmission-1.34.tar.bz2

Configure, build and install:

make install

Set up a torrent dir in one of your shared dirs. I use NFS and /mnt/torrrents.

mkdir -p /mnt/torrents

You may want/have to adjust permissions. Different security tolerances will dictate how you personally deal w/ users and permissions. The Transmission wiki has some good suggestions.

Test/start transmission-daemon:


Point your browswer to http://<IP of your LinkStation>:9091 to test if the webUI is up and running.

Initscript: This is extremely basic, but works. Install it at /etc/init.d/transmission . Tested improvements are welcome. If you have any particular changes that require special permissions, please put them on the Talk pages (see top) and make a note of so it is easy for user to find them.

#! /bin/sh
# This is a very basic init script for Transmission
# Copy it to /etc/init.d/transmission and type
# > update-rc.d transmission defaults 60

# Exit if the package is not installed
test -f /usr/local/bin/transmission-daemon || exit 0

case "$1" in
    echo  "Starting transmission-daemon"
    /sbin/start-stop-daemon --start --quiet --exec /usr/local/bin/transmission-daemon
    echo  "Stopping transmission-daemon"
    /sbin/start-stop-daemon --stop --quiet --exec /usr/local/bin/transmission-daemon
    echo -n "Stopping transmission-daemon"
    /sbin/start-stop-daemon --stop --quiet --exec /usr/local/bin/transmission-daemon
    for i in 1 2 3 ;
        sleep 1
        echo -n "."
    echo  "Restarting transmission-daemon" 
    /sbin/start-stop-daemon --start --quiet --exec /usr/local/bin/transmission-daemon
    echo "Usage: /etc/init.d/tranmission {start|stop|restart}"
    exit 1

exit 0

Make it executable, and add symlinks:

chmod a=r+w+x /etc/init.d/transmission
update-rc.d transmission defaults 60

Note: If you want some security (always a good idea) for your web interface you can replace the lines

/sbin/start-stop-daemon --start --quiet --exec /usr/local/bin/transmission-daemon

in the above script with

/sbin/start-stop-daemon --start --quiet --exec /usr/local/bin/transmission-daemon -- -t -u <username> -v <password>

Building in etch

Same as the Lenny instructions, however libcurl3 is too old in etch and therefor you will need to compile this yourself.

Install lib-curl 7.16.3 :

tar xvzf curl-7.16.3.tar.gz
cd curl-7.16.3
make install

Satisfy dependencies:

apt-get install gettext libtool intltool openssl

The rest is the same as the Lenny instructions.

Building in Gentoo

stonie posted a thread about how he installed it on Gentoo here : Transmission in Gentoo-PPC. Read it for details.


Network Configuration

  • You will probably want to set your LinkStation to a static IP.
  • Port forwarding is a good idea/pretty much essential. Transmission listens on port 51413, by default. The Transmission wiki has an excellent Port Forwarding HowTo that spells out pretty much everything. It is comprehensive and gives many good pointers, including the Verify and Common Problems sections.
  • Verify your network setup by checking that port 51413 is open at your IP, by using the tool at

Configure Transmission

Use the WebUI, which you can see through any modern browser at http://<your-Linkstation's-IP>:9091/transmission/web/ or http://<your-Linkstation's-IP>:9091. In the bottom left-hand corner there is a small tab that allows you to set:

  • Preferences
    • Add transfers: Download to: (choose /mnt/torrents or whatever dir you want here)
    • Network: Incoming TCP Port: (default is 51413)
    • Transfers: Start transfers when added
    • Encryption: Ignore unencrypted peers
    • Limit total bandwidth: (set these lower if you experience network performance problems)
      • Download Rate: KB/s
      • Upload Rate: KB/s
    • Web Client: Refresh Rate:
  • Total Upload/Download Rates
  • Sorting

There is also a Inspector function w/ Info and Activity buttons on the webUI that allows for seeing details about your torrents.


We assume that you have a general idea of how torrents work, and a familiarity with Torrent Trackers. A particulary good tracker that is germane to our needs is We will use it here in the examples. Be aware that to upload torrent files, you must have open an account there, as is the case for the vast majority of sites.

man pages for Transmission 1.34

For reference, see these man pages for transmissioncli Transmission 1.34. Note that the commands and options have changed a lot since earlier versions of Transmission, so old scripts may not work for you.


  1. Download a torrent file to your LS. This can be done with wget, but is easier using your desktop's web browser, and then dragging and dropping that torrrent file to a mounted share of your LS.
  2. To use the WebUI of Transmission, point your browser to <ip of you linkstation>:9091 - you should see something like the screenshot shown on the top of this page.
  3. Use the Open button to choose & load the torrent file. The download should begin shortly. As is the case w/ torrents, it may be very fast or quite slow, depending on the number of seeders and they upload limits.


Create a torrent file

Place the file you wish to share in your torrent directory. The command form for creating a new torrent file in Transmission 1.34 is:

transmissioncli -n <file to be shared> -a <URL of torrent announcement> <torrent file filename>

For example, if the file you want to share is vmlinuz92608foonasem.gz, then use the cli binary like this:

transmissioncli -n vmlinuz92608foonasem.gz -a vmlinuz92608foonasem.torrent

After executing this you should have a file called vmlinuz92608foonasem.torrent, which is suitable for uploading to a torrrent tracker site.

Upload to torrent tracker/site and Seeding

This will vary by tracker site. The FAQ or HowTo section at the tracker will provide details. Basically, you upload your initial torrent file through your browser to the tracker site. It will then register that torrent, give it an ID number, and post it in the torrent list.

To seed it, download the registered torrent file (important - you must download a registered torrent file to seed - for the majority of trackers, only a registered torrent file will allow you to seed), place it in your torrents directory, and use Transmission's webUI to open it. It will scan the source file that is to be shared and verify it. If successful it should then display something like this in the info panel to the right of the torrent listings:

Hash: a08f27383af3d7726cfdea14005944e5bf510abe
Secure: Public Torrent
Comment: N/A

Ideally, this works best to get a friend to try to download the torrent file from the tracker, and use some torrent client to download the actual shared file. You should be able to see upload activity on the webUI of Transmission from your LinkStation. In all likelihood you will not be able to download your own shared file.


  • The torrent that I'm trying to seed reads "Unregistered Torrent". Normally, this problem is because you are trying to seed w/ your original torrent file. The fix for this is usually to upload your raw torrent file to the tracker of your choice, and then download it to your torrent dir. Then open it w/ Transmission and it should proceed as expected.
  • My torrent is registered, but seeding doesn't seem to work, because I know someone is trying to download the file and it isn't working on their end. This could be a port forwarding problem. The easy but really (stupidly) insecure way is to put your box on a DMZ, but this is way too risky in terms of network security. It is better to make sure you have port forwarding set up for port 51413 (TCP, port start:51413, port end:51413, port map: 51413). See the Port Forwarding section of the Transmission wiki listed above, or the reference listed below.

Links and Reference