Running Transmission on a headless machine (NSLU2)
(for other distributions see the Headless Usage article)
Normally you can install Transmission using this command:
$ ipkg install Transmission
Building from Source
The ipkg repositories are usually up-to-date with the latest Transmission. However, if you need to build it from source, these instruction will guide you through it.
Use ipkg to install:
- optware-devel (to get the developer toolchain)
After setting up your server and configuring it properly, you should be able to install Transmission from source.
Make sure that you use:
$ ./configure --prefix=/opt --datadir=/opt/share/ --disable-gtk --disable-nls CPPFLAGS=-DTR_EMBEDDED
- --prefix=/opt: makes sure all goes smoothly, since we are using a different partition for third party
- --datadir=/opt/share: This installes the Web Interface in /opt/share/transmission/web/
- --disable-gtk: disables the unnecessary GTK client, unless GTK+ is actually installed, it wouldn't have build anyway
- --disable-nls: disables the unnecessary gettext dependancy (will only be valid on Transmission 1.50 or r7258 and later)
- CPPFLAGS=-DTR_EMBEDDED: Builds Transmission in embedded mode.
You'll need to set the environment variable for the Web Interface files:
Look in the man page for the flags you'd like to set, like authentication, and type in your terminal:
To quit the daemon:
$ killall transmission-daemon
To connect to your Transmission, either use the Web Interface, or the transmission-remote.
For more functionality and start/stop scripts, have a look at the Scripts page.
Libevent Issues on Specific Systems
If you're experiencing crashes, it may be libevent who is at the cause.
- If your (package-) system has libevent installed, update it. Older, such as v1.1, are know to contain bugs.
- Try setting, one by one, the following environment variables:
Libevent is capable of handling different kinds of event mechanisms used by OSes. However, it seems that some OSes have a malfunctioning implementation of one of these event mechanisms. So, one by one, disabling one of the event mechanisms that libevent supports allows us to identify and disable the one that's misbehaving, while still supporting the others.
Feedback is greatly appreciated, since, honestly, we have no real idea what or why it goes wrong.