wiki:HeadlessUsage/NSLU2

Running Transmission on a headless machine (NSLU2)

(for other distributions see the Headless Usage article)

Installing

Using ipkg

(See also: http://www.nslu2-linux.org/wiki/Unslung/Transmission)

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.

Dependencies

Use ipkg to install:

  1. optware-devel (to get the developer toolchain)
  2. openssl-dev
  3. libcurl-dev

Building

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

Notes:

  • --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.

Configuration

You'll need to set the environment variable for the Web Interface files:

$ TRANSMISSION_WEB_HOME=/opt/share/transmission/web/

Have a look at the Editing The "settings.json" File page, and the Environment Variables page for more information on how to configure Transmission.

Using Transmission

Look in the man page for the flags you'd like to set, like authentication, and type in your terminal:

$ transmission-daemon

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.

Troubleshooting

Libevent Issues on Specific Systems

If you're experiencing crashes, it may be libevent who is at the cause.

  1. If your (package-) system has libevent installed, update it. Older, such as v1.1, are know to contain bugs.
  2. Try setting, one by one, the following environment variables:
    • EVENT_NOEPOLL
    • EVENT_NOSELECT
    • EVENT_NOKQUEUE
    • EVENT_NOEVPORT
    • EVENT_NOPOLL

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.


Comments

Last modified 13 years ago Last modified on Nov 26, 2009, 5:58:35 PM