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.
Tutorial tested on IOMEGA Storcenter ix4-200d firmware 3.1.14.995
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....
1. SSH into your NAS
See my other post: How to ssh into your Iomega StorCenter ix4-200d
2. Directory Structure on the NAS
The Lifeline OS (Iomega'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
You can type:
df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 51200 5652 45548 12% / /dev/root.old 6613 2119 4494 33% /initrd none 51200 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 16775168 3283704 13491464 20% /mnt/system /dev/mapper/2602b0ce_vg-lv43ec31bd 2867212288 1169119852 1698092436 41% /mnt/pools/A/A0to see the partitions and their mountpoint.
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.
3. Use ipkg
ipkg is intalled by default in the Iomega storcenter. We just need to specify the right place to find the packages:
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/unstableThen type:
ipkg updateto build the list of available packages. The problem of this setup is that you won't be able to install some packages because installation will fail because part of the filesystem is readonly.
Thanks to ipkg, there is an easy fix:
ipkg install ipkg-optThis 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't run into problems with the read only filesystem.
The only drawback is that /opt/bin/ is not in your path... There is a simple remedy for that:
PATH=/opt/bin:$PATHNote: this is not persistent (if you start another shell, you will need to do that again).
Also, as a one time persistent thing, I recommand to do
vi /etc/ld.so.confand add
/opt/lib/at the end. That'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).
You also need to do:
mv /opt/etc/ipkg.conf /opt/etc/ipkg.conf.old ln -s /etc/ipkg.conf /opt/etc/ipkg.confso that you config in /etc/ipkg.conf remains useable with /opt/bin/ipkg and /opt/bin/ipkg-opt
Then type:
/opt/bin/ipkg updateto setup the list of available packages for /opt/bin/ipkg /opt/bin/ipkg-opt
4. Install utilities and optware-devel
First install the utilities you miss to do some actual linux stuff:
ipkg-opt install zip unzip bzip2 gzip
If you want a full gcc toolchain to compile your own applications from source.
ipkg-opt install optware-develThe 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)...
5. Install armel/debian compiled software
Unfortunately, you will soon discover that some of the packages you want are not available for ipkg.
You can then either compile your own software (see next point) or get some ready-made debian archives....
In this case, I suggest to use the following command (for example for libsigc++-2.0-dev):
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.debNote: do not use /tmp/ as the space available there is very small...
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.
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...)
6. Compile from source
For example, a very classic install for libnfnetlink:
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 installNote: to get bzip2 to work I had to do before the tar -xvf:
ln -s /opt/bin/bzip2-bzip2 /opt/bin/bzip2Another example using svn
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 installDon't forget the --prefix=/opt to specifiy you want to install your package.
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.
For example, I recently had to edit the configure script of a source tarball to add:
sigc_LIBS='-L/opt/lib/ -lsigc-2.0 -L/lib/' sigc_CFLAGS='-I/opt/usr/include/sigc++-2.0/ -I/opt/usr/lib/sigc++-2.0/include -I/opt/include/ncurses' libcurl_LIBS='-L/opt/lib/ -lcurl' libcurl_CFLAGS='-I/opt/include/' libtorrent_LIBS='-L/opt/lib/ -ltorrent' libtorrent_CFLAGS='-I/opt/include/'-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...
7. Conclusion
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...
nice post!
ReplyDeleteBUT i had a problem on step 3
it seems that if i use "/usr/bin/ipkg list" every thing is working ok
but if I use "/opt/bin/ipkg list" or "/opt/bin/ipkg-opt list" i get no package, I suppose that ipkg in opt/bin are not taking any configuration file
so in step 3 if I run
ipkg-opt install optware
I get an error saying the package do not exist
Thanks for the comment.
DeleteIt seems like I forgot a step... sorry about that.
You should run the commands
mv /opt/etc/ipkg.conf /opt/etc/ipkg.conf.old
ln -s /etc/ipkg.conf /opt/etc/ipkg.conf
(the tutorial is now updated)
3 more corrections:
ReplyDeletestep 3 is labeled twice
before doing the ipkg-opt install stuff you should use ipkg-opt update
and
the ipkg-opt install optware didn worked for me... but ipkg-opt install optware-devel worked fine...
I changed the numbering. You are right about the need to do update before doing install for ipkg-opt: I updated the post. You are also right regarding the optware pacakage: it does not exist... I updated the post as well. Thanks for improving the post!
Deleteonce again thank you for this and other posts!
ReplyDeletenow i'm fighting on installing a postgresql server
everything seems to be working wit ipgk-opt install postgresql and i have edited the pg_hba.conf on opt/var/pgsql/data to trust all the network
but i have some problems when trying to connect from a client in other computer
other things it can be perfect to install in the NAS is a SVN server.
I am pretty sure the NAS isn't blocking any port: your postgres problem must be linked to a postgres config issue. You should be able to get some help on a postgres forum...
Deletei can't seem to get sabnzbd to run it needs cheetah and i can't get that working, was hoping to install that plus sick beard and couch potato ;)
ReplyDeletedid you try:
Delete/opt/bin/ipkg-opt install sabnzbdplus
?
I am not sure it works as I don't use the package myself... let me know if you get an error message.
thanks it installed but now i don't know where it is? lol
DeleteActually, I may have an interest in the package so I looked into it a bit...
Deletein this case, you can run:
/opt/bin/ipkg-opt files sabnzbdplus
after installing.
you'll see that the soft is in:
/opt/share/SABnzbd#
do
cd /opt/share/SABnzbd
./SABnzbd.py -s 0.0.0.0:8080
to start
you need to put 0.0.0.0 so that the web service can be accessed from other computers (it is just accessible locally otherwise).
Then, point your browser to http://ip.of.your.nas:8080/sabnzbd or even http://nas_name:8080/sabnzbd
you might want to look at:
http://kevin.vanzonneveld.net/techblog/article/install_sabnzbd_on_your_synology/
for the startup scripts and Sickbeard/Couchpotato install
sweet thanks ;)
Deleteit needs an update bad if you decide to compile and make a package could you let me know ;)
Deletehmm might be better to hack together nzbget to do like sabnzb my download speeds were pretty slow i mean i guess 4mins for a 800mb movie is not bad lol, but I'm used to 8 to 10 MB/s
ReplyDeleteyes i believe nzbget is the way to go ;) just need to figure how to make it start in in demon mode and then i need to test is i can use the par and unrar stuff
ReplyDeletehttp://kevin.vanzonneveld.net/techblog/article/optimize_your_synology_for_downloading/ has lots of good info ;)
any ideas?
ReplyDeletepython SickBeard.py
Traceback (most recent call last):
File "SickBeard.py", line 44, in
from sickbeard.webserveInit import initWebServer
File "/mnt/system/opt/bin/sickbeard/sickbeard/webserveInit.py", line 26, in
from sickbeard.webserve import WebInterface
File "/mnt/system/opt/bin/sickbeard/sickbeard/webserve.py", line 30, in
from Cheetah.Template import Template
ImportError: No module named Cheetah.Template
did you try to use /opt/bin/python intead of just python (which is the one installed by iomega)?
Deletemaybe i will just leave sick beard and couch potato on the mac and then they can send the stuff to nzbget, tho there have been some issues with nzb being sent to nzbget
Delete/opt/bin/python2.5 SABnzbd.py
ReplyDeleteTraceback (most recent call last):
File "SABnzbd.py", line 65, in
import sabnzbd
File "/mnt/system/opt/bin/SABnzbd/sabnzbd/__init__.py", line 85, in
import sabnzbd.api
File "/mnt/system/opt/bin/SABnzbd/sabnzbd/api.py", line 29, in
locale.setlocale(locale.LC_ALL, "")
File "/opt/lib/python2.5/locale.py", line 478, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
Sorry Dade, I don't have any ideas on the top of my head and I won't be able to look into it for a while because I have a family emergency I need to attend to....
Deletehope everything is ok
Deletehey hope all is well,
ReplyDeletecurious if you would try to install newznab a usenet indexer on the storcenter ;p
nm last comment lol i just setup a linux box for this would be too slow for storcenter
ReplyDeletehello, I got follwing error :
ReplyDeleteCollected errors:
ipkg_download: ERROR: Command failed with return value 127: `wget --passive-ftp -q -P /opt/ipkg-wOqpSc http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/Packages'
.. but the package is there ...any idea ?
thx
Can you try:
Deletewget --passive-ftp -P /tmp/ http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/Packages
from the command line and tell me if you get a more detailed error message?
wget --passive-ftp -P /tmp/ http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/Packages
Delete--2012-05-18 14:52:00-- http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/Packages
Resolving ipkg.nslu2-linux.org... 140.211.169.161
Connecting to ipkg.nslu2-linux.org|140.211.169.161|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 517504 (505K) [text/plain]
Saving to: `/tmp/Packages'
100%[======================================>] 517,504 387K/s in 1.3s
2012-05-18 14:52:03 (387 KB/s) - `/tmp/Packages' saved [517504/517504]
Johan
Hello VDM,
ReplyDeleteIt's working I changed to de /opt/bin and executed with ./ipkg-opt install lighttpd and it's working ..
No idea why, yesterdaf this wasn't working .. but perhaps I made a mistake.
So , no need to investigate but my respect for the quick effort to help !!!
I've followd this thread but i have some problems after restarting nas.
ReplyDelete1st i've to manualy start "etc/rc2.d/S99Sickbeard.sh start"
2nd is that al my settings are gone from sickbeard and sabnzbd
3rd is that par2, unrar and unzip are gone to
what am i doing wrong?
I suppose you have an IOMEGA storcenter.
Delete1. did you look at my tutorial: http://vincesoft.blogspot.com/2012/01/how-to-run-program-at-boot-on-iomega.html ?
you need to add your command to /opt/init-opt.sh to have it start automatically at boot. rc2.d is not run at boot in an IOMEGA storcenter....
2. all the config files have to be in /opt : most of the file system is cleaned/refreshed on reboot. where were the files that are gone?
3. are you saying that /opt/bin/unzip is gone? if you are just typing unzip at the invite, make sure /opt/bin is in the PATH (to do that, PATH=$PATH:/opt/bin).
I don't have unrar on my system, but I guess the problem is the same.
Thanks, another problem occured after the tut. from 1)
Deleteafter editing the sohoprocs the ix4 wont but up anymore and hangs on 75%. I can restore from usb stick and it wil work again. tried it several times now als i with other firmware but stil crashes at 75%.
3) where exactly do i put the path command? if i do this in cosole and i close the console, the patch is gone after reboot.
2)if the path is set, the programs wil work. but settings still wont be saved. the files are in /opt/.
I'am just looking into linux the past 2 days, its al new to me...
1. sorry, no idea on this one. just glad you were able to restart the NAS
Delete3. as of myself, I just set the PATH every time I start a console. If I want to have the correct PATH in a script, I just add PATH=$PATH:/opt/bin at the begining of the script (you can edit a init.d script and add this in the first line)
2. that's strange. were you able to override the location of the setting file to /opt ? If you stop the process and restart it without rebooting the NAS, are your settings ok?
I dont suppose there is a way to get a vpn server running on this box?
ReplyDeleteActually, I don't see why not....
DeletePATH=$PATH:/opt/bin
ipkg-opt install lzo
ipkg-opt install openvpn
I get the warning
openvpn: unsatisfied recommendation for kernel-module-tun
but I don't know if that's really a problem.
Let us know how it works!
just to finish the discussion, openvpn won't work without the tun kernel module....
DeleteYou could always try to recompile the module from the kernel sources.... Last time I tried (for another module), I failed....
Hi there,
ReplyDeleteis there a way to install a NZB-Grabber or Usenet-Client or something?
If yes, how exactly?
I don't want to mess up my system because I am not _that_ good on linux boxes.
Thanks in advance!
Jan
Just right now I am testing on the ix2, works fine so far (Steps 1-4), just have to think about what packages i want to install :)
ReplyDeletesomebody tried to install "autosub" from bierdopje.com to install on the ix4-200d. i've managed to install sichbeard + sabnzbd with these tutorials but if someone can write a tut to install autosub as wel?
ReplyDeletethen the only thing i have to do is put my tv on and my ix4 to watch tv :P
finally i decided what i want to do with my ix2, but i am somehow stuck. I am trying to set up a mysql server. so far i have been able to install it and i copied the startup-script to
ReplyDelete/etc/init.d/mysql.server
update-rc.d mysql.server defaults
created the correct symlinks, calling the script manually
/etc/init.d/mysql.server start
starts the server just fine, but booting won't. /opt/bin is not added to PATH either, but the script should do it by
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/opt/bin:$PATH
Any ideas what causes this? Starting the Server manually works, but doing so manually everyday (tiny appartement, NAS is shut down over night) can't be the only solution
if the ix2 works like the ix4, you can follow this tutorial:
Deletehttp://vincesoft.blogspot.fr/2012/01/how-to-run-program-at-boot-on-iomega.html
You can actually install the MySQL Server for ix4-300d lifeline app.
ReplyDeleteIt seems to work fine on my ix2-dl, I just need to figure out how to configure remote access.
Hi Vince,
ReplyDeletePlease can you help me?
I'm trying to install openjdk-6-jre-headless, openjdk-6-jre, openjdk-6-jdk following your clue but I'm receiving the following error:
root@ix2-200:/var/cache/apt/archives# dpkg --instdir=/opt/ --admindir=/opt/dpkg/ -i openjdk-6-jre_6b18-1.8.13-0+squeeze2_armel.deb
(Reading database ...
dpkg: serious warning: files list file for package `openjdk-6-jre-headless' missing, assuming package has no files currently installed.
dpkg: serious warning: files list file for package `openjdk-6-jre' missing, assuming package has no files currently installed.
24210 files and directories currently installed.)
Preparing to replace openjdk-6-jre 6b18-1.8.13-0+squeeze2 (using openjdk-6-jre_6b18-1.8.13-0+squeeze2_armel.deb) ...
dpkg (subprocess): unable to execute new pre-installation script: No such file or directory
dpkg: error processing openjdk-6-jre_6b18-1.8.13-0+squeeze2_armel.deb (--install):
subprocess pre-installation script returned error exit status 2
dpkg (subprocess): unable to execute new post-removal script: No such file or directory
dpkg: error while cleaning up:
subprocess post-removal script returned error exit status 2
Errors were encountered while processing:
openjdk-6-jre_6b18-1.8.13-0+squeeze2_armel.deb
Regards,
Pierre
sorry, no idea...
Delete3.1.14.995 gibt es nicht für Iomega StorCenter ix4-200d
ReplyDeleteI have a Storcenter ix4-200d cloud edition and that was the version on it when I bought it. I would not be surprised if there there are newer versions now...
Delete3.1.14.995 is for the ix4-200D Cloud Edition
ReplyDeleteWithout the cloud edition the latest is 2.1.42.18967
don't know the difference only and if the cloud firmware is compatible
I can't get past the last part of step 3.
ReplyDeleteI don't have the cloud edition.
What to do?
Its a problem with libidn.so.11? Can I install this manually?
root@NAS:/# /opt/bin/ipkg update
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/Packages
wget: error while loading shared libraries: libidn.so.11: cannot open shared object file: No such file or directory
An error ocurred, return value: 1.
Collected errors:
ipkg_download: ERROR: Command failed with return value 127: `wget --passive-ftp -q -P /opt/ipkg-ExgmfJ http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/Packages'
root@NAS:/# ipkg-opt install optware-devel
Installing optware-devel (6.8-10) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/optware-devel_6.8-10_arm.ipk
wget: error while loading shared libraries: libidn.so.11: cannot open shared object file: No such file or directory
Nothing to be done
An error ocurred, return value: 22.
Collected errors:
ipkg_download: ERROR: Command failed with return value 127: `wget --passive-ftp -q -P /opt/ipkg-o9cx3g http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/optware-devel_6.8-10_arm.ipk'
Failed to download optware-devel. Perhaps you need to run 'ipkg update'?
root@NAS:/#
On the Standard edition (not Cloud) you also have to install libidn!!!
ReplyDeleteipkg install libidn
hi guy ,
DeleteI have a similar problem that :
AQuablogMarch 30, 2013 at 6:57 PM
at the stage :
"4. Install utilities and optware-devel"
...
An error ocurred, return value: 22.
Collected errors:
ipkg_download: ERROR: Command failed with return value 127: `wget --passive-ftp -q -P /opt/ipkg-zA0d3x http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/libidn_1.25-1_arm.ipk'
Failed to download libidn. Perhaps you need to run 'ipkg update'?
-----------------------------------------
I try to fixe it with :
ipkg install libidn
but it doesn't work :
root@storage:/# ipkg install libidn
Installing libidn (1.25-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/libidn_1.25-1_arm.ipk
wget: error while loading shared libraries: libidn.so.11: cannot open shared object file: No such file or directory
Nothing to be done
An error ocurred, return value: 22.
Collected errors:
ipkg_download: ERROR: Command failed with return value 127: `wget --passive-ftp -q -P /opt/ipkg-qWMRlA http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/libidn_1.25-1_arm.ipk'
Failed to download libidn. Perhaps you need to run 'ipkg update'?
root@storage:/#
do you have an idea ?
have a nice day
Thank you so much!, it works like a charm in my ix2-200 ce
ReplyDeleteHello & Thanx for this topic,
ReplyDeleteI'm french and I don't all understand about this topic, how can I do to type the different lines on my NAS ?? I've got an IX2 and I try to install an EASYPHP on it in order to put on it a website on my local network ...
Thanx for the answer
Hi, thank you for your post!
ReplyDeleteI try to configure my ix4-300d NAS as a SVN Server, but i am not sure how to do it. It is possible with this device, or it is better if i buy a diffrent hardware?
If I update to latest firmware I have to do again this installation?
ReplyDeleteI did not try to upgrade, but I would expect you would need to re-do some of the steps....
Delete