Results 1 to 7 of 7

Thread: [Howto] Install recent version of Transmission for Oleg firmware

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1

    [Howto] Install recent version of Transmission for Oleg firmware

    If you've installed the image kindly created by raas directly or indirectly using my tutorial you may have noticed that the Transmission version is quite old by now and the latest one has to be installed differently.

    This tutorial helps you in that. In fact it's sufficient to run only a script that does everything for you:
    Code:
    #!/bin/sh
    #written by ecaddict, distributed (conveyed) under GPL version 3 or any later version
    
    BASE="/mnt/protected/Downloaders/Transmission"
    CONFD="/opt/etc/transmission"
    CONFF="${CONFD}/settings.json"
    INITF="/opt/etc/init.d/S60transmission"
    EBDIR="`echo ${BASE} | /bin/sed 's#/#\\\\/#g'`"
    
    killall transmission-daemon
    ipkg update
    ipkg install openssl libcurl libevent zlib transmission
    ln -s /opt/share/transmission /mnt/transmission
    mkdir -p ${CONFD}
    mkdir -p ${BASE}
    mkdir -p ${BASE}/done 
    mkdir -p ${BASE}/work
    mkdir -p ${BASE}/source
    
    #check https://trac.transmissionbt.com/wiki/EditConfigFiles for config options
    cat > ${CONFF} << __EOF__
    {
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 1080,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": true,
    "alt-speed-time-end": 1320,
    "alt-speed-up": 100,
    "alt-speed-down": 600,
    "blocklist-enabled": 1,
    "cache-size-mb": 8,
    "download-dir": "${EBDIR}\/done",
    "incomplete-dir": "${EBDIR}\/work",
    "incomplete-dir-enabled": true,
    "watch-dir": "${EBDIR}\/source",
    "watch-dir-enabled": true,
    "encryption": 1,
    "max-peers-global": 100,
    "peer-port": 65534,
    "pex-enabled": 1,
    "port-forwarding-enabled": 1,
    "rpc-authentication-required": false,
    "rpc-password": "",
    "rpc-bind-address": "192.168.1.1",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "",
    "rpc-whitelist": "127.0.0.1,192.168.1.*",
    "rpc-whitelist-enabled": false,
    "speed-limit-down": 1200,
    "speed-limit-down-enabled": true,
    "speed-limit-up": 200,
    "speed-limit-up-enabled": true,
    "ratio-limit" : 5,
    "ratio-limit-enabled": true
    } 
    __EOF__
    
    cat > ${INITF} << __EOF__
    #!/bin/sh
    #written by ecaddict, distributed (conveyed) under GPL version 3 or any later version
    
    CONFD=${CONFD}
    CONFF=\${CONFD}/settings.json
    OPTIONS="-g \${CONFD} -e /opt/var/log/transmission"
    NAME=transmission
    EXEC=/opt/bin/\${NAME}-daemon
    
    checkcnfg() {
      if ! [ -x "\${EXEC}" ]; then
        echo \${NAME} "\${EXEC} not found."
        exit 1
      fi
      if ! [ -r "\${CONFF}" ] ; then 
        echo "\${NAME} cannot find readable config \${CONFF}"
        exit 2
      fi 
    }
    
    d_start() {
      checkcnfg
      export TRANSMISSION_WEB_HOME='/opt/share/transmission/web/'
      \${EXEC} \${OPTIONS}
    }
    
    d_stop() {
      killall transmission-daemon
    }
    
    case "\$1" in
      start)
    	echo "Starting \$NAME"
    	d_start
    	echo "."
    	;;
      stop)
    	echo "Stopping \$NAME"
    	d_stop
    	echo "."
    	;;
      restart|force-reload)
    	echo "Restarting \$NAME"
    	d_stop
    	sleep 2
    	d_start
    	echo "."
    	;;
      *)
    	echo "Usage: \$0 {start|stop|restart|force-reload}" >&2
    	exit 3
    	;;
    esac
    
    exit 0 
    __EOF__
    chmod u+x ${INITF}
    
    cd /opt/etc/lighttpd/ && [ ! -f lighttpd.conf.old ] && cp lighttpd.conf lighttpd.conf.old
    sed -i 's/^#\(.*"mod_rewrite",\).*/\1/' lighttpd.conf
    
    if [ -z "`sed -n 's/\/transmission\/rpc/&/p' lighttpd.conf`" ]; then
    cat >> lighttpd.conf << __EOF__
    url.rewrite-once += ( "^/transmission[/]?\$" => "/transmission/web" )
    \$HTTP["url"] =~ "^/transmission/rpc" {
      proxy.server = (
          "" => (
           (
             "host" => "192.168.1.1",
             "port" => 9091
           )
        )
      )
    }
    __EOF__
    fi
    
    /opt/etc/init.d/S80lighttpd restart
    /opt/etc/init.d/S60transmission start
    ps afx | grep transmission-daemon
    So what does it do?
    Creates the Transmission config file:
    /opt/etc/transmission/settings.json
    Creates the starter script:
    /opt/etc/init.d/S60transmission

    It also creates couple of directories in /mnt/protected/Downloaders/Transmission/ (should they not exist already).

    It also has to modify the lighttpd.conf file as it probably does not have the mod_rewrite module enabled and for almost sure it's missing the proxy function for transmission port (9091), which is required if you'd like to access it remotely via lighttpd (like I prefer via https instead of opening 9091 port on the firewall) .
    Don't worry, the old version is saved during the first run as /opt/etc/lighttpd/lighttpd.conf.old should anything go wrong.
    The script also restarts lighttpd and starts transmission.

    If everything goes fine you can access it from LAN via:
    http://192.168.1.1:9091
    or
    https://192.168.1.1/transmission/
    or whatever port and transport you use with your web server.
    From internet you can access it either via VPN (if you've installed it) the same way or using your public (WAN) IP address and https.

    The configuration file contains reasonable parameters (like lowering the bandwidth used during the evening where usually traffic peaks so being nice with others) and watch directory etc.
    If you feel, however you can adjust it based on the following link:
    https://trac.transmissionbt.com/wiki/EditConfigFiles
    or using the GUIs.
    If you change the settings.json file directly don't forget to stop Tranmission before saving it as when Transmission exits it overwrites the config file.

    While the built in web interface of Transmission is nice it's certainly lacking compared to Transmission remote GUI (not to talk about ruTorrent what I prefer with rtorrent) so you may prefer installing the Transmission remote GUI on your PC/laptop:
    http://code.google.com/p/transmisson-remote-gui/

    All you need to do is set 192.168.1.1 and 9091 as port in the connection options.

    One thing I particularly don't like about transmission that it stores the torrents in the subdirectory of the configuration directory, which is /opt/etc/transmission/torrents

    In my view the best would be somewhere in /mnt/protected/Downloaders/Transmission/torrents so you may remove the torrents directory from /opt/etc/transmission/ and add a link instead to /mnt/...

    The install script is also uploaded here: install.tar.gz

    So if you're really lazy you can install it single line (copy to PuTTY) or whatever terminal client you use:
    Code:
    cd /tmp && wget -O install.tar.gz "http://wl500g.info/attachment.php?attachmentid=8276&d=1316097791" && tar xvzf install.tar.gz && ./install.sh
    After successful install don't forget to remove the old transmissiond with ipkg remove transmissiond as it uses quite much memory and precious CPU time. Comment out also from /opt/etc/crontab the transmission_watchdog via inserting # to the beginning of the line.
    Last edited by ecaddict; 23-10-2011 at 08:16. Reason: fixed typos

Similar Threads

  1. I cannot connect on pppoe WAN with Oleg firmware
    By kalifro in forum WL-500w Q&A
    Replies: 3
    Last Post: 20-03-2011, 23:39
  2. Replies: 2
    Last Post: 27-06-2009, 23:28
  3. WL-500gp and Transmission
    By happymeal in forum WL-500gP Q&A
    Replies: 55
    Last Post: 27-08-2008, 18:46
  4. Custom Firmware v1.1.2.7
    By JOCKYW2001 in forum WL-HDD Firmware Releases
    Replies: 59
    Last Post: 11-12-2004, 12:26
  5. Flashing Oleg's Firmware in WL HDD
    By hugo in forum WL-HDD Custom Development
    Replies: 29
    Last Post: 21-10-2004, 14:55

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •