<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-362152363994105982</id><updated>2025-11-21T08:31:32.112+00:00</updated><category term="NAS"/><category term="iomega storcenter"/><category term="Iomega storcenter ix4-200d"/><category term="Crashplan"/><category term="arm"/><category term="bittorrent"/><category term="google docs"/><category term="java"/><category term="picasa"/><category term="recompiling"/><category term="rtorrent"/><category term="DD-WRT"/><category term="Marvell Kirkwood"/><category term="backup"/><category term="boot"/><category term="carbonite"/><category term="dropbox"/><category term="flickr"/><category term="gcc"/><category term="init.d"/><category term="ipfilter"/><category term="ipkg"/><category term="ipkg-opt"/><category term="ipvanish"/><category term="linksys E4200"/><category term="mozy"/><category term="ssh"/><category term="vuze"/><title type='text'>Technology tutorials</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-381672488762009111</id><published>2014-03-16T23:44:00.002+00:00</published><updated>2015-11-18T23:48:57.704+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DD-WRT"/><category scheme="http://www.blogger.com/atom/ns#" term="ipvanish"/><category scheme="http://www.blogger.com/atom/ns#" term="linksys E4200"/><title type='text'>Installing IPVanish openvpn on a E4200v1 running DD-WRT</title><content type='html'>The idea of the setup is to sent a specific device through the IPVanish tunnel while still sending the others through the regular internet connection.&lt;br /&gt;
The idea behind this is that internet connection through VPN is slower and you may not want to send all you traffic through the tunnel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script below was tested on a E4200v1 linksys router running&lt;br /&gt;
&lt;pre&gt;Firmware: DD-WRT v24-sp2 (10/31/12) mega
&lt;/pre&gt;&lt;br /&gt;
The script needs to run as a startup script (Administration -&gt; Commands -&gt; startup).&lt;br /&gt;
One special feature of this script is that it makes sure that in case anything happens to openvpn, the router will not fall back to the default connection but will stop routing instead. As a result, you will not end up sending packets through your regular internet connection if openvpn goes down for any reason: if your packet is delivered, it is delivered through openvpn.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#!/bin/sh

USERNAME=&quot;XXXXX&quot;
PASSWORD=&quot;XXXXX&quot;
VPNHOST=&quot;sto-a01.ipvanish.com&quot;
IPTOVPN=&quot;192.168.1.102&quot;

#### DO NOT CHANGE below this line unless you know exactly what you&#39;re doing ####

CA_CRT=&#39;-----BEGIN CERTIFICATE-----
MIIErTCCA5WgAwIBAgIJAMYKzSS8uPKDMA0GCSqGSIb3DQEBBQUAMIGVMQswCQYD
VQQGEwJVUzELMAkGA1UECBMCRkwxFDASBgNVBAcTC1dpbnRlciBQYXJrMREwDwYD
VQQKEwhJUFZhbmlzaDEVMBMGA1UECxMMSVBWYW5pc2ggVlBOMRQwEgYDVQQDEwtJ
UFZhbmlzaCBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBpcHZhbmlzaC5jb20w
HhcNMTIwMTExMTkzMjIwWhcNMTcwMTEwMTkzMjIwWjCBlTELMAkGA1UEBhMCVVMx
CzAJBgNVBAgTAkZMMRQwEgYDVQQHEwtXaW50ZXIgUGFyazERMA8GA1UEChMISVBW
YW5pc2gxFTATBgNVBAsTDElQVmFuaXNoIFZQTjEUMBIGA1UEAxMLSVBWYW5pc2gg
Q0ExIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRAaXB2YW5pc2guY29tMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt9DBWNr/IKOuY3TmDP5x7vYZR0DGxLbX
U8TyAzBbjUtFFMbhxlHiXVQrZHmgzih94x7BgXM7tWpmMKYVb+gNaqMdWE680Qm3
nOwmhy/dulXDkEHAwD05i/iTx4ZaUdtV2vsKBxRg1vdC4AEiwD7bqV4HOi13xcG9
71aQ55Mj1KeCdA0aNvpat1LWx2jjWxsfI8s2Lv5Fkoi1HO1+vTnnaEsJZrBgAkLX
pItqP29Lik3/OBIvkBIxlKrhiVPixE5qNiD+eSPirsmROvsyIonoJtuY4Dw5K6pc
NlKyYiwo1IOFYU3YxffwFJk+bSW4WVBhsdf5dGxq/uOHmuz5gdwxCwIDAQABo4H9
MIH6MB0GA1UdDgQWBBRL/RQliR3nwXCD1/afERwlThnurjCBygYDVR0jBIHCMIG/
gBRL/RQliR3nwXCD1/afERwlThnurqGBm6SBmDCBlTELMAkGA1UEBhMCVVMxCzAJ
BgNVBAgTAkZMMRQwEgYDVQQHEwtXaW50ZXIgUGFyazERMA8GA1UEChMISVBWYW5p
c2gxFTATBgNVBAsTDElQVmFuaXNoIFZQTjEUMBIGA1UEAxMLSVBWYW5pc2ggQ0Ex
IzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRAaXB2YW5pc2guY29tggkAxgrNJLy48oMw
DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAho5ynpvtXISz3neqGXpL
BBlOM35pd1ZSNHLCb2yHQwAjZbfYqfX2MDs9ytH4Cf1OfaVqwe777QyyIC2XR2QK
kw4c2hCT8wPzWhmkLx8Q+jnKdOKkdz+L8+Ji9/vjtaFOcYjMDalI6CbjBiuMFWhB
IzOaYljmA2UeQCVIz9aW80BC8+sLQ6oeWVnFjx7zqK1gbbc2bNuy3slOMdyoEj2m
hkxfiffuHKV+GQoR7tFIr3M7KFFwYgkXeyLh1Pc0rZu7dGe4fUAbR1okB1DgelBd
n6rWTZ8XcNzT/YngtH4bXB9DM7pKWpDWc94va4hFrGgaOxjE861TdoDqHaMO9bW+
Pg==
-----END CERTIFICATE-----
&#39;

OPVPNENABLE=`nvram get openvpncl_enable | awk &#39;$1 == &quot;0&quot; {print $1}&#39;`

if [ &quot;$OPVPNENABLE&quot; != 0 ]; then
nvram set openvpncl_enable=0
nvram commit
fi

sleep 10
mkdir /tmp/ipvanish; cd /tmp/ipvanish
echo -e &quot;$USERNAME\n$PASSWORD&quot; &gt; userpass.conf
echo &quot;$CA_CRT&quot; &gt; ca.crt
echo &quot;$IPTOVPN&quot; &gt; policy_ips

for IP in \`cat /tmp/ipvanish/policy_ips\` ; do
iptables -A OUTPUT -d \$IP -j DROP
done

echo &quot;#!/bin/sh
iptables -I INPUT -i tun1 -j logaccept
iptables -I POSTROUTING -t nat -o tun1 -j MASQUERADE
ifconfig_remote=\`ifconfig tun1 | sed -rn &#39;s/.*r:([^ ]+) .*/\1/p&#39;\`
ip route add default via \$ifconfig_remote table 10
echo &quot;ip route add default via \$ifconfig_remote table 10&quot; &gt; toto
for IP in \`cat /tmp/ipvanish/policy_ips\` ; do
ip rule add from \$IP table 10
iptables -D OUTPUT -d \$IP -j DROP
done
&quot; &gt; route-up.sh
echo &quot;#!/bin/sh
iptables -D INPUT -i tun1 -j logaccept
iptables -D POSTROUTING -t nat -o tun1 -j MASQUERADE
ip route flush table 10
for IP in \`cat /tmp/ipvanish/policy_ips\` ; do
iptables -A OUTPUT -d \$IP -j DROP
done
&quot; &gt; route-down.sh
chmod 644 ca.crt; chmod 600 userpass.conf; chmod 700 route-up.sh route-down.sh
sleep 10
echo &quot;client
ca /tmp/ipvanish/ca.crt
management 127.0.0.1 5001
management-log-cache 50
verb 4
mute 3
log-append /var/log/openvpncl
writepid /var/run/openvpncl.pid
client
resolv-retry infinite
nobind
persist-key
persist-tun
script-security 2
mtu-disc yes
dev tun1
proto tcp-client
cipher aes-256-cbc
auth sha256
remote $VPNHOST 443
comp-lzo yes
redirect-private def1
route-noexec
tls-client
tun-mtu 1500
tls-cipher AES256-SHA
persist-remote-ip
keysize 256
tls-remote $VPNHOST
auth-user-pass /tmp/ipvanish/userpass.conf
script-security 3 system
dhcp-option DNS 8.8.8.8
dhcp-option DNS 8.8.4.4
&quot; &gt; ipvanish.conf
(/tmp/ipvanish/route-up.sh; killall openvpn; openvpn --config /tmp/ipvanish/ipvanish.conf --route-up /tmp/ipvanish/route-up.sh --down /tmp/ipvanish/route-down.sh) &amp;
exit

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
EDIT 14/03/2015: adding the google openDNS servers in there as I was having DNS issues.&lt;br /&gt;
EDIT 18/11/2015: added /tmp/ipvanish/route-up.sh; at teh last line as it lookslike under some circumstances route-up was not excuted resulting in packets sent otside of VPN</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/381672488762009111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2014/03/installing-ipvanish-openvpn-on-e4200v1.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/381672488762009111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/381672488762009111'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2014/03/installing-ipvanish-openvpn-on-e4200v1.html' title='Installing IPVanish openvpn on a E4200v1 running DD-WRT'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-4317538584430647531</id><published>2012-04-15T22:21:00.000+01:00</published><updated>2012-04-22T09:34:24.035+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Iomega storcenter ix4-200d"/><category scheme="http://www.blogger.com/atom/ns#" term="rtorrent"/><title type='text'>How to install rtorrent 0.9.1 and use magnet links on an Iomega Storcenter ix4-200d</title><content type='html'>&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt; &lt;img border=&quot;0&quot; hda=&quot;true&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s320/ix4_200d_large__1.png&quot; width=&quot;320&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
This tutorial uses unsupported features of the IOMEGA Storcenter ix4-200d. It worked for me but use it at your own risk! It should work (again, it is unsupported) on the ix2 Storcenter as well. &lt;br /&gt;
Tutorial tested on IOMEGA Storcenter ix4-200d firmware 3.1.14.995 &lt;br /&gt;
&lt;br /&gt;
I explained in a &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-install-rtorrent-with-ip.html&quot;&gt;previous post&lt;/a&gt; why I wanted to use rtorrent instead of the torrent client supplied with the storcenter.&lt;br /&gt;
There is a new developpment: thepiratebay.se switched to magnets only for file sharing: the version of rtorrent previously installed did not support magnets....&lt;br /&gt;
The good news is that the new rtorrent (0.9.1) does support IP filtering natively!&lt;br /&gt;
&lt;br /&gt;
The problem is it was difficult to compile for the storcenter as the gcc toolchain available on the storcenter is very old... but no worries, I compiled it for you!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. SSH into your NAS&lt;/b&gt;&lt;br /&gt;
See my other post: &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-ssh-into-your-iomega-storcenter.html&quot;&gt;How to ssh into your Iomega StorCenter ix4-200d &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Install the software&lt;/b&gt;&lt;br /&gt;
See my other post &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-install-software-into-your.html&quot;&gt;here&lt;/a&gt; to setup at the minimum ikg and ipkg-opt. Then:&lt;br /&gt;
&lt;pre&gt;ipkg-opt install lighttpd
ipkg-opt install screen
&lt;/pre&gt;&lt;br /&gt;
Then, get my pre-compiled version of rtorrent-0.9.1 (works on Iomega Storcenter ix4-200d):&lt;br /&gt;
if you want to compile it yourself for a strange architecture, you might want to look at section 3 of my other post &lt;a href=&quot;http://vincesoft.blogspot.com/2012/04/how-to-solve-undefined-reference-to.html&quot;&gt;How to solve the &quot;undefined reference to &#39;__sync_sub_and_fetch_4&#39;&quot; compilation problem&lt;/a&gt;&lt;br /&gt;
Warning: this is going to override the following files:&lt;br /&gt;
&lt;pre&gt;/opt/etc/rtorrent.conf
/opt/etc/init.d/S99rtorrent
/opt/lib/libtorrent.14.0.3
/opt/lib/libtorrent.14
/opt/bin/rtorrent
&lt;/pre&gt;Make sure you saved everything that needed to be saved before running it!&lt;br /&gt;
&lt;pre&gt;cd /opt/tmp/
wget http://dl.dropbox.com/u/50398581/rtorrent-0.9.1/rtorrent-0.9.1-package.tar.gz
cd /
tar -xvf /opt/tmp/rtorrent-0.9.1-package.tar.gz
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
If you don&#39;t want to connect remotely to rtorrent to manage it from you computer, you can skip the rest of this section...&lt;br /&gt;
Install nTorrent on your computer &lt;a href=&quot;http://code.google.com/p/ntorrent/&quot;&gt;http://code.google.com/p/ntorrent/&lt;/a&gt;&lt;br /&gt;
Install xml-rpc on the NAS: &lt;pre&gt;ipkg install optware-devel
ipkg install libcurl-dev
cd /opt/tmp/
svn checkout http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable xmlrpc-c    
cd xmlrpc-c/
./configure --prefix=/opt
make
make install
&lt;/pre&gt;Note: ou can choose something other that nTorrent. Please give me you feedback in the comments if you do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Configure the software&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Fix path and other info in rtorrent.conf.&lt;br /&gt;
This is also where you want to disable remote access if you don&#39;t want it, comment the line: &lt;br /&gt;
&lt;pre&gt;scgi_port = localhost:5000
&lt;/pre&gt;&lt;br /&gt;
If you want to use remote acces, you need to:&lt;br /&gt;
&lt;pre&gt;vi /opt/etc/lighttpdlighttpd.conf
&lt;/pre&gt;between  &lt;pre&gt;#                               &quot;mod_rrdtool&quot;,
&lt;/pre&gt;and &lt;pre&gt;&quot;mod_accesslog&quot; )
&lt;/pre&gt;add &lt;pre&gt;&quot;mod_scgi&quot;,
&lt;/pre&gt;and at the end add: &lt;pre&gt;scgi.server = (
&quot;/RPC2&quot; =&gt; ( 
    &quot;127.0.0.1&quot; =&gt; (
        &quot;host&quot; =&gt; &quot;127.0.0.1&quot;,
        &quot;port&quot; =&gt; 5000,
        &quot;check-local&quot; =&gt; &quot;disable&quot;
        )
    )
)
&lt;/pre&gt;Security warning: if you follow these steps, anybody that can access port 8081 of you NAS will be able to send commands to rtorrent! You want to make sure that this port is only accessible from your local network.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. Ip filtering&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;a. download the file&lt;/b&gt;&lt;br /&gt;
Ip filtering support is build into rtorrent-0.9.1, but you still need to configure the download of the filter files:&lt;br /&gt;
&lt;pre&gt;vi /etc/cron.daily/rtorrent_ipfilter
&lt;/pre&gt;&lt;pre&gt;#!/bin/sh
cd /mnt/pools/A/A0/torrents/rtorrent/ipfilter/
wget http://list.iblocklist.com/?list=bt_level1
mv index.html\?list\=bt_level1 level1new.gz
gunzip level1new.gz
sed &#39;s/^.*:\([^:]*\)$/\1/g&#39; level1new | grep -v &#39;^#&#39; &gt; level1new_2
rm level1
mv level1new level1
rm level1_2
mv level1new_2 level1_2
&lt;/pre&gt;then: &lt;pre&gt;mkdir /mnt/pools/A/A0/torrents/rtorrent/ipfilter/
cd /etc/cron.daily/
chmod a+x rtorrent_ipfilter
./rtorrent_ipfilter
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;b. if not already done, make sure the cron daemon is started at boot&lt;/b&gt;&lt;br /&gt;
The cron daemon is not started at boot by default....&lt;br /&gt;
&lt;br /&gt;
You can start it manually:&lt;br /&gt;
&lt;pre&gt;/etc/init.d/cron start
&lt;/pre&gt;&lt;br /&gt;
But to have it start up every time at boot, we need to add the line:&lt;br /&gt;
&lt;pre&gt;/etc/init.d/cron start &gt;&gt; /opt/init-opt.log
&lt;/pre&gt;to our /opt/init-opt.sh script.&lt;br /&gt;
&lt;br /&gt;
See my other post &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-run-program-at-boot-on-iomega.html&quot;&gt;How to run a program at boot on the Iomega Storcenter NAS&lt;/a&gt; to see how it works!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5. Test your setup&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;/opt/bin/rtorrent -n -o import=/opt/etc/rtorrent.conf
&lt;/pre&gt;if you get:&lt;br /&gt;
&lt;pre&gt;rtorrent: Fault occured while inserting xmlrpc call.
&lt;/pre&gt;did you install xmlprc correctly? is ld.so.conf updated correctly? did you run ldconfig?&lt;/br&gt; &lt;br /&gt;
to connect to the running instance: &lt;pre&gt;/opt/bin/screen -r rtorrent
&lt;/pre&gt;and kill the terminal (putty) to exit or press Ctrl-a d.&lt;/br&gt;&lt;/br&gt; For remote access: you can start lighthttpd on the NAS &lt;pre&gt;/opt/etc/init.d/S80lighttpd start
&lt;/pre&gt;and then start nTorrent on your computer and connect to your NAS port 8081 (by default) on path /RPC2.&lt;/br&gt; &lt;/br&gt;&lt;/br&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6. Get rtorrent to start automatically on reboot&lt;/b&gt;&lt;br /&gt;
Follow the tutorial &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-run-program-at-boot-on-iomega.html&quot;&gt;How to run a program at boot on Iomage Strocenter&lt;/a&gt; You just need to add the following lines to the script: &lt;pre&gt;/opt/etc/init.d/S80lighttpd start &gt;&gt; /opt/init-opt.log
/opt/etc/init.d/S99rtorrent start &gt;&gt; /opt/init-opt.log
&lt;/pre&gt;If you have another brand of NAS (or a regular linux OS), just try to link the startup scripts to /etc/rc2.d/ like ou would normally do an a linux box: &lt;pre&gt;ln -s /opt/etc/init.d/S80lighttpd /etc/rc2.d/S80lighttpd
ln -s /opt/etc/init.d/S99rtorrent /etc/rc2.d/S99rtorrent
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7. How to deal with magnet links&lt;/b&gt;&lt;br /&gt;
I suggest to create a  /whereever/rtorrent/magnets like /whereever/rtorrent/torrents and /whereever/rtorrent/download.&lt;br /&gt;
And then:&lt;br /&gt;
&lt;pre&gt;cd /whereever/rtorrent
vi allmagnets.sh 
&lt;/pre&gt;and add:&lt;br /&gt;
&lt;pre&gt;#!/bin/bash

for f in magnets/*
do
 echo &quot;Processing $f&quot;
 CONTENT=`cat &quot;$f&quot; | sed s/^URL=// | grep -v &#39;\[InternetShortcut\]&#39; | tr -d &#39;\r&#39;`
 [[ &quot;$CONTENT&quot; =~ xt=urn:btih:([^&amp;/]+) ]] &amp;&amp; echo &quot;d10:magnet-uri${#CONTENT}:${CONTENT}e&quot; &gt; &quot;torrents/meta-${BASH_REMATCH[1]}.torrent&quot; &amp;&amp; rm &quot;$f&quot;
done
&lt;/pre&gt;&lt;pre&gt;chmod a+x allmagnet.sh
&lt;/pre&gt;And then, add a cron to run this program every 5 minutes:&lt;br /&gt;
&lt;pre&gt;vi /etc/cron.d/magnets
&lt;/pre&gt;and add:&lt;br /&gt;
&lt;pre&gt;# convert magnets to torrents every 5 minutes
1,6,11,16,21,26,31,36,41,46,51,56 *    * * *   root    cd /mnt/pools/A/A0/data/rtorrent/ &amp;&amp; /mnt/pools/A/A0/data/rtorrent/allmagnets.sh 
&lt;/pre&gt;&lt;br /&gt;
Make sure the cron daemon is running!!! (see point 4.b above)&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/4317538584430647531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2012/04/how-to-install-rtorrent-091-and-use.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/4317538584430647531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/4317538584430647531'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2012/04/how-to-install-rtorrent-091-and-use.html' title='How to install rtorrent 0.9.1 and use magnet links on an Iomega Storcenter ix4-200d'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s72-c/ix4_200d_large__1.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-1561348438279023495</id><published>2012-04-15T21:30:00.000+01:00</published><updated>2012-04-16T23:21:02.692+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gcc"/><category scheme="http://www.blogger.com/atom/ns#" term="recompiling"/><title type='text'>How to solve the &quot;undefined reference to &#39;__sync_sub_and_fetch_4&#39;&quot; compilation  problem</title><content type='html'>If you ran into the following compilation problems:&lt;br /&gt;
&lt;pre&gt;undefined reference to &#39;__sync_sub_and_fetch_4&#39; problem
&lt;/pre&gt;or with any of the following functions: &lt;br /&gt;
&lt;pre&gt;__sync_fetch_and_add, __sync_fetch_and_sub, __sync_fetch_and_or, __sync_fetch_and_and, __sync_fetch_and_xor, __sync_fetch_and_nand,
 __sync_add_and_fetch, __sync_sub_and_fetch, __sync_sub_or_fetch, __sync_and_and_fetch, __sync_xor_and_fetch, __sync_nand_and_fetch
__sync_val_compare_and_swap, 
__sync_bool_compare_and_swap, 
__sync_lock_test_and_set,
__sync_lock_release
&lt;/pre&gt;&lt;br /&gt;
Chances are that you are trying to compile for ARM (or an exotic architecture) and your GCC version is too old compared to the source code you are trying to compile!&lt;br /&gt;
There is an Easy fix: upgrade your GCC.&lt;br /&gt;
&lt;br /&gt;
If you can&#39;t upgrade your GCC for any reason (for example you are on an embedded hardware you don&#39;t have full control on), follow the steps below!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. Find the source code file that&#39;s right for the architecture you are trying to compile on&lt;/b&gt;&lt;br /&gt;
You are going to find it inside a GCC source tarball.&lt;br /&gt;
To find it, go into your gcc source gcc/config and do &lt;br /&gt;
&lt;pre&gt;grep &#39;__sync_fetch&#39; */*&lt;/pre&gt;to find the right file.&lt;br /&gt;
For ARM, it is: &lt;br /&gt;
&lt;pre&gt;gcc/config/arm/linux-atomic.c&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;2. Compile the source code file and link in to the program you are compiling&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;libtool --tag=CC -mode=compile gcc -g -O2 -MT linux-atomic.lo -MD -MP -MF linux-atomic.Tpo -c -o linux-atmoic.lo linux-atmoic.c
libtool --tag=CC -mode=link gcc -g -O2 -o liblinux-atmoic.la linux-atmoic.lo
&lt;/pre&gt;And add liblinux-atomic.la in the Makefile so it is linked to the other .la files (into a .so or a program).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Example to compile libtorrent 13.1 and rtorrent 0.9.1 for ARM with GCC 4.2.3&lt;/b&gt;&lt;br /&gt;
If you wonder, this is to compile rtorrent for my Iomega ix4-200d storcenter NAS.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Compile libtorrent:&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;PATH=$PATH:/opt/bin
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.13.1.tar.gz
tar -xvf libtorrent-0.13.1.tar.gz
cd libtorrent-0.13.1
vi configure
OPENSSL_CFLAGS=&#39;-I/opt/include/&#39;
OPENSSL_LIBS=&#39;-L/opt/lib/ -lssl&#39;
STUFF_LIBS=&#39;-L/opt/lib/ -lsigc-2.0&#39;
STUFF_CFLAGS=&#39;-I/opt/usr/include/sigc++-2.0/ -I/opt/usr/lib/sigc++-2.0/include&#39;

./configure --prefix=/opt/
&lt;/pre&gt;&lt;br /&gt;
Add linux-atomic:&lt;br /&gt;
&lt;pre&gt;cd src
wget http://dl.dropbox.com/u/50398581/rtorrent-0.9.1/linux_atomic.c
libtool --tag=CC --mode=compile gcc -g -O2 -MT linux_atomic.lo -MD -MP -MF linux_atomic.Tpo -c -o linux_atomic.lo linux_atomic.c
vi /opt/bin/libtool
&lt;/pre&gt;&lt;br /&gt;
And if necessary, modify libtool for the follwoing entries:&lt;br /&gt;
&lt;pre&gt;AR=&quot;ar&quot;
RANLIB=&quot;ranlib&quot;
CC=&quot;g++&quot;
&lt;/pre&gt;&lt;br /&gt;
&lt;pre&gt;libtool --tag=CC   --mode=link gcc  -g -O2  -o liblinux_atomic.la linux_atomic.lo
vi Makefile
&lt;/pre&gt;&lt;br /&gt;
add&lt;br /&gt;
&lt;pre&gt;liblinux_atomic.la
&lt;/pre&gt;at the end of libtorrent_la_LIBADD&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;cd ..
make
strip .libs/libtorrent.so
make install
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Compile rtorrent:&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.9.1.tar.gz
tar -xvf rtorrent-0.9.1.tar.gz
cd rtorrent-0.9.1
vi configure
&lt;/pre&gt;And add:&lt;br /&gt;
&lt;pre&gt;sigc_LIBS=&#39;-L/opt/lib/ -lsigc-2.0 -L/lib/&#39;
sigc_CFLAGS=&#39;-I/opt/usr/include/sigc++-2.0/ -I/opt/usr/lib/sigc++-2.0/include -I/opt/include/ncurses&#39;
libcurl_LIBS=&#39;-L/opt/lib/ -lcurl&#39;
libcurl_CFLAGS=&#39;-I/opt/include/&#39;
libtorrent_LIBS=&#39;-L/opt/lib/ -ltorrent&#39;
libtorrent_CFLAGS=&#39;-I/opt/include/&#39;
&lt;/pre&gt;&lt;br /&gt;
Then:&lt;br /&gt;
&lt;pre&gt;./configure --prefix=/opt/ --with-xmlrpc-c=/opt/bin/xmlrpc-c-config  --with-ncurses=yes LDFLAGS=&#39;-L/opt/lib/&#39; CPPFLAGS=&#39;-I/opt/include -I/opt/include/ncurses/&#39; 
cd src
cp ../../libtorrent-0.13.1/.libs/liblinux_atomic.a .
vi Makefile
&lt;/pre&gt;at the end of rtorrent_LDADD, add&lt;br /&gt;
&lt;pre&gt;liblinux_atomic.a
&lt;/pre&gt;&lt;br /&gt;
Then:&lt;br /&gt;
&lt;pre&gt;make
strip rtorrent
cd ..
make install
&lt;/pre&gt;&lt;br /&gt;
You are done!&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/1561348438279023495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2012/04/how-to-solve-undefined-reference-to.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/1561348438279023495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/1561348438279023495'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2012/04/how-to-solve-undefined-reference-to.html' title='How to solve the &quot;undefined reference to &#39;__sync_sub_and_fetch_4&#39;&quot; compilation  problem'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-4888568196734466847</id><published>2012-03-02T23:10:00.003+00:00</published><updated>2012-03-03T11:42:33.160+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="backup"/><category scheme="http://www.blogger.com/atom/ns#" term="carbonite"/><category scheme="http://www.blogger.com/atom/ns#" term="Crashplan"/><category scheme="http://www.blogger.com/atom/ns#" term="dropbox"/><category scheme="http://www.blogger.com/atom/ns#" term="flickr"/><category scheme="http://www.blogger.com/atom/ns#" term="google docs"/><category scheme="http://www.blogger.com/atom/ns#" term="mozy"/><category scheme="http://www.blogger.com/atom/ns#" term="picasa"/><title type='text'>How to backup my data (and why!)</title><content type='html'>&lt;br /&gt;
&lt;br /&gt;
It is the digital age, the amount of personal data we produce keeps going up: digital pictures, HD movies and documents take an ever increasing amount of space.&lt;br /&gt;
That&#39;s a lot a memories and information we don&#39;t want to loose (or can&#39;t afford to).&lt;br /&gt;
&lt;br /&gt;
Companies have devised backup plans for a long time but the concept is now entering homes though cloud storage (and other means). When your data is lost, it is too late: you need to devise a plan now!&lt;br /&gt;
&lt;br /&gt;
I will focus on the needs of individuals and deal with 3 different data types:&lt;br /&gt;
- photos&lt;br /&gt;
- videos&lt;br /&gt;
- documents (excel, doc, text, pdf...)&lt;br /&gt;
&lt;br /&gt;
Also, there are diffrent risks to take into account when defining a backup plan:&lt;br /&gt;
- hardware failure (crashed hard drive)&lt;br /&gt;
- physical destruction of data at a physical location (think fire, theft ...)&lt;br /&gt;
- human error (oops! I deleted the file)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. Put your data in the Cloud&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The cloud will shield you from hardware failure, physical destruction but might not protect you against human error.... Added bonus is that you can share your data with other people :)&lt;br /&gt;
You also take on additional risks: like the risk of you online account being hacked or the risk of your data becoming visible to everybody because of a misconfiguration on your side.&lt;br /&gt;
&lt;br /&gt;
The good news is that there usually are free allocations for each service but you might have to pay for a feature you really need.&lt;br /&gt;
&lt;br /&gt;
For pictures, you have:&lt;br /&gt;
- &lt;a href=&quot;http://picasaweb.google.com&quot;&gt;Picasa&lt;/a&gt;: 1GB free + free unlimited storage of pictures up to 800x800 pixels (additional storage available: cost of 20GB is 5USD/year, see all prices &lt;a href=&quot;http://support.google.com/picasa/bin/answer.py?hl=en&amp;answer=39567&quot;&gt;here&lt;/a&gt;)&lt;br /&gt;
- &lt;a href=&quot;http://plus.google.com&quot;&gt;Google plus&lt;/a&gt;: free unlimited storage of pictures up to 2048x2048 pixels &lt;br /&gt;
- &lt;a href=&quot;http://www.flickr.com&quot;&gt;Flickr&lt;/a&gt;: free upload of 300MB worth of pictures every month, paid option unlimited storage (original quality) &amp; bandwith for (25 USD/year or 45 SD/2y. see all prices &lt;a href=&quot;http://www.flickr.com/help/payments/#393770&quot;&gt;here&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For movies, you have:&lt;br /&gt;
- &lt;a href=&quot;http://www.youtube.com&quot;&gt;Youtube&lt;/a&gt;: Videos can be uploaded for free (up to 20GB per video)&lt;br /&gt;
The problem is that the videos are automatically edited (and reduced in quality) and it is not easy to download them once they are in the cloud!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For documents, you have:&lt;br /&gt;
- &lt;a href=&quot;http://docs.google.com&quot;&gt;Google Docs&lt;/a&gt;: storage of documents, presentation and spreadsheets in google format is unlimited, you get 1GB for other type of files. Additional space can be bought (and shared with picasa). See the above link in Picasa for pricing details. The problem is there is no easy way to synchronize a local folder with Google Documents...&lt;br /&gt;
- &lt;a href=&quot;http://www.dropbox.com&quot;&gt;Dropbox&lt;/a&gt;: 2B free storage. Local folders can be synchronized with dropbox.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Use a backup Service&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This will shield you from hardware failure (but it might be slow to recover the data), physical destruction and human error.&lt;br /&gt;
&lt;br /&gt;
The idea is to send your compressed and encrypted data to a remote server where it is stored. You can usually access our backups from a website and from a specific software.&lt;br /&gt;
The problem is that all your data goes through the internet and it can be very slow to do the initial upload if you have a lot of data. For example, if you have 1TB of data to backup, it can take months to do the initial backup!&lt;br /&gt;
Same problem when you try to do a full backup: it will be usually an order of magnitude faster than doing the initial backup but it can still take a few days.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you also need to recover fast from an hard drive failure (the most common hardware failure) you can use a local redundant RAID configuration (like RAID 1 or 5). Please note that RAID alone will not prevent data loss: you are still vulnerable to other hardware failures (like RAID controller failure, destruction of the device and human error).&lt;br /&gt;
&lt;br /&gt;
Let&#39;s compare the different plans out there. I will focus on 3 providers: Mozy, Carbonite and Crashplan.&lt;br /&gt;
&lt;table border=&quot;1&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td colspan=3&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLCiSsY7zk8A56IPBhUaTjNpVUSCy33hVd5yuoKf8OJAlgG7mnOeHmH3fdgOd4CDtWbYlSPxNJugvyfPTjwklAUT9X7TCnYpPV0bqQHSON6Iu11A1M8OcR3oQ0U06W-AwJnK45OaLXVDQ/s1600/crashplan_logo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;97&quot; width=&quot;185&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLCiSsY7zk8A56IPBhUaTjNpVUSCy33hVd5yuoKf8OJAlgG7mnOeHmH3fdgOd4CDtWbYlSPxNJugvyfPTjwklAUT9X7TCnYpPV0bqQHSON6Iu11A1M8OcR3oQ0U06W-AwJnK45OaLXVDQ/s200/crashplan_logo.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=3&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_q2ZR8T9C6UzgNH8g1ckNkquVEWaPAnUAmKFE34R7LbSfTpeD7P5Z_8hJ0UZKmDq6hm0PHC6o5cBTnt_l0QAInlSWeXXXJi40M-lAZjs6VBgfbDv-HvQSosXuy15571lJvdtw4DSwnPQ/s1600/carbonite-logo-header.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;27&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_q2ZR8T9C6UzgNH8g1ckNkquVEWaPAnUAmKFE34R7LbSfTpeD7P5Z_8hJ0UZKmDq6hm0PHC6o5cBTnt_l0QAInlSWeXXXJi40M-lAZjs6VBgfbDv-HvQSosXuy15571lJvdtw4DSwnPQ/s200/carbonite-logo-header.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=2&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiovIvujo8Jmy5thOGii-w9JQNTLzzru68lxBUCHZumGvXzqgXz17HwGHj90KE5LX2RUNVfjwUZw8dD5GkyvA59gRSaIq81U77mY9Nqx5A8n9SCpuh-eAe4_2x_TNcRghdSgMEVBc2XoHE/s1600/icon_mozy.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;187&quot; width=&quot;187&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiovIvujo8Jmy5thOGii-w9JQNTLzzru68lxBUCHZumGvXzqgXz17HwGHj90KE5LX2RUNVfjwUZw8dD5GkyvA59gRSaIq81U77mY9Nqx5A8n9SCpuh-eAe4_2x_TNcRghdSgMEVBc2XoHE/s200/icon_mozy.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Plan Name&lt;/td&gt; &lt;td&gt;+10GB&lt;/td&gt;&lt;td&gt;Unlimited&lt;/td&gt;&lt;td&gt;Family unlimited&lt;/td&gt; &lt;td&gt;Home&lt;/td&gt;&lt;td&gt;HomePlus&lt;/td&gt;&lt;td&gt;HomePremier&lt;/td&gt; &lt;td&gt;50GB&lt;/td&gt;&lt;td&gt;125GB&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Yearly Price&lt;/td&gt; &lt;td&gt;25 USD&lt;/td&gt;&lt;td&gt;50 USD&lt;/td&gt;&lt;td&gt;120 USD&lt;/td&gt; &lt;td&gt;59 USD&lt;/td&gt;&lt;td&gt;99 USD&lt;/td&gt;&lt;td&gt;149 USD&lt;/td&gt; &lt;td&gt;72 USD&lt;/td&gt;&lt;td&gt;120 USD&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Space&lt;/td&gt; &lt;td&gt;10 GB&lt;/td&gt;&lt;td&gt;Unlimited&lt;/td&gt;&lt;td&gt;Unlimited&lt;/td&gt; &lt;td colspan=3&gt;Unlimited&lt;/td&gt; &lt;td&gt;50 GB&lt;/td&gt;&lt;td&gt;125 GB&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Number of computers&lt;/td&gt; &lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2-10&lt;/td&gt; &lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt; &lt;td colspan=2&gt;1 (add computer +2USD/month)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Suported Os&lt;/td&gt; &lt;td colspan=3&gt;Windows, Mac, Linux, Solaris&lt;/td&gt; &lt;td colspan=2&gt;Windows, Mac&lt;/td&gt;&lt;td&gt;Windows&lt;/td&gt; &lt;td colspan=2&gt;Windows, Mac&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Automated backup&lt;/td&gt; &lt;td colspan=3&gt;All files&lt;/td&gt; &lt;td colspan=2&gt;All Except video&lt;/td&gt;&lt;td&gt;All files&lt;/td&gt; &lt;td colspan=2&gt;All files&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;
Whatever your usage, Crashplan seems always cheeper and has more features. I use it myself and I am very satisfied with it....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The free crasplan software also allows you to backup on a friend computer (running crashplan as well). This means that you can backup your data without paying anything, provided a friend is ready to allocate you some data for backup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Case studies&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
We just need to find the most cost effective combination of the above:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Profile A:&lt;/b&gt;10GB of pictures and a few documents: 5USD/year&lt;br /&gt;
Pay 5USD/year for Picasa storage (20GB)&lt;br /&gt;
Use DropBox free allocation to store the documents.&lt;br /&gt;
Problem: the backup process is manual: if you forget to upload your pictures to Picasa, they are not uploaded, unless you use the software I wrote to automatically upload to Picasa: see my post &lt;a href=&quot;http://vincesoft.blogspot.com/2012/02/how-to-automatically-synchronize.html&quot;&gt;here&lt;/a&gt;). You are still vulnerable to Human error.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Profile B:&lt;/b&gt;100GB of pictures, 200GB of movies and a 10GB of documents: 50USD/year&lt;br /&gt;
Cheapest alternative is Crashplan Unlimited (50USD / year)&lt;br /&gt;
The backup process is now automatic: no need to worry about forgetting to backup something. On top of that, you are protected against human error as you can retrieve former versions of a file.&lt;br /&gt;
&lt;br /&gt;
If your data is spread across different computer, you can buy a NAS and run crasplan on the NAS (see my post on how to install crasplan on an Iomega NAS &lt;a href=&quot;http://vincesoft.blogspot.com/2011/11/how-to-install-crashplan-on-iomega.html&quot;&gt;here&lt;/a&gt;. Alternatively, you have the simpler option to buy Crashplan unlimited Family.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. Conclusion&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
If you care about your data: take the time to devise your backup/data recovery plan now! You can always find a way that fits your budget. &lt;br /&gt;
&lt;br /&gt;
You can get a reduced quality backup for your pictures and videos for free. Truct me, it is better to have a reduced quality backup than nothing!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/4888568196734466847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2012/03/how-to-backup-my-data-and-why.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/4888568196734466847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/4888568196734466847'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2012/03/how-to-backup-my-data-and-why.html' title='How to backup my data (and why!)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLCiSsY7zk8A56IPBhUaTjNpVUSCy33hVd5yuoKf8OJAlgG7mnOeHmH3fdgOd4CDtWbYlSPxNJugvyfPTjwklAUT9X7TCnYpPV0bqQHSON6Iu11A1M8OcR3oQ0U06W-AwJnK45OaLXVDQ/s72-c/crashplan_logo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-8642519680563304005</id><published>2012-03-01T11:13:00.000+00:00</published><updated>2012-03-01T11:13:11.234+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bittorrent"/><category scheme="http://www.blogger.com/atom/ns#" term="iomega storcenter"/><category scheme="http://www.blogger.com/atom/ns#" term="NAS"/><category scheme="http://www.blogger.com/atom/ns#" term="vuze"/><title type='text'>How to install Vuze on a NAS</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFtQKRmnP0e64XDinuUxvATKQhExTpMmaOzrKbhsh7kQBq-GmnZrNDaw3KJDifScUhU-49qXnQG3idU_4ECt3lXr1e6RICEpoLeUR9nZJ9dgNkzJWh0aWj1TiiRrcJD8PNE_AJ64b3mYY/s1600/Vuze_logo.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFtQKRmnP0e64XDinuUxvATKQhExTpMmaOzrKbhsh7kQBq-GmnZrNDaw3KJDifScUhU-49qXnQG3idU_4ECt3lXr1e6RICEpoLeUR9nZJ9dgNkzJWh0aWj1TiiRrcJD8PNE_AJ64b3mYY/s320/Vuze_logo.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The goal of this tutorial is to install vuze headless (as a command line application). Most of the tutorials found on the web suggest to do the configuration of vuze in the UI before starting it in headless mode. Unfortunately, this is not possible on a NAS where you have to X server and no screen... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutorial tested on IOMEGA Storcenter ix4-200d firmware 3.1.14.995 but uses unsupported features on the hardware. Please use at your own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since Vuze if a java program, the same steps should allow you to install vuze as an headless client on any hardware running java.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unfortunately, I ran into a lot of JVM crashes with vuze headless and oracle jvm ejre1.7.0 (for ARM). On top of that, vuze is quite an heavy program in terms of CPU and memory usage, which is annoying for the type of hardware we are looking at (like a NAS). Therefore, &lt;b&gt;I don&#39;t recommand to install vuze on a NAS&lt;/b&gt;. I suggest you look at rtorrent, which is much more reliable (see my tutorial &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-install-rtorrent-with-ip.html&quot;&gt;How to install rtorrent with IP filtering&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. SSH into your NAS&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
See my other post:&lt;br /&gt;
&lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-ssh-into-your-iomega-storcenter.html&quot;&gt;How to ssh into your Iomega StorCenter ix4-200d &lt;/a&gt; if you have an IOMEGA NAS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Download and install&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Steps adapted from the &lt;a href=&quot;http://wiki.vuze.com/w/Console_UI&quot;&gt;Console_UI Vuze wiki&lt;/a&gt;&lt;br /&gt;
&lt;pre&gt;cd /opt/tmp
wget http://ftp.heanet.ie/mirrors/www.apache.org/dist//commons/cli/binaries/commons-cli-1.2-bin.tar.gz
tar 
wget http://sourceforge.net/projects/azureus/files/vuze/Vuze_4702/Vuze_4702_linux.tar.bz2
PATH=$PATH:/opt/bin/
tar -xvf Vuze_4702_linux.tar.bz2

wget http://ftp.heanet.ie/mirrors/www.apache.org/dist//commons/cli/binaries/commons-cli-1.2-bin.tar.gz
tar -xvf commons-cli-1.2-bin.tar.gz
mv commons-cli-1.2/commons-cli-1.2.jar vuze/

wget http://ftp.heanet.ie/mirrors/www.apache.org/dist//logging/log4j/1.2.16/apache-log4j-1.2.16.tar.gz
tar -xvf apache-log4j-1.2.16.tar.gz
mv apache-log4j-1.2.16/log4j-1.2.16.jar vuze&lt;/pre&gt;&lt;br /&gt;
to install java, you can look at the java section of my other post: &lt;a href=&quot;http://vincesoft.blogspot.com/2011/11/how-to-install-crashplan-on-iomega.html&quot;&gt;How to install crashplan on an Iomaga NAS&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The installation is pretty straight forward...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, install the webUI plugin:&lt;br /&gt;
&lt;pre&gt;cd vuze
cd plugins
mkdir webui
cd webui
wget http://azureus.sourceforge.net/plugins/webui_1.7.0.zip
ipkg-opt install zip
ipkg-opt install unzip
unzip webui_1.7.0.zip
mkdir /opt/var/log/vuze
&lt;/pre&gt;If you don&#39;t have ipkg-opt, see my other post: &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-install-software-into-your.html&quot;&gt;How to install software into your Iomega StorCenter NAS&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Configure the Vuze installation&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;cd /opt/tmp/
mv vuze /opt/
cd /opt/vuze/
/mnt/pools/A/A0/NAS_Extension/ejre1.7.0/bin/java -Xmx128m -Dazureus.config.path=/opt/vuze/.azureus/ -cp &quot;Azureus2.jar:commons-cli-1.2.jar:log4j-1.2.16.jar&quot; org.gudy.azureus2.ui.common.Main --ui=console
&lt;/pre&gt;Vuze should now be running, we need to configure it now. Adapt the paths  to suit your needs and type at the vuze cli:&lt;br /&gt;
&lt;pre&gt;set &quot;Default save path&quot; &quot;/mnt/pools/A/A0/torrents/vuze/download&quot; string
set &quot;Use default data dir&quot; true boolean
set &quot;Logger.Enabled&quot; true boolean
set &quot;Logging Enable&quot; true boolean
set &quot;Logging Dir&quot; &quot;/opt/var/log/vuze/&quot; string
set &quot;Ip Filter Autoload File&quot; &quot;http://list.iblocklist.com/?list=bt_level1&quot; string
set Plugin.azhtmlwebui.User myusername
set Plugin.azhtmlwebui.Password mypassword password
set &quot;Plugin.azhtmlwebui.Password Enable&quot; true boolean
&lt;/pre&gt;This is installing IP filtering as well. If you don&#39;t want that, just skip the set &quot;Ip Filter Autoload File&quot;  command.&lt;br /&gt;
&lt;br /&gt;
You are good to go now. To have vuze automatically start at boot, you need to create the script in /etc/init.d (you can adapt the azureus script provided inside the install).&lt;br /&gt;
If you have an Iomega NAS, look at &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-run-program-at-boot-on-iomega.html&quot;&gt;this tutorial&lt;/a&gt; to see how to have the program run at boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now connect to the web Vuze UI from your web browser at&lt;br /&gt;
http://ip_of_nas:6883/. Please note that the web UI is not as rich as the regular UI (most options are not available in the web UI)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please comment to let me know how stable your install is!&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/8642519680563304005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2012/02/how-to-install-vuze-on-nas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/8642519680563304005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/8642519680563304005'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2012/02/how-to-install-vuze-on-nas.html' title='How to install Vuze on a NAS'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFtQKRmnP0e64XDinuUxvATKQhExTpMmaOzrKbhsh7kQBq-GmnZrNDaw3KJDifScUhU-49qXnQG3idU_4ECt3lXr1e6RICEpoLeUR9nZJ9dgNkzJWh0aWj1TiiRrcJD8PNE_AJ64b3mYY/s72-c/Vuze_logo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-4345589454253282</id><published>2012-02-26T15:01:00.000+00:00</published><updated>2012-03-19T15:21:05.349+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google docs"/><category scheme="http://www.blogger.com/atom/ns#" term="iomega storcenter"/><category scheme="http://www.blogger.com/atom/ns#" term="Iomega storcenter ix4-200d"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="NAS"/><title type='text'>How to backup your google docs documents</title><content type='html'>&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzM_h6v9l9zJexDrJA_DEQK94-WycBMNYM-9u4arjgeTZyGp9LTNcYz0QuqV6zmQ73kMNqlBTf6n1KG0thi-GYpA4T2UVC31Jb4GgQGbSXDUdQPkCJiGQtKJR_8MoYSdxLJok56ydH5DU/s1600/LogoGoogleDocuments.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;30&quot; width=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzM_h6v9l9zJexDrJA_DEQK94-WycBMNYM-9u4arjgeTZyGp9LTNcYz0QuqV6zmQ73kMNqlBTf6n1KG0thi-GYpA4T2UVC31Jb4GgQGbSXDUdQPkCJiGQtKJR_8MoYSdxLJok56ydH5DU/s320/LogoGoogleDocuments.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
I am a fan of google docs: I often needs to access and edit my documents while I am away, and google docs offers a great way to do that.&lt;br /&gt;
The problem is: I have a lot of large pdfs there, and they can take a while to load: I would love to have a local copy when I am in the office...&lt;br /&gt;
On top of that, I always like to have a local copy of stuff... just in case! Call me paranoid but what happens if your account is hacked? or if google unilaterally closes your account because they consider you don&#39;t respect the terms of use? Better be safe than sorry...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I couldn&#39;t find anywhere an application that would do what I want (get a local backup of my google documents and update it regularly). &lt;br /&gt;
There is the &lt;a href=&quot;https://www.google.com/takeout/&quot;&gt;google &quot;takeout&quot;&lt;/a&gt; application but you can not schedule regular downoads...&lt;br /&gt;
A project like &lt;a href=&quot;http://code.google.com/p/google-docs-fs/&quot;&gt;google-docs-fs&lt;/a&gt; seems promissing but it does only support google documents (and not any other file you may have uploaded if you have -like me- a premium account). Plus, my analysis is that there are too many possible points of failures if you rsync this file system... I need something more robust.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I decided to code what I need myself: a java command line application that can be used to schedule regular downloads of all your google docs documents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. Presentation gdocsauploader.jar&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The features implemented:&lt;/b&gt;&lt;br /&gt;
- re use data from a previous data to avoid re-downloading files that haven&#39;t changed&lt;br /&gt;
- rotating backups (for example, a maximum of 7 backups backup.zip being the most recent one and backup.7.zip being the oldest one)&lt;br /&gt;
- zip archive or just a folder archive (takes more space but easier to access)&lt;br /&gt;
- configurable document export mode (export google spreasheets as xls or as csv)&lt;br /&gt;
- download only once documents that are in multiple folders (gdocsbackup.removeduplicateddocuments)&lt;br /&gt;
- archive without folder structure (all documents in a zip, like google takeout) or with folder structure (much easier to navigate)&lt;br /&gt;
- support for any type of files.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;TODO:&lt;/b&gt;&lt;br /&gt;
- use hard links on operating systems that support it (that would substantially reduce that amount of disk needed for multiple backups with a lot of unchanged documents)&lt;br /&gt;
- fix the bug that forces you to use a temp directory on the same partition as the destination directory&lt;br /&gt;
&lt;br /&gt;
In my setup, I want to install pgdocsauploader.jar as a daily cron on my NAS, but you can install it anywhere.&lt;br /&gt;
&lt;br /&gt;
The program is configured using the config file gdocsuploader.properties which reads as follows:&lt;br /&gt;
&lt;pre&gt;#use system defined proxy
gdocsbackup.usesystemproxy=true
#google account username and password
gdocsbackup.username=xxxx
gdocsbackup.password=xxx
#the path where we want to backup
gdocsbackup.backuppath=C:\\Users\\xxx\\Documents\\Data\\
#the name of the backup archive. 
#the zip archives will be named: backuprootname.zip backuprootname.1.zip
#the folder archives will be named: backuprootname/ backuprootname.1/
gdocsbackup.backuprootname=gdocs_backup
#the number of backup files to keep
gdocsbackup.nbbackupfiles=7
#TRUE is you want to stroe backup as zip file. 
gdocsbackup.usezip=FALSE
#zip compression level (0-9) with 9 being the most compressed (and most CPU intensive)
gdocsbackup.zipcompresslevel=6
#use hard links to link new data identical to older data. This does save a lot of space (you can&#39;t use this option with usezip)
#not supported yet!
gdocsbackup.usehardlinks=FALSE
#document export format: one of doc html odt pdf png rtf txt zip
gdocsbackup.documentexportformat=doc
#presentation export format: one of pdf png ppt txt
gdocsbackup.presentationexportformat=ppt
#spreadsheet export format: one of xls csv pdf ods tsv html (NB: first sheet export only for csv and tsv)
gdocsbackup.spreadsheetexportformat=xls
#try to replicate the directory structure in the zip
docsbackup.keepdirectorystructure=TRUE
#show documents that appear at different places in the folder tree only once (in the first folder where it is found)
gdocsbackup.removeduplicateddocuments=TRUE
#log file (for linux, good practice is to put it in /var/log/ or /opt/var/log (and make sur logrotate works correctly))
gdocsbackup.logfile=C:\\gdocsbackup.log
&lt;/pre&gt;&lt;br /&gt;
All options are self explanatory. You can customize it as required by your setup.&lt;br /&gt;
&lt;br /&gt;
As the program is java, it can be run on any OS / Architecture supporting Java.&lt;br /&gt;
&lt;br /&gt;
The jar is available for download at &lt;a href=&quot;http://dl.dropbox.com/u/50398581/gdocsbackup/gdocsdownload.jar&quot;&gt;http://dl.dropbox.com/u/50398581/gdocsbackup/gdocsdownload.jar&lt;/a&gt;&lt;br /&gt;
sample properties files is available at &lt;a href=&quot;http://dl.dropbox.com/u/50398581/gdocsbackup/gdocsdownload.properties&quot;&gt;http://dl.dropbox.com/u/50398581/gdocsbackup/gdocsdownload.properties&lt;/a&gt;&lt;br /&gt;
and source code is available at: &lt;a href=&quot;http://dl.dropbox.com/u/50398581/gdocsbackup/gdocsdownload-src.zip&quot;&gt;http://dl.dropbox.com/u/50398581/gdocsbackup/gdocsdownload-src.zip&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that in order to &quot;rotate&quot; backups, the program will delete the oldest backup! Don&#39;t modify the backups or store anything there!&lt;br /&gt;
The program only gets information from the google server: it does not update or delet anything: you are safe there!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To determine if the file was already downloaded, the last_update tag given by google is checked. I suggest you do a full backup from time to time to avoid an error propagating from backup to backup (to do that, just add the option full download after the &quot;properties&quot; file launching the jar)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Steps to install the gdocsbackup on a linux based NAS&lt;/b&gt;&lt;br /&gt;
The setup is easy to adapt to any machine running linux. I didn&#39;t do a tutorial for Windows or Mac as I lack some knowledge to do it, but it can of course be done... feel free to adapt it and post your results and hints in the comments!&lt;br /&gt;
This tutorial assumes some vi ans linux knowledge...&lt;br /&gt;
&lt;br /&gt;
This is how I installed the gdocsbackup.jar on my NAS (an Iomega Storcenter ix4-200d). Please note that the procedure is unsupported by Iomega! &lt;b&gt;use at your own risk!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;a. Download and setup of gdocsdownload&lt;/b&gt;&lt;br /&gt;
First, you need to ssh into your NAS (see my &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-ssh-into-your-iomega-storcenter.html&quot;&gt;other post&lt;/a&gt; if you have am Iomega Storcenter)&lt;br /&gt;
Then:&lt;br /&gt;
&lt;pre&gt;mkdir /opt/usr/local
mkdir /opt/usr/local/gdocsdownload/
cd /opt/usr/local/gdocsdownload/
wget http://dl.dropbox.com/u/50398581/gdocsbackup/gdocsdownload.jar
wget http://dl.dropbox.com/u/50398581/gdocsbackup/gdocsdownload.properties
&lt;/pre&gt;Don&#39;t forget to change the properties file to make it work for your setup (you at least need to change account information and paths):&lt;br /&gt;
&lt;pre&gt;vi gdocsdownload.properties
&lt;/pre&gt;&lt;br /&gt;
If you are concerned about security, you should put the properties files into you home folder...&lt;br /&gt;
&lt;br /&gt;
If you haven&#39;t already done so, you need to install java on your NAS. See the java section of my previous post &lt;a href=&quot;http://vincesoft.blogspot.com/2011/11/how-to-install-crashplan-on-iomega.html&quot;&gt;How to install Crashplan on an Iomega Storcenter&lt;/a&gt; to find out how to do it for an Iomega storcenter.&lt;br /&gt;
&lt;br /&gt;
If you followed the java installation procedure of my other post, link java to a more usual location:&lt;br /&gt;
&lt;pre&gt;ln -s /mnt/pools/A/A0/NAS_Extension/ejre1.7.0/bin/java /opt/bin/java
&lt;/pre&gt;The setup can already be tested by starting the command:&lt;br /&gt;
&lt;pre&gt;/opt/bin/java -jar /opt/usr/local/gdocsdownload/gdocsdownload.jar /opt/usr/local/gdocsdownload/gdocsdownload.properties
&lt;/pre&gt;press Ctrl-C to stop the run&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the program will need to be started from a script so that we can set correct folder permissions and TMP folder.&lt;br /&gt;
You need to make sure there is enough space in your temp folder (my /tmp/ folder is way to small, that&#39;s why I use /opt/tmp/&lt;br /&gt;
&lt;pre&gt;vi gdocsdownloader
&lt;/pre&gt;&lt;br /&gt;
and then type:&lt;br /&gt;
&lt;pre&gt;#!/bin/sh

#this is to have a backup that&#39;s readable by everybody
#but only writeable by the owner.
#change it to suit your needs
umask 022
#use a tmp file with enough space to fit all your docs
#NB: it seems like there is a bug somewhere and the tmp directory has to
#be on the same partition than the destination directory....
#please choose a tmp file respecting these conditions
#/opt/bin/java -Djava.io.tmpdir=/opt/tmp/ -jar /opt/usr/local/gdocsdownload/gdocsdownload.jar $@
/opt/bin/java -Djava.io.tmpdir=/mnt/pools/A/A0/data/perso/gdocs/ -jar /opt/usr/local/gdocsdownload/gdocsdownload.jar $@
&lt;/pre&gt;make it an executable:&lt;br /&gt;
&lt;pre&gt;chmod a+x gdocsdownloader
&lt;/pre&gt;And test with:&lt;br /&gt;
&lt;pre&gt;./gdocsdownloader /opt/usr/local/gdocsdownload/gdocsdownload.properties
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;b. Set up a cron job to backup google docs data&lt;/b&gt;&lt;br /&gt;
Create the gdocsdownloader cron (I don&#39;t use /etc/cron.daily/ because I want a full download once a week):&lt;br /&gt;
&lt;pre&gt;vi /etc/cron.d/gdocsdownload
&lt;/pre&gt;and add:&lt;br /&gt;
&lt;pre&gt;# download google docs files at 3:45 AM

#full download on sunday
45 3    * * 0   root    /opt/usr/local/gdocsdownload/gdocsdownloader /opt/usr/local/gdocsdownload/gdocsdownload.properties fulldownload &gt; /dev/null 2&gt;&amp;1
#regular download the other days
45 3    * * 1,2,3,4,5,6   root    /opt/usr/local/gdocsdownload/gdocsdownloader /opt/usr/local/gdocsdownload/gdocsdownload.properties &gt; /dev/null 2&gt;&amp;1
&lt;/pre&gt;&lt;br /&gt;
The cron will run everyday!&lt;br /&gt;
you may want to run the first batch by starting:&lt;br /&gt;
&lt;pre&gt;/opt/usr/local/gdocsdownload/gdocsdownloader /opt/usr/local/gdocsdownload/gdocsdownload.properties
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;c. start the cron daemon&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The cron daemon is not started at boot by default....&lt;br /&gt;
&lt;br /&gt;
You can start it manually:&lt;br /&gt;
&lt;pre&gt;/etc/init.d/cron start
&lt;/pre&gt;&lt;br /&gt;
But to have it start up every time at boot, we need to add the line:&lt;br /&gt;
&lt;pre&gt;/etc/init.d/cron start &gt;&gt; /opt/init-opt.log
&lt;/pre&gt;to our /opt/init-opt.sh script.&lt;br /&gt;
&lt;br /&gt;
See my other post &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-run-program-at-boot-on-iomega.html&quot;&gt;How to run a program at boot on the Iomega Storcenter NAS&lt;/a&gt; to see how it works!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;d. set up logrotate&lt;/b&gt;&lt;br /&gt;
Logrotate is the process that compresses and delete old logs so that your logs don&#39;t eat all you disk space!&lt;br /&gt;
&lt;pre&gt;vi /etc/logrotate.d/gdocsdownload
&lt;/pre&gt;and add:&lt;br /&gt;
&lt;pre&gt;/opt/var/log/gdocsdownload.log {
    rotate 4
    weekly
    compress
    delaycompress
    missingok
    notifempty
    prerotate
      while [ &quot;`ps aux | grep gdocsdownloader.jar | grep -v grep | wc -l`&quot; = &quot;1&quot; ]
        do
          sleep 10
        done
    endscript
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
This will rotate your gdocsdownload logs once a week and keep at least 4 weeks worth of logs. It is easy to modify these parameters in the config file above.&lt;br /&gt;
&lt;br /&gt;
I try to make sure the gdocsdownload is done before rotating the logs to avoid conflict...&lt;br /&gt;
&lt;br /&gt;
Don&#39;t forget to change the path if your log is somewhere else!&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/4345589454253282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2012/02/how-to-backup-your-google-docs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/4345589454253282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/4345589454253282'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2012/02/how-to-backup-your-google-docs.html' title='How to backup your google docs documents'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzM_h6v9l9zJexDrJA_DEQK94-WycBMNYM-9u4arjgeTZyGp9LTNcYz0QuqV6zmQ73kMNqlBTf6n1KG0thi-GYpA4T2UVC31Jb4GgQGbSXDUdQPkCJiGQtKJR_8MoYSdxLJok56ydH5DU/s72-c/LogoGoogleDocuments.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-3703102738585395834</id><published>2012-02-11T22:35:00.002+00:00</published><updated>2012-03-19T15:21:38.043+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iomega storcenter"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="NAS"/><category scheme="http://www.blogger.com/atom/ns#" term="picasa"/><title type='text'>How to automatically synchronize a picture folder with picasa (on a NAS or anywhere else)</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3ekVjANoQiUiUoYmoTSG3ZwrCk-PwlRVm2pRsU8tcNsgnicyCZKMJx_f-kvGkoTLSWJ5PMG6iits6-v0UDXXO1f7w9X0Nr-SlXK0fNetaEvMYShWuOwHGI9Xs3rUpYYVgRTeNzXRx_JQ/s1600/picasa_logo_2976.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;111&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3ekVjANoQiUiUoYmoTSG3ZwrCk-PwlRVm2pRsU8tcNsgnicyCZKMJx_f-kvGkoTLSWJ5PMG6iits6-v0UDXXO1f7w9X0Nr-SlXK0fNetaEvMYShWuOwHGI9Xs3rUpYYVgRTeNzXRx_JQ/s320/picasa_logo_2976.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I like to have a copy of my pictures on picasa to be able to share them with friends and family. I usually upload them in reduced resolution, to stay within the free storage space given by google.&lt;br /&gt;
The problem is that uploading them can be a pain: the picasa software can be very slow to upload them, especially if your are accessing the pictures on your NAS with a wireless network.&lt;br /&gt;
&lt;br /&gt;
Instead of using the picasa software, I tried to use googlecl tools (http://code.google.com/p/googlecl/) to do that but it turns out I couldn&#39;t get it to do want I want (no sync folder option + no resize of picture on the fly).&lt;br /&gt;
There is an unsupported patch to synchronize folders with googlecl (http://code.google.com/p/googlecl/issues/detail?id=170) but that doesn&#39;t solve the problem of image resizing...I did not even test it...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. Presentation of my solution: picasauploader.jar&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To solve the problem, I wrote a small piece of java code (picasauploader.jar) that:&lt;br /&gt;
- creates any new album in picasa web when a new folder is created on the disk&lt;br /&gt;
- upload (and resizes if necessary) new pictures on the disk to picasa web&lt;br /&gt;
&lt;br /&gt;
In my setup, I want to install picasauploader.jar as a daily cron on my NAS, but you can install it anywhere.&lt;br /&gt;
&lt;br /&gt;
You just need to organize your pictures as&lt;br /&gt;
/path/albumname/picture.jpg&lt;br /&gt;
and use /path in the picasauploader.properties&lt;br /&gt;
&lt;br /&gt;
The jar is configured using the config file picasauploader.properties which reads as follows:&lt;br /&gt;
&lt;pre&gt;#use system defined proxy
picasauploader.usesystemproxy=true
#picasa/google account username and password
picasauploader.username=xxxx
picasauploader.password=xxx
#semi column separated directories
picasauploader.diskpaths=/xxx/yyyy;/aaaa/bbbb
#can be either:
# private: accessible to anybody with the direct link but not without the direct link
# protected: not accessible except from your account
# public: available for everybody to see
picasauploader.albumcreationaccess=private
#if you want to resize images before uploading (aspect ratio is kept)
#Note: only JPEG images are resized...
#max Height in px
picasauploader.maxheigt=1600
#max Width in px
picasauploader.maxwidth=1600
#jpg quality when resizing
picasauploader.resizequality=85
#log file (for linux, good practice is to put it in /var/log/ or /opt/var/log (and make sur logrotate works correctly))
picasauploader.logfile=/opt/var/log/picasaupload.log
&lt;/pre&gt;&lt;br /&gt;
All options are self explanatory. You can customize it as required by your setup.&lt;br /&gt;
&lt;br /&gt;
As the program is java, it can be run on any OS / Architecture supporting Java.&lt;br /&gt;
&lt;br /&gt;
The jar is available for download at &lt;a href=&quot;http://dl.dropbox.com/u/50398581/picasauploader/picasauploader.jar&quot;&gt;http://dl.dropbox.com/u/50398581/picasauploader/picasauploader.jar&lt;/a&gt;&lt;br /&gt;
sample properties files is available at &lt;a href=&quot;http://dl.dropbox.com/u/50398581/picasauploader/picasauploader.properties&quot;&gt;http://dl.dropbox.com/u/50398581/picasauploader/picasauploader.properties&lt;/a&gt;&lt;br /&gt;
and source code is available at: &lt;a href=&quot;http://dl.dropbox.com/u/50398581/picasauploader/PicasaUploader.java&quot;&gt;http://dl.dropbox.com/u/50398581/picasauploader/PicasaUploader.java&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Please note that for safety, the program does not delete anything on picasa web (nor on the disk, of course). Therefore, it is very safe to use.&lt;br /&gt;
&lt;br /&gt;
Known Limitations:&lt;br /&gt;
- only suports JPG GIF PNG BMP image formats&lt;br /&gt;
- picture resizing is only supported for jpg images&lt;br /&gt;
- only the name is used to determine if a picture was already uploaded: if a picture was already uploaded and then changed on disk, it won&#39;t be uploaded again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Steps to install the picasauploader on a linux based NAS&lt;/b&gt;&lt;br /&gt;
The setup is easy to adapt to any machine running linux. I didn&#39;t do a tutorial for Windows or Mac as I lack some knowledge to do it, but it can of course be done... feel free to adapt it and post your results and hints in the comments!&lt;br /&gt;
This tutorial assumes some vi ans linux knowledge...&lt;br /&gt;
&lt;br /&gt;
This is how I installed the picasauploader.jar on my NAS (an Iomega Storcenter ix4-200d). Please note that the procedure is unsupported by Iomega! &lt;b&gt;use at your own risk!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;a. Download and setup of picasauploader&lt;/b&gt;&lt;br /&gt;
First, you need to ssh into your NAS (see my &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-ssh-into-your-iomega-storcenter.html&quot;&gt;other post&lt;/a&gt; if you have am Iomega Storcenter)&lt;br /&gt;
Then:&lt;br /&gt;
&lt;pre&gt;mkdir /opt/usr/local
mkdir /opt/usr/local/picasauploader
cd /opt/usr/local/picasauploader
wget http://dl.dropbox.com/u/50398581/picasauploader/picasauploader.jar
wget http://dl.dropbox.com/u/50398581/picasauploader/picasauploader.properties
&lt;/pre&gt;Don&#39;t forget to change the properties file to make it work for your setup (you at least need to change account information and paths):&lt;br /&gt;
&lt;pre&gt;vi picasauploader.properties
&lt;/pre&gt;&lt;br /&gt;
If you haven&#39;t already done so, you need to install java on your NAS. See the java section of my previous post &lt;a href=&quot;http://vincesoft.blogspot.com/2011/11/how-to-install-crashplan-on-iomega.html&quot;&gt;How to install Crashplan on an Iomega Storcenter&lt;/a&gt; to find out how to do it for an Iomega storcenter.&lt;br /&gt;
&lt;br /&gt;
If you followed the java installation procedure of my other post, link java to a more usual location:&lt;br /&gt;
&lt;pre&gt;ln -s /mnt/pools/A/A0/NAS_Extension/ejre1.7.0/bin/java /opt/bin/java
&lt;/pre&gt;The setup can already be tested by starting the command:&lt;br /&gt;
&lt;pre&gt;/opt/bin/java -jar /opt/usr/local/picasauploader/picasauploader.jar /opt/usr/local/picasauploader/picasauploader.properties
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;b. Set up a cron job to synchronize image folders with picasa&lt;/b&gt;&lt;br /&gt;
Create the picasauploader cron:&lt;br /&gt;
&lt;pre&gt;cd /etc/cron.daily/
vi picasauploader
&lt;/pre&gt;and add:&lt;br /&gt;
&lt;pre&gt;#!/bin/sh
/opt/bin/java -jar /opt/usr/local/picasauploader/picasauploader.jar /opt/usr/local/picasauploader/picasauploader.properties
&lt;/pre&gt;Then:&lt;br /&gt;
&lt;pre&gt;chmod a+x picasauploader
&lt;/pre&gt;And test with:&lt;br /&gt;
&lt;pre&gt;./picasauploader
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;c. start the cron daemon&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The cron daemon is not started at boot by default....&lt;br /&gt;
&lt;br /&gt;
You can start it manually:&lt;br /&gt;
&lt;pre&gt;/etc/init.d/cron start
&lt;/pre&gt;&lt;br /&gt;
But to have it start up every time at boot, we need to add the line:&lt;br /&gt;
&lt;pre&gt;/etc/init.d/cron start &gt;&gt; /opt/init-opt.log
&lt;/pre&gt;to our /opt/init-opt.sh script.&lt;br /&gt;
&lt;br /&gt;
See my other post &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-run-program-at-boot-on-iomega.html&quot;&gt;How to run a program at boot on the Iomega Storcenter NAS&lt;/a&gt; to see how it works!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;d. set up logrotate&lt;/b&gt;&lt;br /&gt;
Logrotate is the process that compresses and delete old logs so that your logs don&#39;t eat all you disk space!&lt;br /&gt;
&lt;pre&gt;vi /etc/logrotate.d/picasauploader
&lt;/pre&gt;and add:&lt;br /&gt;
&lt;pre&gt;/opt/var/log/picasaupload.log {
    rotate 4
    weekly
    compress
    delaycompress
    missingok
    notifempty
    prerotate
      while [ &quot;`ps aux | grep picasauploader.jar | grep -v grep | wc -l`&quot; = &quot;1&quot; ]
        do
          sleep 10
        done
    endscript
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
This will rotate your picasauploader logs once a week and keep at least 4 weeks worth of logs. It is easy to modify these parameters in the config file above.&lt;br /&gt;
&lt;br /&gt;
As logrotate is started by the same cron that starts the picasauploader (daily cron), you will notice that I try to make sure the picasauploader is done before rotating the logs...&lt;br /&gt;
&lt;br /&gt;
Don&#39;t forget to change the path if your log is somewhere else!&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/3703102738585395834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2012/02/how-to-automatically-synchronize.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/3703102738585395834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/3703102738585395834'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2012/02/how-to-automatically-synchronize.html' title='How to automatically synchronize a picture folder with picasa (on a NAS or anywhere else)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3ekVjANoQiUiUoYmoTSG3ZwrCk-PwlRVm2pRsU8tcNsgnicyCZKMJx_f-kvGkoTLSWJ5PMG6iits6-v0UDXXO1f7w9X0Nr-SlXK0fNetaEvMYShWuOwHGI9Xs3rUpYYVgRTeNzXRx_JQ/s72-c/picasa_logo_2976.gif" height="72" width="72"/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-8140260037708044292</id><published>2012-01-26T11:44:00.000+00:00</published><updated>2012-04-15T22:31:42.925+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arm"/><category scheme="http://www.blogger.com/atom/ns#" term="bittorrent"/><category scheme="http://www.blogger.com/atom/ns#" term="Iomega storcenter ix4-200d"/><category scheme="http://www.blogger.com/atom/ns#" term="ipfilter"/><category scheme="http://www.blogger.com/atom/ns#" term="NAS"/><category scheme="http://www.blogger.com/atom/ns#" term="rtorrent"/><title type='text'>How to install rtorrent with ip filtering into your Iomega StorCenter ix4-200d</title><content type='html'>&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt; &lt;img border=&quot;0&quot; hda=&quot;true&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s320/ix4_200d_large__1.png&quot; width=&quot;320&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;b&gt;EDIT: this post is outdated now, please see &lt;a href=&quot;http://vincesoft.blogspot.com/2012/04/how-to-install-rtorrent-091-and-use.html&quot;&gt;this post&lt;/a&gt; instead with a much newer version of rtorrent that works with magnets and natively supports ip filtering&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This tutorial uses unsupported features of the IOMEGA Storcenter ix4-200d. It worked for me but use it at your own risk! It should work (again, it is unsupported) on the ix2 Storcenter as well. &lt;br /&gt;
Tutorial tested on IOMEGA Storcenter ix4-200d firmware 3.1.14.995 &lt;br /&gt;
The torrent software supplied with the Storcenter doesn&#39;t work well for me: some torrents never load, some disappear etc.. plus there is no ip filtering capability. The aim of the tutorial is to install rtorrent on the NAS which seems the most logical choice for a NAS (light weight and reliable) and explains how to enable ip filtering directly within rtorrent which is especially usefull since peerguardian/moblock can&#39;t be installed on the NAS because some kernel modules are missing...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. SSH into your NAS&lt;/b&gt;&lt;br /&gt;
See my other post: &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-ssh-into-your-iomega-storcenter.html&quot;&gt;How to ssh into your Iomega StorCenter ix4-200d &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Install the software&lt;/b&gt;&lt;br /&gt;
See my other post &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-install-software-into-your.html&quot;&gt;here&lt;/a&gt; to setup at the minimum ikg and ipkg-opt. Then:&lt;br /&gt;
&lt;pre&gt;ipkg-opt install rtorrent
ipkg-opt install lighttpd
ipkg-opt install screen
&lt;/pre&gt;&lt;br /&gt;
If you don&#39;t want to connect remotely to rtorrent to manage it from you computer, you can skip the rest of this section...&lt;br /&gt;
Install nTorrent on your computer &lt;a href=&quot;http://code.google.com/p/ntorrent/&quot;&gt;http://code.google.com/p/ntorrent/&lt;/a&gt;&lt;br /&gt;
Install xml-rpc on the NAS: &lt;pre&gt;ipkg install optware-devel
ipkg install libcurl-dev
cd /opt/tmp/
svn checkout http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable xmlrpc-c    
cd xmlrpc-c/
./configure --prefix=/opt
make
make install
&lt;/pre&gt;Note: ou can choose something other that nTorrent. Please give me you feedback in the comments if you do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Configure the software&lt;/b&gt;&lt;br /&gt;
Fix paths in the startup script: &lt;pre&gt;vi /opt/etc/init.d/S99rtorrent
&lt;/pre&gt;Some absolute paths need to be set. Replace screen with /opt/bin/screen in lines like: &lt;pre&gt;su -c &quot;&lt;b&gt;/opt/bin/screen&lt;/b&gt; -ls | grep -sq &quot;\.${srnname}[[:space:]]&quot; &quot; ${user} || su -c &quot;&lt;b&gt;/opt/bin/screen&lt;/b&gt; -dm -S ${srnname} 2&gt;&amp;1 1&gt;/dev/null&quot; ${user} | tee -a &quot;$logfile&quot; &gt;&amp;2
&lt;/pre&gt;except: &lt;pre&gt;su -c &quot;&lt;b&gt;/opt/bin/screen&lt;/b&gt; -S ${srnname} -X &lt;b&gt;screen&lt;/b&gt; /opt/bin/rtorrent ${options} 2&gt;&amp;1 1&gt;/dev/null&quot; ${user} | tee -a &quot;$logfile&quot; &gt;&amp;2
&lt;/pre&gt;replace: &lt;pre&gt;if ps | grep -sq ${pid}.*rtorrent ; then # make sure the pid doesn&#39;t belong to another process
&lt;/pre&gt;with &lt;pre&gt;if ps auxxx | grep -sq ${pid}.*rtorrent ; then # make sure the pid doesn&#39;t belong to another process
&lt;/pre&gt;Configure rtorrent (you should get a real rtorrent help for this, I am just trying to get you to a point where is works!): &lt;pre&gt;vi /opt/etc/rtorrent.conf
&lt;/pre&gt;set download and torrent directories:&lt;br /&gt;
instead of &lt;pre&gt;directory = /opt/share/torrent/work/
&lt;/pre&gt;set something like&lt;br /&gt;
&lt;pre&gt;directory = /mnt/pools/A/A0/torrents/rtorrent/download
&lt;/pre&gt;instead of &lt;pre&gt;schedule = watch_directory,5,5,load_start=/opt/share/torrent/dl/*.torrent
&lt;/pre&gt;set something like&lt;br /&gt;
&lt;pre&gt;schedule = watch_directory,5,5,load_start=/mnt/pools/A/A0/torrents/rtorrent/torrents/*.torrent
&lt;/pre&gt;comment out: &lt;pre&gt;#schedule = untied_directory,5,5,stop_untied=
&lt;/pre&gt;add at the end: &lt;pre&gt;#files rwx for everybody
system.set_umask = 0000
&lt;/pre&gt;Run: &lt;pre&gt;mkdir /opt/share/torrent/session
&lt;/pre&gt;Then, create the directories rtorrent/download and rtorrent/torrents inside the torrent share using regular NAS access (to have the right permissions)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. Configure the software for remote access&lt;/b&gt;&lt;br /&gt;
This is only if you want to manage your rtorrent remotely:&lt;br /&gt;
Thanks to &lt;a href=&quot;http://www.nslu2-linux.org/wiki/HowTo/RtorrentWithRemoteGUI&quot;&gt;http://www.nslu2-linux.org/wiki/HowTo/RtorrentWithRemoteGUI&lt;/a&gt; for the setup.&lt;br /&gt;
Security warning: if you follow these steps, anybody that can access port 8081 of you NAS will be able to send commands to rtorrent! You want to make sure that this port is only accessible from your local network.&lt;br /&gt;
&lt;pre&gt;vi /opt/etc/lighttpdlighttpd.conf
&lt;/pre&gt;between  &lt;pre&gt;#                               &quot;mod_rrdtool&quot;,
&lt;/pre&gt;and &lt;pre&gt;&quot;mod_accesslog&quot; )
&lt;/pre&gt;add &lt;pre&gt;&quot;mod_scgi&quot;,
&lt;/pre&gt;and at the end add: &lt;pre&gt;scgi.server = (
&quot;/RPC2&quot; =&gt; ( 
    &quot;127.0.0.1&quot; =&gt; (
        &quot;host&quot; =&gt; &quot;127.0.0.1&quot;,
        &quot;port&quot; =&gt; 5000,
        &quot;check-local&quot; =&gt; &quot;disable&quot;
        )
    )
)
&lt;/pre&gt;&lt;pre&gt;vi /opt/etc/rtorrent.conf
&lt;/pre&gt;and at the end add: &lt;pre&gt;scgi_port = localhost:5000
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. Test your setup&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;/opt/bin/rtorrent -n -o import=/opt/etc/rtorrent.conf
&lt;/pre&gt;if you get:&lt;br /&gt;
&lt;pre&gt;rtorrent: Fault occured while inserting xmlrpc call.
&lt;/pre&gt;did you install xmlprc correctly? is ld.so.conf updated correctly? did you run ldconfig?&lt;/br&gt; &lt;br /&gt;
to connect to the running instance: &lt;pre&gt;/opt/bin/screen -r rtorrent
&lt;/pre&gt;and kill the terminal (putty) to exit or press Ctrl-a d.&lt;/br&gt;&lt;/br&gt; For remote access: you can start lighthttpd on the NAS &lt;pre&gt;/opt/etc/init.d/S80lighttpd start
&lt;/pre&gt;and then start nTorrent on your computer and connect to your NAS port 8081 (by default) on path /RPC2.&lt;/br&gt; &lt;/br&gt;&lt;/br&gt; &lt;br /&gt;
&lt;b&gt;5. Get rtorrent to start automatically on reboot&lt;/b&gt;&lt;br /&gt;
Follow the tutorial &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-run-program-at-boot-on-iomega.html&quot;&gt;How to run a program at boot on Iomage Strocenter&lt;/a&gt; You just need to add the following lines to the script: &lt;pre&gt;/opt/etc/init.d/S80lighttpd start &gt;&gt; /opt/init-opt.log
/opt/etc/init.d/S99rtorrent start &gt;&gt; /opt/init-opt.log
&lt;/pre&gt;If you have another brand of NAS (or a regular linux OS), just try to link the startup scripts to /etc/rc2.d/ like ou would normally do an a linux box: &lt;pre&gt;ln -s /opt/etc/init.d/S80lighttpd /etc/rc2.d/S80lighttpd
ln -s /opt/etc/init.d/S99rtorrent /etc/rc2.d/S99rtorrent
&lt;/pre&gt;&lt;/br&gt;&lt;/br&gt; &lt;b&gt;6. Get a peerguardian like protection&lt;/b&gt;&lt;br /&gt;
First, I tried to install peerguardian linux but ran into a wall: the LifeLine OS on the Iomega Storcenter does not have the right kernel modules. I tried to recompute the kernel from the sources given by IOMEGA on their website (it is available for download in the support section) I got it to compile but insmod of the required module (x_tables.ko) does freeze the kernel (hard reboot required). Since I could not think of a safe way to push further in this direction (without risking to brick the NAS), I investigated other possibilities...(post a comment if you want more details on the kernel compilation)&lt;br /&gt;
I thought about abandoning rtorrent altogether and try Vuze (which has ip filtering).I got it to run but it was pretty unstable (jre crash)...&lt;br /&gt;
&lt;br /&gt;
Luckily, someboby wrote a patch for rtorrent so that it supports ip filtering. I got it to compile on my NAS (version 0.8.6) and here is the result.You just need to: &lt;pre&gt;cd /opt/bin/
mv rtorrent rtorrent.sav
wget http://dl.dropbox.com/u/50398581/rtorrent-0.8.6/rtorrent
&lt;/pre&gt;that will give you a rtorrent with ip filtering supported.&lt;/br&gt; Note: this only work if you previously installed version 0.8.6 of rtorrent!&lt;/br&gt;&lt;/br&gt; The precompiled version will only work if you have an &quot;armel&quot; architecture. Otherwise, you need to recompile from source (see point 7 below)&lt;br /&gt;
&lt;br /&gt;
The some config: &lt;pre&gt;vi /opt/etc/rtorrent.conf
&lt;/pre&gt;and add at the end &lt;pre&gt;ip_filter=/mnt/pools/A/A0/torrents/rtorrent/ipfilter/level1
schedule = filter,18:30:00,24:00:00,reload_ip_filter=
&lt;/pre&gt;thanks to &lt;a href=&quot;http://bogdan.org.ua/2011/04/01/rtorrent-enhanced-with-ipfilter-and-geoip-debian-squeeze-amd64-package.html&quot;&gt;http://bogdan.org.ua/2011/04/01/rtorrent-enhanced-with-ipfilter-and-geoip-debian-squeeze-amd64-package.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now, we need to download and update regularly the ip filter file: &lt;pre&gt;vi /etc/cron.daily/rtorrent_ipfilter
&lt;/pre&gt;&lt;pre&gt;#!/bin/sh
cd /mnt/pools/A/A0/torrents/rtorrent/ipfilter/
wget http://list.iblocklist.com/?list=bt_level1
mv index.html\?list\=bt_level1 level1new.gz
gunzip level1new.gz
rm level1
mv level1new level1
&lt;/pre&gt;then: &lt;pre&gt;mkdir /mnt/pools/A/A0/torrents/rtorrent/ipfilter/
cd /etc/cron.daily/
chmod a+x rtorrent_ipfilter
./rtorrent_ipfilter
&lt;/pre&gt;That&#39;s it: you just need to restart rtorrent to enjoy ip filtering. The ip filter file will be update everyday thanks to the cron (and rtotorrent will reload it). &lt;/br&gt;&lt;/br&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7. In case you want/need to compile rtorrent with ip filtering yourself!&lt;/b&gt;&lt;br /&gt;
This is usefull if you are compiling a different version or a different architecture (please comment and report your success if you do so).&lt;br /&gt;
&lt;br /&gt;
First, you need the header files for libsigc++-2.0. &lt;pre&gt;wget http://ftp.de.debian.org/debian/pool/main/libs/libsigc++-2.0/libsigc++-2.0-dev_2.0.18-2_armel.deb
dpkg --instdir=/opt/ --admindir=/opt/dpkg/ -i libsigc++-2.0-dev_2.0.18-2_armel.deb
&lt;/pre&gt;&lt;br /&gt;
Then, take care of litorrent. I recompile libtorrent to install the correct headers as I don&#39;t find them anywhere (I didn&#39;t look for a deb archive with the correct headers but that might have done the trick...): &lt;pre&gt;wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
tar -xvf libtorrent-0.12.6.tar.gz
cd libtorrent-0.12.6
PATH=$PATH:/opt/bin
&lt;/pre&gt;Then: &lt;pre&gt;vi configure
&lt;/pre&gt;and add at the begining of the configure script: &lt;pre&gt;OPENSSL_CFLAGS=&#39;-I/opt/include/&#39;
OPENSSL_LIBS=&#39;-L/opt/lib/ -lopenssl&#39;
STUFF_LIBS=&#39;-L/opt/lib/ -lsigc-2.0&#39;
STUFF_CFLAGS=&#39;-I/opt/usr/include/sigc++-2.0/ -I/opt/usr/lib/sigc++-2.0/include&#39;
&lt;/pre&gt;Note that I do edit the configure because I don&#39;t manage to get ipkg-config to work correctly. Using /opt/bin/pkg-config works better than the /bin/pkg-config but still not good enough... &lt;pre&gt;./configure --prefix=/opt/
make
make install
&lt;/pre&gt;&lt;br /&gt;
Then, the main thing: rtorrent &lt;pre&gt;ipkg-opt install libcurl-dev
ipkg-opt install ncurses-dev
PATH=$PATH:/opt/bin
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz
tar -xvf rtorrent-0.8.6.tar.gz
cd rtorrent-0.8.6
vi configure
&lt;/pre&gt;and add at the begining of the configure script: &lt;pre&gt;sigc_LIBS=&#39;-L/opt/lib/ -lsigc-2.0 -L/lib/&#39;
sigc_CFLAGS=&#39;-I/opt/usr/include/sigc++-2.0/ -I/opt/usr/lib/sigc++-2.0/include -I/opt/include/ncurses&#39;
libcurl_LIBS=&#39;-L/opt/lib/ -lcurl&#39;
libcurl_CFLAGS=&#39;-I/opt/include/&#39;
libtorrent_LIBS=&#39;-L/opt/lib/ -ltorrent&#39;
libtorrent_CFLAGS=&#39;-I/opt/include/&#39;
&lt;/pre&gt;I did not know were to put the ncurses include, that&#39;s why you&#39;ll find it in sigc_CFLAGS...&lt;br /&gt;
&lt;br /&gt;
Now, install the patch to have ip filtering (more details on the patch here &lt;a href=&quot;http://libtorrent.rakshasa.no/ticket/239&quot;&gt;http://libtorrent.rakshasa.no/ticket/239&lt;/a&gt;): &lt;pre&gt;wget http://libtorrent.rakshasa.no/raw-attachment/ticket/239/rtorrent-0.8.6-ip_filter_no_boost-fast-bsd2.patch
/opt/bin/patch-patch -p1 &lt; rtorrent-0.8.6-ip_filter_no_boost-fast-bsd2.patch
./configure --prefix=/opt/ --with-xmlrpc-c=/opt/bin/xmlrpc-c-config
&lt;/pre&gt;
Then, I got the following issue:
&lt;pre&gt;/opt/arm-none-linux-gnueabi/lib/libdl.so.2: undefined reference to `_dl_tls_get_addr_soft@GLIBC_PRIVATE&#39;
&lt;/pre&gt;My system is starting to be a mess. The problem comes from the fact that I have 2 libdb.so libs:
&lt;pre&gt;root@xxx:/opt/tmp/rtorrent-0.8.6# ls -l /mnt/apps/lib/libdl.so.2
lrwxrwxrwx 1 root root 12 Sep  9 20:46 /mnt/apps/lib/libdl.so.2 -&gt; libdl-2.8.so
root@xxx:/opt/tmp/rtorrent-0.8.6# ls -l /mnt/system/opt/arm-none-linux-gnueabi/lib/libdl.so.2
lrwxrwxrwx 1 root root 12 Jan  6 22:47 /mnt/system/opt/arm-none-linux-gnueabi/lib/libdl.so.2 -&gt; libdl-2.5.so
&lt;/pre&gt;to fix the issue:
&lt;pre&gt;rm /mnt/system/opt/arm-none-linux-gnueabi/lib/libdl.so.2
&lt;/pre&gt;Then, compile and install:
&lt;pre&gt;make
make install
&lt;/pre&gt;final issue:
&lt;pre&gt;Could not compile XMLRPC-C test.
&lt;/pre&gt;This one came from a mismatch between heders and libs. Recompiling the package xml-rpc from source did fix the issue.


&lt;b&gt;8. What&#39;s next&lt;/b&gt;
In a different post, I will detail how to install Vuze headless (without graphical interface)... I don&#39;t recommand installing vuze because I ran into stability issues while testing it (several jre crashes). However, a new Jre version might solve the issue...&lt;br /&gt;
On top of that, you can&#39;t do much from the Web UI: when you want to setup something, you ofen have to use the Vuze command line inteface and I did not find any proper documentation for it.&lt;br /&gt;
Note as well that rss feeds features don&#39;t work in headless mode.&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/8140260037708044292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2012/01/how-to-install-rtorrent-with-ip.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/8140260037708044292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/8140260037708044292'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2012/01/how-to-install-rtorrent-with-ip.html' title='How to install rtorrent with ip filtering into your Iomega StorCenter ix4-200d'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s72-c/ix4_200d_large__1.png" height="72" width="72"/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-2520000037563454573</id><published>2012-01-23T20:57:00.000+00:00</published><updated>2014-01-19T20:09:52.367+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="boot"/><category scheme="http://www.blogger.com/atom/ns#" term="init.d"/><category scheme="http://www.blogger.com/atom/ns#" term="iomega storcenter"/><category scheme="http://www.blogger.com/atom/ns#" term="NAS"/><title type='text'>How to run a program at boot on the Iomega Storcenter NAS</title><content type='html'>&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt; &lt;img border=&quot;0&quot; hda=&quot;true&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s320/ix4_200d_large__1.png&quot; width=&quot;320&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
This tutorial uses unsupported features of the IOMEGA Storcenter ix4-200d. It worked for me but use it at your own risk! I undertand it works (but still isn&#39;t unsupported by IOMEGA) on the ix2 Storcenter as well. &lt;br /&gt;
Tutorial tested on IOMEGA Storcenter ix4-200d firmware 3.1.14.995 &lt;br /&gt;
This post is extracted from a previous post (how to install crashplan on Iomega storcenter). I am planning more tutorials on the Iomega storcenter ix4 and wanted centralize this part in case it needs to evolve with future firmwares... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. Enable SSH on the NAS&lt;/b&gt;&lt;br /&gt;
see my other post &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-ssh-into-your-iomega-storcenter.html&quot;&gt;How to SSH into your Iomega Storcenter&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Create a script that runs at boot&lt;/b&gt;&lt;br /&gt;
Iomega OS (EMC LifeLine) does not respect what is inside /etc/rcx.d/. If you have another brand of NAS, chances are that installing the script into /etc/rc2.d/ will result in the script running at boot...&lt;br /&gt;
If you already downloaded the scripts to have a command run at boot, you can just add the new command below the one you already have in /opt/init-opt.sh. Just make sure the commands all return immediately (or add a &amp; at the end) so that the script does not get stuck before reaching the last command.&lt;br /&gt;
&lt;br /&gt;
If that the first time you do this, download the scripts: &lt;pre&gt;cd /opt/
wget http://dl.dropbox.com/u/50398581/Storcenter%20add%20on%20boot/editconfig.sh
chmod +x /opt/editconfig.sh
wget http://dl.dropbox.com/u/50398581/Storcenter%20add%20on%20boot/init-opt.sh
chmod +x /opt/init-opt.sh&lt;/pre&gt;Now we start editing the XML list of programs that will automatically be started. Run:  &lt;pre&gt;/opt/editconfig.sh&lt;/pre&gt;You will see lots of &lt;program&gt;Groups. We are going to add one &amp;lt;program&amp;gt; to &amp;lt;group level=&quot;1&quot;&amp;gt;. We will add: &lt;pre&gt;&amp;lt;program name=&quot;init-opt&quot; path=&quot;/opt/init-opt.sh&quot;&amp;gt;
&amp;lt;sysoption restart=&quot;-1&quot;/&amp;gt;
&amp;lt;/program&amp;gt;
&lt;/pre&gt;the scripts content for you reference:&lt;br /&gt;
&lt;b&gt;/opt/editconfig.sh&lt;/b&gt; &lt;pre&gt;#!/bin/sh
# edit the bootup config of the ix-2
# inspired by http://www.chrispont.co.uk/2010/10/allow-startup-daemons-on-storcenter-ix2-200-nas/
mknod -m0660 /dev/loop3 b 7 3
chown root.disk /dev/loop3
mkdir /tmp/apps
mount -o loop /boot/images/apps /tmp/apps
vi /tmp/apps/usr/local/cfg/sohoProcs.xml
sleep 1
umount /tmp/apps
rm /dev/loop3
&lt;/pre&gt;&lt;b&gt;/opt/init-opt.sh&lt;/b&gt; &lt;pre&gt;#!/bin/sh
# modified from http://techmonks.net/installing-transmission-and-dnsmasq-on-a-nas/
rm /opt/init-opt.log
echo &quot;Last bootup:&quot; &gt;&gt; /opt/init-opt.log
date &gt;&gt; /opt/init-opt.log
#Add your command below
#/etc/init.d/xxxxxx start &gt;&gt; /opt/init-opt.log
while true; do
 sleep 1d
done
&lt;/pre&gt;Then, you just need to edit editconfig.sh add the command(s) you wish to run after the  &lt;pre&gt;#/etc/init.d/xxxxxx start &gt;&gt; /opt/init-opt.log
&lt;/pre&gt;line!</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/2520000037563454573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2012/01/how-to-run-program-at-boot-on-iomega.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/2520000037563454573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/2520000037563454573'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2012/01/how-to-run-program-at-boot-on-iomega.html' title='How to run a program at boot on the Iomega Storcenter NAS'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s72-c/ix4_200d_large__1.png" height="72" width="72"/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-412891575329806100</id><published>2012-01-23T16:46:00.000+00:00</published><updated>2012-02-27T13:11:10.798+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Iomega storcenter ix4-200d"/><category scheme="http://www.blogger.com/atom/ns#" term="ipkg"/><category scheme="http://www.blogger.com/atom/ns#" term="ipkg-opt"/><category scheme="http://www.blogger.com/atom/ns#" term="recompiling"/><title type='text'>How to install software into your Iomega StorCenter ix4-200d</title><content type='html'>&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt; &lt;img border=&quot;0&quot; hda=&quot;true&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s320/ix4_200d_large__1.png&quot; width=&quot;320&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
This tutorial uses unsupported features of the IOMEGA Storcenter ix4-200d. It worked for me but use it at your own risk! It should work (again, it is unsupported) on the ix2 Storcenter as well. &lt;br /&gt;
Tutorial tested on IOMEGA Storcenter ix4-200d firmware 3.1.14.995 &lt;br /&gt;
The aim of the tutorial is to be able to add programs to you NAS without having to go too deep in the system. This is also helpful to compile natively on the NAS without needing to cross compile for your architecture.... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. SSH into your NAS&lt;/b&gt;&lt;br /&gt;
See my other post: &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-ssh-into-your-iomega-storcenter.html&quot;&gt;How to ssh into your Iomega StorCenter ix4-200d &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Directory Structure on the NAS&lt;/b&gt;&lt;br /&gt;
The Lifeline OS (Iomega&#39;s OS) does put most of the root file system in read only mode. It is not much use to try to put stuff there anyway because the partitition is very small&lt;br /&gt;
You can type: &lt;pre&gt;df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                   51200      5652     45548  12% /
/dev/root.old             6613      2119      4494  33% /initrd
none                     &lt;b&gt;51200&lt;/b&gt;      5652     45548  12% /
/dev/md0_vg/BFDlv      4128448    619496   3299240  16% /boot
/dev/loop0              587077    580124      6953  99% /mnt/apps
/dev/loop1                4959      2230      2473  48% /etc
/dev/loop2                 216       216         0 100% /oem
tmpfs                   255748         0    255748   0% /mnt/apps/lib/init/rw
tmpfs                   255748         0    255748   0% /dev/shm
/dev/mapper/md0_vg-vol1
                      &lt;b&gt;16775168&lt;/b&gt;   3283704  13491464  20% /mnt/system
/dev/mapper/2602b0ce_vg-lv43ec31bd
                     2867212288 1169119852 1698092436  41% /mnt/pools/A/A0
&lt;/pre&gt;to see the partitions and their mountpoint.&lt;br /&gt;
The idea seems to be that third party programs should be installed in the /opt/ directory, which has ample storage (16GB) whereas root (/) only has 50MB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Use ipkg&lt;/b&gt;&lt;br /&gt;
ipkg is intalled by default in the Iomega storcenter. We just need to specify the right place to find the packages: &lt;pre&gt;vi /etc/ipkg.conf
src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable
src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable
&lt;/pre&gt;Then type: &lt;pre&gt;ipkg update
&lt;/pre&gt;to build the list of available packages.&lt;/br&gt; &lt;/br&gt;&lt;/br&gt; The problem of this setup is that you won&#39;t be able to install some packages because installation will fail because part of the filesystem is readonly.&lt;br /&gt;
Thanks to ipkg, there is an easy fix: &lt;pre&gt;ipkg install ipkg-opt
&lt;/pre&gt;This installs the binary /opt/bin/ipkg-opt. The idea is then to use this binary instead of the regular ipkg: as a result all packages will be installed in /opt/ and you won&#39;t run into problems with the read only filesystem.&lt;br /&gt;
The only drawback is that /opt/bin/ is not in your path... There is a simple remedy for that: &lt;pre&gt;PATH=/opt/bin:$PATH
&lt;/pre&gt;Note: this is not persistent (if you start another shell, you will need to do that again).&lt;br /&gt;
Also, as a one time persistent thing, I recommand to do&lt;br /&gt;
&lt;pre&gt;vi /etc/ld.so.conf
&lt;/pre&gt;and add &lt;br /&gt;
&lt;pre&gt;/opt/lib/
&lt;/pre&gt;at the end. That&#39;s the main problem with /opt installed software: you might end up to get duplicated libraries between /lib and /opt/lib (ldd and ldconfig are your friends). &lt;br /&gt;
&lt;br /&gt;
You also need to do:&lt;br /&gt;
&lt;pre&gt;mv /opt/etc/ipkg.conf /opt/etc/ipkg.conf.old
ln -s /etc/ipkg.conf /opt/etc/ipkg.conf
&lt;/pre&gt;so that you config in /etc/ipkg.conf remains useable with /opt/bin/ipkg and /opt/bin/ipkg-opt&lt;br /&gt;
&lt;br /&gt;
Then type: &lt;br /&gt;
&lt;pre&gt;/opt/bin/ipkg update
&lt;/pre&gt;to setup the list of available packages for /opt/bin/ipkg /opt/bin/ipkg-opt&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. Install utilities and optware-devel&lt;/b&gt;&lt;br /&gt;
First install the utilities you miss to do some actual linux stuff:&lt;br /&gt;
&lt;pre&gt;ipkg-opt install zip unzip bzip2 gzip
&lt;/pre&gt;&lt;br /&gt;
If you want a full gcc toolchain to compile your own applications from source.&lt;br /&gt;
&lt;pre&gt;ipkg-opt install optware-devel
&lt;/pre&gt;The compilation can be slow but this allows you to natively compile on your NAS (I think it is simpler because there is no need to set up cross compiling on another box)... &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5. Install armel/debian compiled software&lt;/b&gt;&lt;br /&gt;
Unfortunately, you will soon discover that some of the packages you want are not available for ipkg.&lt;br /&gt;
You can then either compile your own software (see next point) or get some ready-made debian archives....&lt;br /&gt;
In this case, I suggest to use the following command (for example for libsigc++-2.0-dev):&lt;br /&gt;
&lt;pre&gt;cd /opt/tmp/
wget http://ftp.de.debian.org/debian/pool/main/libs/libsigc++-2.0/libsigc++-2.0-dev_2.0.18-2_armel.deb
dpkg --instdir=/opt/ --admindir=/opt/dpkg/ -i libsigc++-2.0-dev_2.0.18-2_armel.deb
&lt;/pre&gt;Note: do not use /tmp/ as the space available there is very small...&lt;br /&gt;
Note2: be careful to choose packages compiled for your architecture (armel in my case)! The above command will install your soft as if /opt/ was the root directory (you will end up with /opt/usr/lib directories and the like). As a result, you might need to add stuff in your PATH or edit /etc/ld.so.conf.&lt;br /&gt;
Be careful not to make a mess of your system or you will soon end up with several times the same library (with different versions) at different locations... You will need to sort this manually(ln, rm...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6. Compile from source&lt;/b&gt;&lt;br /&gt;
For example, a very classic install for libnfnetlink: &lt;pre&gt;cd /opt/tmp/
wget http://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-1.0.0.tar.bz2
tar -xvf libnfnetlink-1.0.0.tar.bz2
cd libnfnetlink-1.0.0
PATH=$PATH:/opt/bin
./configure --prefix=/opt/
make
make install
&lt;/pre&gt;Note: to get bzip2 to work I had to do before the tar -xvf: &lt;pre&gt;ln -s /opt/bin/bzip2-bzip2 /opt/bin/bzip2
&lt;/pre&gt;Another example using svn&lt;br /&gt;
&lt;pre&gt;cd /opt/tmp/
PAH=/opt/bin:$PATH
svn checkout http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable xmlrpc-c    
cd xmlrpc-c/
./configure --prefix=/opt
make
make install
&lt;/pre&gt;Don&#39;t forget the --prefix=/opt to specifiy you want to install your package.&lt;br /&gt;
&lt;br /&gt;
When compiling from source, you run into the usual complation problems you can get with linux (libraries/includes not found etc...). It gets even more annoying because default stuff does not work well anymore (package manager is not where expected etc), and sometimes you end up having to specify the complie flags yourself.&lt;br /&gt;
For example, I recently had to edit the configure script of a source tarball to add: &lt;pre&gt;sigc_LIBS=&#39;-L/opt/lib/ -lsigc-2.0 -L/lib/&#39;
sigc_CFLAGS=&#39;-I/opt/usr/include/sigc++-2.0/ -I/opt/usr/lib/sigc++-2.0/include -I/opt/include/ncurses&#39;
libcurl_LIBS=&#39;-L/opt/lib/ -lcurl&#39;
libcurl_CFLAGS=&#39;-I/opt/include/&#39;
libtorrent_LIBS=&#39;-L/opt/lib/ -ltorrent&#39;
libtorrent_CFLAGS=&#39;-I/opt/include/&#39;
&lt;/pre&gt;-dev packages can be difficult to find with ipkg, this is where you often need to get a .deb package or compile the library from source just to get the header files right...  &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7. Conclusion&lt;/b&gt;&lt;br /&gt;
As you noticed, it is just a matter of using the tools (and using them right). It just gets a little bit more complicated because the usual package manager does not work out of the box, the procedure is unsupported by the hardware vendor and precompiled packages can be difficult to find for armel...</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/412891575329806100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2012/01/how-to-install-software-into-your.html#comment-form' title='52 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/412891575329806100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/412891575329806100'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2012/01/how-to-install-software-into-your.html' title='How to install software into your Iomega StorCenter ix4-200d'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s72-c/ix4_200d_large__1.png" height="72" width="72"/><thr:total>52</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-8674224016217835151</id><published>2012-01-12T20:35:00.000+00:00</published><updated>2012-02-04T15:01:47.821+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iomega storcenter"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh"/><title type='text'>How to ssh into your Iomega StorCenter ix4-200d</title><content type='html'>&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt; &lt;img border=&quot;0&quot; hda=&quot;true&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s320/ix4_200d_large__1.png&quot; width=&quot;320&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
This tutorial uses an unsupported feature of the IOMEGA Storcenter ix4-200d. It worked for me but use it at your own risk! I undertand it works (but still isn&#39;t unsupported by IOMEGA) on the ix2 Storcenter as well. &lt;br /&gt;
Tutorial tested on IOMEGA Storcenter ix4-200d firmware 3.1.14.995 &lt;br /&gt;
This post is extracted from a previous post (how to install crashplan on Iomega storcenter). I am planning more tutorials on the Iomega storcenter ix4 and wanted centralize this part in case it needs to evolve with future firmwares... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. Enable SSH on the NAS&lt;/b&gt;&lt;br /&gt;
Go to&lt;br /&gt;
&lt;a href=&quot;http://your-nas-adress/diagnostics.html&quot;&gt;http://your-nas-adress/diagnostics.html&lt;/a&gt;&lt;br /&gt;
click &quot;enable SSH&quot;&lt;br /&gt;
on older firware versions, I understand an equivalent page could be found at:&lt;br /&gt;
&lt;a href=&quot;http://your-nas-adress/support.html&quot;&gt;http://your-nas-adress/support.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;If the admin password of the NAS is &lt;strong&gt;&quot;pass&quot;&lt;/strong&gt; the root password to use in ssh is &lt;strong&gt;sohopass&lt;/strong&gt;.&lt;/u&gt;(thanks &lt;a href=&quot;http://planetkris.com/2010/05/iomega-storcenter-ix2-ssh-email-notifications-and-busybox-init-d&quot;&gt;http://planetkris.com/2010/05/iomega-storcenter-ix2-ssh-email-notifications-and-busybox-init-d&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/8674224016217835151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2012/01/how-to-ssh-into-your-iomega-storcenter.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/8674224016217835151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/8674224016217835151'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2012/01/how-to-ssh-into-your-iomega-storcenter.html' title='How to ssh into your Iomega StorCenter ix4-200d'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s72-c/ix4_200d_large__1.png" height="72" width="72"/><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-362152363994105982.post-3174569274834770930</id><published>2011-11-22T21:36:00.000+00:00</published><updated>2015-11-08T08:59:52.098+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arm"/><category scheme="http://www.blogger.com/atom/ns#" term="Crashplan"/><category scheme="http://www.blogger.com/atom/ns#" term="iomega storcenter"/><category scheme="http://www.blogger.com/atom/ns#" term="Marvell Kirkwood"/><category scheme="http://www.blogger.com/atom/ns#" term="NAS"/><title type='text'>How to install Crashplan on an IOMEGA Storcenter ix4-200d NAS</title><content type='html'>&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt; &lt;img border=&quot;0&quot; hda=&quot;true&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s320/ix4_200d_large__1.png&quot; width=&quot;320&quot; /&gt;&lt;/td&gt;&lt;td&gt; &lt;img border=&quot;0&quot; hda=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi86P2SUHVomhgkjUBOaPPwfBTBp_6iIIjcmAAv0x12ChXeM9oXp0-EZ-ggA7ST1-lgTOGnqWjntHqDEaltbEvenl90xUw1AvGkCMzzaqxhyphenhyphenXnySRACBlmQsr-5h1JGiuUDE7ndK5AwwEM/s1600/crashplan_logo.png&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
This tutorial uses unsupported features of the IOMEGA Storcenter ix4-200d and Crashplan does not support a client for ARM processors. The steps I described worked for me but use at your own risk! &lt;br /&gt;
Tutorial tested on IOMEGA Storcenter ix4-200d firmware 3.1.14.995 &lt;br /&gt;
It should be fairly easy to adapt it to the Iomega ix2 NAS and with a little bit more work, even other devices using the ARM processor Marvell Kirkwood 6281 CPU (aka Feroceon).  &lt;br /&gt;
&lt;br /&gt;
First of all, it was much more complex than I anticipated. Crashplan is running on java, I was hoping for a quick java install and go!  Actually it is much more complex because nothing is supported by either Iomega or Crashplan, some libraries are missing from the NAS and the custom linux (EMC Lifeline OS) does not behave as expected (read only file system and strange daemon startup mechanism)... &lt;br /&gt;
&lt;u&gt;This tutorial assumes some basic linux and vi knowledge...&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
EDIT: This tutorial was used as a base for tutorials for Synology on powerpc at &lt;a href=&quot;http://chreggy.fr/thegeek/2012/01/10/crashplan-sur-un-synology-powerpc-ds109/&quot;&gt;http://chreggy.fr/thegeek/2012/01/10/crashplan-sur-un-synology-powerpc-ds109/&lt;/a&gt; and also for a packaged form of the installer for Synology on a Marvell Kirkwood or Intel CPU at &lt;a href=&quot;http://pcloadletter.co.uk/2012/01/30/crashplan-syno-package/&quot;&gt;http://pcloadletter.co.uk/2012/01/30/crashplan-syno-package/&lt;/a&gt;. If this tutorial helps you to install crashplan for another architecture/device, please link to this page and leave a comment. I am always glad to know that the hours I spent have served the community!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. Enable SSH on the NAS&lt;/b&gt;&lt;br /&gt;
Go to&lt;br /&gt;
&lt;a href=&quot;http://your-nas-adress/diagnostics.html&quot;&gt;http://your-nas-adress/diagnostics.html&lt;/a&gt;&lt;br /&gt;
click &quot;enable SSH&quot;&lt;br /&gt;
on older firware versions, I understand an equivalent page could be found at:&lt;br /&gt;
&lt;a href=&quot;http://your-nas-adress/support.html&quot;&gt;http://your-nas-adress/support.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;If the admin password of the NAS is &lt;strong&gt;&quot;pass&quot;&lt;/strong&gt; the root password to use in ssh is &lt;strong&gt;sohopass&lt;/strong&gt;.&lt;/u&gt;(thanks &lt;a href=&quot;http://planetkris.com/2010/05/iomega-storcenter-ix2-ssh-email-notifications-and-busybox-init-d&quot;&gt;http://planetkris.com/2010/05/iomega-storcenter-ix2-ssh-email-notifications-and-busybox-init-d&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Create a share where we will install our stuff&lt;/b&gt;&lt;br /&gt;
Create a share called NAS_Extension using the web interface&lt;br /&gt;
EDIT: now that I understand better the way the OS is organized, It would have been better to install everthing in /opt/ (/opt/ejre1.7.0 and /opt/crasplan3.0.3) the partition /opt/ is on is 15GB, so no risk to run out of space (type df to see the mount points and free space)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Install java&lt;/b&gt;&lt;br /&gt;
Because of oracle licensing, you can&#39;t download the file directly. Go there:&lt;br /&gt;
&lt;a href=&quot;http://www.oracle.com/technetwork/java/embedded/downloads/javase/index.html&quot;&gt;http://www.oracle.com/technetwork/java/embedded/downloads/javase/index.html&lt;/a&gt;&lt;br /&gt;
and download the ejre corresponding to &quot;ARMv5 Linux - Headless&quot; under &quot;Java SE for Embedded 7&quot;&lt;br /&gt;
The file should be called ejre-7-fcs-b147-linux-arm-sflt-headless-27_jun_2011.tar.gz&lt;br /&gt;
Store it into the NAS_Extension partition you just created using your regular way of accessing the NAS.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;TODO: Everything should work with openJDK as well. I&#39;ll try to update the tutorial when I get a chance.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
configure ssh on you computer and access the NAS (windows users can use putty.exe available here &lt;a href=&quot;http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html&quot;&gt;http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html&lt;/a&gt;)&lt;br /&gt;
In the NAS command line, type:&lt;br /&gt;
&lt;pre&gt;cd /mnt/pools/A/A0/NAS_Extension
tar -xvf ejre-7-fcs-b147-linux-arm-sflt-headless-27_jun_2011.tar.gz&lt;/pre&gt;That&#39;s it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. Install crashplan&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;cd /mnt/pools/A/A0/NAS_Extension/
wget http://download.crashplan.com/installs/linux/install/CrashPlan/CrashPlan_3.0.3_Linux.tgz
tar -xvf CrashPlan_3.0.3_Linux.tgz
cd CrashPlan-install
./install.sh
&lt;/pre&gt;and leave the default setting (press enter) for all the questions except:&lt;br /&gt;
What directory do you wish to install CrashPlan to? /mnt/pools/A/A0/NAS_Extension/crashplan/&lt;br /&gt;
&lt;pre&gt;vi /etc/init.d/crashplan
&lt;/pre&gt;And add at the beginning of the script (line 18)&lt;br /&gt;
&lt;pre&gt;PATH=$PATH:/mnt/pools/A/A0/NAS_Extension/ejre1.7.0/bin
export PATH
&lt;/pre&gt;&lt;br /&gt;
Now, some shared objects (native libraries) need to be replaced in order for Crashplan to work (precompiled versions are available).&lt;br /&gt;
&lt;i&gt;Replace &lt;b&gt;libjtux.so&lt;/b&gt; in /mnt/pools/A/A0/NAS_Extension/crashplan/:&lt;/i&gt; &lt;pre&gt;cd ../crashplan/
cp libjtux.so libjtux.so.bak
wget http://dl.dropbox.com/u/50398581/crashplan%20on%20NAS/libjtux.so&lt;/pre&gt;(credit to &lt;a href=&quot;https://crashplan.zendesk.com/entries/390250-crashplan-on-sheevaplug&quot;&gt;https://crashplan.zendesk.com/entries/390250-crashplan-on-sheevaplug&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Replace &lt;b&gt;jna.jar&lt;/b&gt; in /mnt/pools/A/A0/NAS_Extension/crashplan/lib/:&lt;/i&gt; &lt;pre&gt;cd lib/
cp jna-3.2.5.jar jna-3.2.5.jar.bak
wget http://dl.dropbox.com/u/50398581/crashplan%20on%20NAS/jna-3.2.5.jar&lt;/pre&gt;(shared object extracted from the debian package &lt;a href=&quot;http://packages.debian.org/sid/armel/libjna-java/download&quot;&gt;http://packages.debian.org/sid/armel/libjna-java/download&lt;/a&gt; and reinjected into Crashplan jna jar. Thanks to &lt;a href=&quot;http://www.opticality.com/blog/2011/07/16/installing-crashplan-on-a-pogoplug-pro/&quot;&gt;http://www.opticality.com/blog/2011/07/16/installing-crashplan-on-a-pogoplug-pro/&lt;/a&gt; for the idea)&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Replace &lt;b&gt;libffi.so&lt;/b&gt; (required for jna and not available by default):&lt;/i&gt; &lt;pre&gt;cd /mnt/pools/A/A0/NAS_Extension/
wget http://dl.dropbox.com/u/50398581/crashplan%20on%20NAS/libffi.so.5
vi /etc/ld.so.conf
&lt;/pre&gt;add  &lt;pre&gt;/mnt/pools/A/A0/NAS_Extension/
&lt;/pre&gt;at the end of /etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Start crasplan&lt;/i&gt;&lt;br /&gt;
&lt;pre&gt;/etc/init.d/crashplan start&lt;/pre&gt;Remember to give it some time (like 5 minutes) before connecting. Crashplan can be slow to start up.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Connect to crashplan using ssh tunnel&lt;/i&gt;&lt;br /&gt;
See how to do that here:&lt;br /&gt;
http://support.crashplan.com/doku.php/how_to/configure_a_headless_client&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;log in, configure your backup sets etc....&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;It seems like it is working, but you are not done yet!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5. resolve idendity problem&lt;/b&gt;&lt;br /&gt;
The OS seems to wipe clean /var/lib at each reboot. The problem is that&#39;s where crashplan stores your login information!&lt;br /&gt;
To solve the problem: &lt;pre&gt;cp -p /var/lib/crashplan/.identity /mnt/pools/A/A0/NAS_Extension/crashplan/
vi /mnt/pools/A/A0/NAS_Extension/crashplan/bin/CrashPlanEngine
&lt;/pre&gt;and add: &lt;pre&gt;mkdir -p /var/lib/crashplan
cp -p .identity /var/lib/crashplan/&lt;/pre&gt;after: &lt;pre&gt;echo &quot;Using standard startup&quot;
cd $TARGETDIR&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6. Get crashplan to start automatically on reboot&lt;/b&gt;&lt;br /&gt;
You can see how to do that in this post &lt;a href=&quot;http://vincesoft.blogspot.com/2012/01/how-to-run-program-at-boot-on-iomega.html&quot;&gt;How to run a program at boot on Iomega Storcenter&lt;/a&gt;&lt;br /&gt;
You need to add the command: &lt;pre&gt;/etc/init.d/crashplan start &amp;gt;&amp;gt; /opt/init-opt.log
&lt;/pre&gt;to the script /opt/init-opt.sh &lt;br /&gt;
The script will look like this: &lt;pre&gt;#!/bin/sh
# modified from http://techmonks.net/installing-transmission-and-dnsmasq-on-a-nas/
rm /opt/init-opt.log
echo &quot;Last bootup:&quot; &amp;gt;&amp;gt; /opt/init-opt.log
date &amp;gt;&amp;gt; /opt/init-opt.log
/etc/init.d/crashplan start &amp;gt;&amp;gt; /opt/init-opt.log
while true; do
sleep 1d
done
&lt;/pre&gt;afterwards.&lt;br /&gt;
&lt;br /&gt;
You are all done!&lt;br /&gt;
&lt;br /&gt;
Please note that it takes quite some time for crashplan to be available after a reboot. Because of the &#39;nice&#39; level, the process basically waits for all the other boot processes (mostly twonkymediaserv) to finish before being available and sarting to listen on the socket. This takes a good 12 minutes for me.&lt;br /&gt;
&lt;br /&gt;
Let me know if you manage to get the tutorial working for other NAS devices and what you had to change to do that. I&#39;ll try to compile your remarks into another post.&lt;br /&gt;
If this tutorial saved you 10 hours of messing around with your NAS, you can offer me a beer (a coffe or a tea would do as well)!&lt;br /&gt;
&lt;form action=&quot;https://www.paypal.com/cgi-bin/webscr&quot; method=&quot;post&quot;&gt;&lt;input type=&quot;hidden&quot; name=&quot;cmd&quot; value=&quot;_s-xclick&quot;&gt; &lt;input type=&quot;hidden&quot; name=&quot;encrypted&quot; value=&quot;-----BEGIN PKCS7-----MIIHFgYJKoZIhvcNAQcEoIIHBzCCBwMCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYBrv1CbKtcysT2rUDgYbifTV1hG9OYYaXyP42qzyhIL5VhSY+dKdfrx9qLXSDm5fTU6OQdtGy2SLHu4lsCfrzbXz+e3ptT8hrLxaSQ4Ld35FcHCRP9Yoe7JaBePuOiu8BuD1xIbsDb8HZf+rVB+J9D355W61R4F0ei6Z7GAHnFDwDELMAkGBSsOAwIaBQAwgZMGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIKCF+sqXy3OyAcMaOr8o13vP0J2a5ILri45hjEltNvLqNq0GSeKhxTULR0EuK6+FEU1NtT3eV8egR0hznn84yA2CJbWVJfAGYwSTaeQ1eXQmYoIQCAEu9E3GoIYafz5IQJduq4IkS9gbRKxPAILxsHMkjHiZQHMuGXXugggOHMIIDgzCCAuygAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wHhcNMDQwMjEzMTAxMzE1WhcNMzUwMjEzMTAxMzE1WjCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMFHTt38RMxLXJyO2SmS+Ndl72T7oKJ4u4uw+6awntALWh03PewmIJuzbALScsTS4sZoS1fKciBGoh11gIfHzylvkdNe/hJl66/RGqrj5rFb08sAABNTzDTiqqNpJeBsYs/c2aiGozptX2RlnBktH+SUNpAajW724Nv2Wvhif6sFAgMBAAGjge4wgeswHQYDVR0OBBYEFJaffLvGbxe9WT9S1wob7BDWZJRrMIG7BgNVHSMEgbMwgbCAFJaffLvGbxe9WT9S1wob7BDWZJRroYGUpIGRMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIFfOlaagFrl71+jq6OKidbWFSE+Q4FqROvdgIONth+8kSK//Y/4ihuE4Ymvzn5ceE3S/iBSQQMjyvb+s2TWbQYDwcp129OPIbD9epdr4tJOUNiSojw7BHwYRiPh58S1xGlFgHFXwrEBb3dgNbMUa+u4qectsMAXpVHnD9wIyfmHMYIBmjCCAZYCAQEwgZQwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tAgEAMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMTExMjIxNDI5MDFaMCMGCSqGSIb3DQEJBDEWBBQaujO4gGjKZMpg2SVfSXe9Pm6ujDANBgkqhkiG9w0BAQEFAASBgHbOfV9lOaLYk8axVS0u4ny2AkXRjD+Pgd/L7F55eJKjuwEgu7f7fCKkeE+wOTTGoREOStJoWk4eYTkG8ZqubMouNjVPDBxnE7+96Y7bX+EUL5yZyCzAnWZE5z73Bj47tH7CGvrXxn3ev0n85lSPPwaPVAsHnsIGsz2w0a79eyyf-----END PKCS7-----
&quot;&gt; &lt;input type=&quot;image&quot; src=&quot;https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif&quot; border=&quot;0&quot; name=&quot;submit&quot; alt=&quot;PayPal - The safer, easier way to pay online!&quot;&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif&quot; width=&quot;1&quot; height=&quot;1&quot;&gt; &lt;/form&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7. Faq:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;Q1: The Crashplan engine starts but fails after a few seconds/minutes&lt;/i&gt;&lt;br /&gt;
Chances are you libjtux is not properly updated.... retry to download it.&lt;br /&gt;
You should see the following stack trace when you do&lt;br /&gt;
&lt;pre&gt;cat /mnt/pools/A/A0/NAS_Extension/crashplan/log/engine_error.log
java.lang.UnsatisfiedLinkError: /mnt/pools/A/A0/NAS_Extension/crashplan/libjtux.so: /mnt/pools/A/A0/NAS_Extension/crashplan/libjtux.so: cannot open shared object file: No such file or directory (Possible cause: can&#39;t load IA 32-bit .so on a ARM-bit platform)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
        at java.lang.Runtime.loadLibrary0(Runtime.java:845)
        at java.lang.System.loadLibrary(System.java:1084)
        at jtux.UUtil.init(UUtil.java:14)
        at jtux.UProcess.&lt;clinit&gt;(UProcess.java:30)
        at com.code42.os.posix.PosixProcessCommands.getuid(PosixProcessCommands.java:57)
        at com.backup42.service.CPService.logIds(CPService.java:1164)
        at com.backup42.service.CPService.start(CPService.java:396)
        at com.backup42.service.CPService.main(CPService.java:1552)
&lt;/pre&gt;&lt;br /&gt;
&lt;i&gt;Q2: The Crashplan engine seems fine but it is never backing up anything&lt;/i&gt;&lt;br /&gt;
You should see the following stack trace when you do (it takes some time (like 5-10 minutes) before you get the stack trace, just be patient): &lt;pre&gt;cat /mnt/pools/A/A0/NAS_Extension/crashplan/log/engine_error.log
Exception in thread &quot;W10189988_ScanWrkr&quot; java.lang.NoClassDefFoundError: Could not initialize class com.code42.jna.inotify.InotifyManager
        at com.code42.jna.inotify.JNAInotifyFileWatcherDriver.&lt;init&gt;(JNAInotifyFileWatcherDriver.java:21)
        at com.code42.backup.path.BackupSetsManager.initFileWatcherDriver(BackupSetsManager.java:376)
        at com.code42.backup.path.BackupSetsManager.startScheduledFileQueue(BackupSetsManager.java:314)
        at com.code42.backup.path.BackupSetsManager.access$1600(BackupSetsManager.java:64)
        at com.code42.backup.path.BackupSetsManager$ScanWorker.delay(BackupSetsManager.java:1007)
        at com.code42.utils.AWorker.run(AWorker.java:158)
        at java.lang.Thread.run(Thread.java:722)
&lt;/pre&gt;In this case, it is likely jna-3.2.5.jar is not working. Try to install it again.&lt;br /&gt;
The same error can be caused by the fact that you miss libffi.so.5 or it is not found by ld. To make sure your problem is linked to libffi, you can try: &lt;pre&gt;cd /mnt/pools/A/A0/NAS_Extension/crashplan/
mkdir tmp
cd tmp
unzip ../jna-3.2.5.jar
ld com/sun/jna/linux-arm/libjnidispatch.so
&lt;/pre&gt;if ld tells you it can not find libffi.so.5, that&#39;s your problem and you should try to re install libffi.so.5 (don&#39;t forget to change /etc/ld.so.conf).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT 28/10/2012&lt;br /&gt;
I am having this problem now:&lt;br /&gt;
&lt;pre&gt;root@IOMEGA_NAS:/mnt/pools/A/A0/NAS_Extension/crashplan/log# tail -40 engine_error.log
java.lang.UnsatisfiedLinkError: /mnt/pools/A/A0/NAS_Extension/crashplan/libmd5.so: /mnt/pools/A/A0/NAS_Extension/crashplan/libmd5.so: cannot open shared object file: No such file or directory (Possible cause: can&#39;t load IA 32-bit .so on a ARM-bit platform)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
        at java.lang.Runtime.loadLibrary0(Runtime.java:845)
        at java.lang.System.loadLibrary(System.java:1084)
        at com.twmacinta.util.MD5._loadNativeLibrary(MD5.java:727)
        at com.twmacinta.util.MD5._initNativeLibrary(MD5.java:703)
        at com.twmacinta.util.MD5.&lt;init&gt;(MD5.java:124)
        at com.code42.utils.OsPatternList.getChecksum(OsPatternList.java:142)
        at com.code42.utils.PatternList.equals(PatternList.java:350)
        at com.code42.config.ConfigItem.setValue(ConfigItem.java:66)
        at com.code42.config.ConfigXmlTransformer.fromXmlConfigItem(ConfigXmlTransformer.java:445)
        at com.code42.config.ConfigXmlTransformer.fromXmlAConfigItem(ConfigXmlTransformer.java:405)
        at com.code42.config.ConfigXmlTransformer.fromXml(ConfigXmlTransformer.java:306)
        at com.code42.config.ConfigXmlTransformer.fromXmlConfigComponent(ConfigXmlTransformer.java:487)
        at com.code42.config.ConfigXmlTransformer.fromXml(ConfigXmlTransformer.java:308)
        at com.code42.config.ConfigXmlTransformer.fromXml(ConfigXmlTransformer.java:74)
        at com.code42.xml.XmlTool.fromXml(XmlTool.java:176)
        at com.code42.xml.XmlTool.fromXml(XmlTool.java:155)
        at com.code42.config.AConfig.fromXml(AConfig.java:77)
        at com.backup42.common.config.AppConfig.load(AppConfig.java:106)
        at com.backup42.common.config.ServiceConfig.load(ServiceConfig.java:326)
        at com.backup42.service.CPService.loadConfig(CPService.java:675)
        at com.backup42.service.CPService.start(CPService.java:331)
        at com.backup42.service.CPService.main(CPService.java:1622)
&lt;/pre&gt;&lt;br /&gt;
to fix it, just do:&lt;br /&gt;
&lt;pre&gt;cd /mnt/pools/A/A0/NAS_Extension/crashplan/
mv libmd5.so libmd5.so.old
wget http://dl.dropbox.com/u/50398581/crashplan%20on%20NAS/libmd5.so
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
EDIT 08/11/2015&lt;br /&gt;
it looks like you need a more recent version of jna version with Crashplan 4.4.1&lt;br /&gt;
&lt;pre&gt;cd /mnt/pools/A/A0/NAS_Extension/crashplan/lib
mv jna.jar jna.jar.old
wget https://dl.dropboxusercontent.com/u/50398581/crashplan%20on%20NAS/jna-4.2.1.jar
ln -s jna-4.2.1.jar jna.jar
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://vincesoft.blogspot.com/feeds/3174569274834770930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vincesoft.blogspot.com/2011/11/how-to-install-crashplan-on-iomega.html#comment-form' title='30 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/3174569274834770930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/362152363994105982/posts/default/3174569274834770930'/><link rel='alternate' type='text/html' href='http://vincesoft.blogspot.com/2011/11/how-to-install-crashplan-on-iomega.html' title='How to install Crashplan on an IOMEGA Storcenter ix4-200d NAS'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_ip_Fo3XvXRlubrCAAjwtSAMztyHkK2xBeXsZELPHyNY_0SgQaQHjesaNu-vJYzp0Q50fdgQeCKd8gEtBlRiWfSofWQvZrA4Z2cdwK-bqVitI3SFfq250UR3tgqP88a1gp6mRpoImps/s72-c/ix4_200d_large__1.png" height="72" width="72"/><thr:total>30</thr:total></entry></feed>