Tuesday, November 22, 2011

How to install Crashplan on an IOMEGA Storcenter ix4-200d NAS



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!
Tutorial tested on IOMEGA Storcenter ix4-200d firmware 3.1.14.995
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).

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)...
This tutorial assumes some basic linux and vi knowledge...

EDIT: This tutorial was used as a base for tutorials for Synology on powerpc at http://chreggy.fr/thegeek/2012/01/10/crashplan-sur-un-synology-powerpc-ds109/ and also for a packaged form of the installer for Synology on a Marvell Kirkwood or Intel CPU at http://pcloadletter.co.uk/2012/01/30/crashplan-syno-package/. 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!


1. Enable SSH on the NAS
Go to
http://your-nas-adress/diagnostics.html
click "enable SSH"
on older firware versions, I understand an equivalent page could be found at:
http://your-nas-adress/support.html

If the admin password of the NAS is "pass" the root password to use in ssh is sohopass.(thanks http://planetkris.com/2010/05/iomega-storcenter-ix2-ssh-email-notifications-and-busybox-init-d)


2. Create a share where we will install our stuff
Create a share called NAS_Extension using the web interface
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)


3. Install java
Because of oracle licensing, you can't download the file directly. Go there:
http://www.oracle.com/technetwork/java/embedded/downloads/javase/index.html
and download the ejre corresponding to "ARMv5 Linux - Headless" under "Java SE for Embedded 7"
The file should be called ejre-7-fcs-b147-linux-arm-sflt-headless-27_jun_2011.tar.gz
Store it into the NAS_Extension partition you just created using your regular way of accessing the NAS.

TODO: Everything should work with openJDK as well. I'll try to update the tutorial when I get a chance.

configure ssh on you computer and access the NAS (windows users can use putty.exe available here http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
In the NAS command line, type:
cd /mnt/pools/A/A0/NAS_Extension
tar -xvf ejre-7-fcs-b147-linux-arm-sflt-headless-27_jun_2011.tar.gz
That's it!


4. Install crashplan
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
and leave the default setting (press enter) for all the questions except:
What directory do you wish to install CrashPlan to? /mnt/pools/A/A0/NAS_Extension/crashplan/
vi /etc/init.d/crashplan
And add at the beginning of the script (line 18)
PATH=$PATH:/mnt/pools/A/A0/NAS_Extension/ejre1.7.0/bin
export PATH

Now, some shared objects (native libraries) need to be replaced in order for Crashplan to work (precompiled versions are available).
Replace libjtux.so in /mnt/pools/A/A0/NAS_Extension/crashplan/:
cd ../crashplan/
cp libjtux.so libjtux.so.bak
wget http://dl.dropbox.com/u/50398581/crashplan%20on%20NAS/libjtux.so
(credit to https://crashplan.zendesk.com/entries/390250-crashplan-on-sheevaplug)

Replace jna.jar in /mnt/pools/A/A0/NAS_Extension/crashplan/lib/:
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
(shared object extracted from the debian package http://packages.debian.org/sid/armel/libjna-java/download and reinjected into Crashplan jna jar. Thanks to http://www.opticality.com/blog/2011/07/16/installing-crashplan-on-a-pogoplug-pro/ for the idea)

Replace libffi.so (required for jna and not available by default):
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
add
/mnt/pools/A/A0/NAS_Extension/
at the end of /etc/ld.so.conf

Start crasplan
/etc/init.d/crashplan start
Remember to give it some time (like 5 minutes) before connecting. Crashplan can be slow to start up.

Connect to crashplan using ssh tunnel
See how to do that here:
http://support.crashplan.com/doku.php/how_to/configure_a_headless_client

log in, configure your backup sets etc....

It seems like it is working, but you are not done yet!


5. resolve idendity problem
The OS seems to wipe clean /var/lib at each reboot. The problem is that's where crashplan stores your login information!
To solve the problem:
cp -p /var/lib/crashplan/.identity /mnt/pools/A/A0/NAS_Extension/crashplan/
vi /mnt/pools/A/A0/NAS_Extension/crashplan/bin/CrashPlanEngine
and add:
mkdir -p /var/lib/crashplan
cp -p .identity /var/lib/crashplan/
after:
echo "Using standard startup"
cd $TARGETDIR


6. Get crashplan to start automatically on reboot
You can see how to do that in this post How to run a program at boot on Iomega Storcenter
You need to add the command:
/etc/init.d/crashplan start >> /opt/init-opt.log
to the script /opt/init-opt.sh
The script will look like this:
#!/bin/sh
# modified from http://techmonks.net/installing-transmission-and-dnsmasq-on-a-nas/
rm /opt/init-opt.log
echo "Last bootup:" >> /opt/init-opt.log
date >> /opt/init-opt.log
/etc/init.d/crashplan start >> /opt/init-opt.log
while true; do
sleep 1d
done
afterwards.

You are all done!

Please note that it takes quite some time for crashplan to be available after a reboot. Because of the 'nice' 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.

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'll try to compile your remarks into another post.
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)!


7. Faq:
Q1: The Crashplan engine starts but fails after a few seconds/minutes
Chances are you libjtux is not properly updated.... retry to download it.
You should see the following stack trace when you do
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'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.(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)

Q2: The Crashplan engine seems fine but it is never backing up anything
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):
cat /mnt/pools/A/A0/NAS_Extension/crashplan/log/engine_error.log
Exception in thread "W10189988_ScanWrkr" java.lang.NoClassDefFoundError: Could not initialize class com.code42.jna.inotify.InotifyManager
        at com.code42.jna.inotify.JNAInotifyFileWatcherDriver.(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)
In this case, it is likely jna-3.2.5.jar is not working. Try to install it again.
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:
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
if ld tells you it can not find libffi.so.5, that's your problem and you should try to re install libffi.so.5 (don't forget to change /etc/ld.so.conf).


EDIT 28/10/2012
I am having this problem now:
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'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.(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)

to fix it, just do:
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


EDIT 08/11/2015
it looks like you need a more recent version of jna version with Crashplan 4.4.1
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

30 comments:

  1. Thanks for this great tutorial. I used it on my StorCenter ix2

    You seem to be missing a couple of steps.

    After installing the JRE, you need to add it to your path before you can run the crashplan installer:
    PATH=$PATH:/mnt/pools/A/A0/NAS_Extension/ejre1.7.0/bin;export PATH

    Before you can configure the ssh tunnel you need to start the crashplan engine:
    /etc/init.d/crashplan start

    Also, if you are on an internal network, you don't need to use an ssh tunnel. If you edit conf/my.service.xml and change the from 127.0.0.1 to 0.0.0.0 you can directly connect to the engine.

    ReplyDelete
  2. I've tried to install CrashPlan on my Iomega Home Media Network nas.
    Some remarks:
    1) The public downloadable file Ejre-7-fcs-b147-linux-arm-sflt-headless-27_jun_2011.tar.gz file has not the first letter capitalized. I have to use "e" in place of "E" in following commands.
    2) As already pointed out by the previous commenter, the PATH has to be updated before installing CrashPlan.
    3) Please write "jna-3.2.5.jar" in place to "jna-3.2.2.jar".
    4) Please write "/etc/ld.so.conf" in place of "/etc/ld.conf".
    Now I need your help.
    I have read page http://support.crashplan.com/doku.php/how_to/configure_a_headless_client but I am unable to connect to my nas, nor using putty nor using ssh (I get always "connection refused"), even if CrashPlan appears correctly installed, and ports 4242 and 4243 are listed by netstat command. Moreover, I am not able to undestand the suggestion of previous commenter (which my.service.xml have I to change? the one on the nas, or the one on the pc?) So, how can I configure CP on my nas? Thank you.

    ReplyDelete
    Replies
    1. This version of java (ejre-7-b147-fcs-linux-arm-sFlt-headless-27_jun_2011.tar.gz) works in the Iomega Home Media Network Cloud Edition?? What is the installation procedure?

      Delete
  3. sorry for the late answer...
    @TWForeman Regarding adding the jre to the path: that was the purpose of step 4: vi /etc/init.d/crashplan adding it to the path should serve the same purpose.
    /etc/init.d/crashplan start: thanks for that, I edited the tutorial

    @Unknown
    Thanks for correcting the typos. I updated the post.
    I don't have access to my NAS right now, I'll look into TWForeman suggestion and I'll come back to you.
    If ssh is running correctly on the NAS, you should be able to open a tunnel... When you open putty on your computer to set up the tunnel, do you press the add button (step 3 of How It Works - Using PuTTY in the "configure a headless client" tutorial)?
    Did you try the telnet connection: telnet localhost 4200 to see if the tunnel works? maybe the problem is not the tunnel but the setup of crashplan on your computer...

    ReplyDelete
  4. @Unknown
    instead of opening an ssh tunnel you can
    - on the NAS: edit conf/my.service.xml and change the 127.0.0.1 to 0.0.0.0
    - on the computer: edit conf/ui.properties set serviceHost=IP_OF_YOUR_NAS
    leave all the other lines commented.
    Your computer UI should now connect to the NAS crashplan engine.
    Thanks to TWForeman for the tip.

    ReplyDelete
    Replies
    1. Well, in the meantime I was able to install ssh on Iomega Home Media and now I have CP working like a charm. :)
      On this model CP starts automatically on reboot, so step 6 in totally unneeded.
      Thank you Vincent also for you instructions on how to connect to the nas without ssh. I have tested them and all went fine.
      Thank you very much.

      Delete
  5. I've verified all of the steps form the FQA and especially libjna and libffi. However, things seem to be dieing at an earlie stage in the backup, and it looks like inotify is not working at all. The GUI just sits there with a "Waiting for Backup" message. Help? The contents of engine_error.log is:

    Exception in thread "W26760688_ScanWrkr" java.lang.NoClassDefFoundError: Could not initialize class com.code42.jna.inotify.InotifyManager
    at com.code42.jna.inotify.JNAInotifyFileWatcherDriver.(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)

    ReplyDelete
    Replies
    1. @Brad
      it is definately a jna issue.
      did you try the ld command of the FAQ? is libffi found by ld? if not, did you update ld.conf?
      What hardware are you using? what kind of proc inside? it may be that libffi is not compiled properly for your system.
      please give as much details as possible and I'll see what I can do...

      Delete
    2. This is on an Iomega IX2-200. Uname gives me: Linux 2.6.31.8 #1 Thu Feb 17 18:15:07 EST 2011 armv5tel GNU/Linux

      When I try an un the ld it doesn't mention libff, but says:
      $ ld libjnidispatch.so
      ld: warning: cannot find entry symbol _start; defaulting to 00008238
      libjnidispatch.so: undefined reference to `dlsym'
      libjnidispatch.so: undefined reference to `dlerror'
      libjnidispatch.so: undefined reference to `dlopen'
      libjnidispatch.so: undefined reference to `dlclose'

      Delete
    3. I had the same problem on my synology. What I did to fix it was to copy the "/mnt/pools/A/A0/NAS_Extension/crashplan/tmp/com" (extracted jar file) to /mnt/pools/A/A0/NAS_Extension/crashplan/ (or my equivalent directory on my synology box), restart and it worked as a charm!

      Delete
    4. @urban

      tried copying the whole com/ directory tree to crashplan but it made no difference. I also tried finding updated libffi.so and libjnidispatch.so for armv5tel. This didn't help though I'm still stuck with errors from ld:

      # ld com/sun/jna/linux-arm/libjnidispatch.so
      ld: warning: cannot find entry symbol _start; defaulting to 00008298
      com/sun/jna/linux-arm/libjnidispatch.so: undefined reference to `dlsym'
      com/sun/jna/linux-arm/libjnidispatch.so: undefined reference to `dlerror'
      com/sun/jna/linux-arm/libjnidispatch.so: undefined reference to `dlopen'
      com/sun/jna/linux-arm/libjnidispatch.so: undefined reference to `dlclose'

      #ld libffi.so.5
      ld: warning: cannot find entry symbol _start; defaulting to 00008244

      Delete
  6. OK, I think I figured it out. Despite editing /etc/ld.so.conf it wasn't picking up the shared libraries, and specifically the LD_LIBRARY_PATH environment variable wasn't set. I added "export LD_LIBRARY_PATH=/mnt/pools/A/A0/NAS_Extension/libraries/:/mnt/pools/A/A0/NAS_Extension/crashplan/com/sun/jna/linux-arm/" after "cp -p /mnt/pools/A/A0/NAS_Extension/crashplan/.identity /var/lib/crashplan/" in crashplan/bin/CrashPlanEngine and off it goes!

    /mnt/pools/A/A0/NAS_Extension/libraries/ is where I put libffi.so.5 and /pools/A/A0/NAS_Extension/crashplan/com/sun/jna/linux-arm/ is the extracted jar file. I may not need the later but I haven't tried it without yet.

    ReplyDelete
    Replies
    1. glad to hear it worked for you

      Delete
    2. I have the same IX2, but am unable to get it to work (I have tried all sugestions by Brad and Aurelius, and it is still giving the error:
      Exception in thread "W24966031_ScanWrkr" java.lang.NoClassDefFoundError: Could not initialize class com.code42.jna.inotify.InotifyManager
      at com.code42.jna.inotify.JNAInotifyFileWatcherDriver.(JNAInotifyFileWatcherDriver.java:21)
      at com.code42.backup.path.BackupSetsManager.initFileWatcherDriver(BackupSetsManager.java:393)
      at com.code42.backup.path.BackupSetsManager.startScheduledFileQueue(BackupSetsManager.java:331)
      at com.code42.backup.path.BackupSetsManager.access$1600(BackupSetsManager.java:66)
      at com.code42.backup.path.BackupSetsManager$ScanWorker.delay(BackupSetsManager.java:1073)
      at com.code42.utils.AWorker.run(AWorker.java:158)
      at java.lang.Thread.run(Thread.java:722)

      Delete
    3. It looks like i have it working... I downloaded a different libffi.so.5:
      http://dl.dropbox.com/u/50398581/crashplan%20on%20NAS/libffi.so.5

      Thanks to fezzawinkle: http://www.openstora.com/phpBB3/viewtopic.php?f=1&t=904&start=0

      Delete
  7. Thanks for a great tutorial.

    I got stuck right near the end with the shared libraries problem. I had installed everything under /opt (eg; /opt/crashplan) so to get things working I made sure I have all the libraries in /opt/crashplan and that I add this to /etc/ld.so.conf and I did Brad's addition to CrashPlanEngine as well.

    My Iomega IX2-200 didn't have 'unzip' so I manually extracted libjnidispatch.so on another machine and copied it over. Put it in /opt/crashplan - not neat but it worked

    Thanks again

    ReplyDelete
    Replies
    1. Thanks for reporting your success.

      Please note that -should you need it again- you could install zip/unzip on your NAS as an ipkg package (using ipkg-opt). You can see how to do that in this post: http://vincesoft.blogspot.com/2012/01/how-to-install-software-into-your.html

      Delete
  8. Crashplan 3,2 has broken my build.

    Does anyone know where to get a copy of libmd5.so?

    ReplyDelete
    Replies
    1. I don't think it is broken: I get a stack:
      log# cat 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'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)
      but the backup process seem to work ok.
      http://www.twmacinta.com/myjava/fast_md5_javadocs/com/twmacinta/util/MD5.html seems to indicate that com.twmacinta.util.MD5 falls back to slower java implementation of MD5 when native lib is not found.
      I'll try to find a libmd5.so for ARM to improve speed but I don't think that's critical

      Delete
    2. as there is no JDK for ARM/linux, I don't manage to compile the MD5 lib for ARM/linux....
      I tried to update bin/run.conf to add: -Dcom.twmacinta.util.MD5.NO_NATIVE_LIB=true to disable the native MD5 lib (and avoid the error message) but it does not seem to work.

      If you really want to avoid the error message, you could change the file com/twmacinta/util/MD5.class in lib/com.backup42.desktop.jar to disable the native lib. I don't think that's necessary: crasplan still works ok in spite of the error message...

      Delete
  9. Thanks a lot for this tutorial! I got crashplan working on my newly purchased DLink DNS-325 with a 3TB HDD. I will write up something later.

    ReplyDelete
  10. If anyone else comes across the java "exception in thread" error, here is the solution that worked for me:

    http://randomwindowstips.wordpress.com/2013/02/25/crashplan-pro-for-linux-stuck-at-waiting-for-backup-or-connecting-to-backup-destination/

    ReplyDelete
  11. someone who can help me out with this error?
    looks like to many slashes, but cant figure out where I made a typo

    /mnt/pools/A/A0/NAS_Extension/crashplan//jre/bin/java: /mnt/pools/A/A0/NAS_Extension/crashplan//jre/bin/java: cannot execute binary file

    ReplyDelete
  12. Bernard, I got the same error message. Did you find a solution for the error message "cannot execute binary file"?

    ReplyDelete
    Replies
    1. It looks like the startup script has been changed on the newer version of Crashplan and setting the path to override the jre will not work.
      Edit $CRASHPLANINSTALLDIR/install.vars and change
      JAVACOMMON to the bin path of wherever you installed the oracle armv5 jre

      Delete
    2. It also works to remove java from the crashplan/jre/bin directory and then create a softlink to the armv5 jre java executable.

      Delete
  13. @Bernard, @Eric, I'm just going through a fresh install and had this problem today. For me, CrashPlan automatically installed a version of java even though I had already installed java myself as in step 3. I went into /crashplan/install.vars and changed the value of JAVACOMMON to point to the one I installed myself. This solved the problem for me and CrashPlan started up.

    ReplyDelete
  14. I am linux noob... i can't seem to install this properly. I have done everything to a T and the service "says" it starts ok...but I can not find .ui_info to check with a headless client

    Please help

    ReplyDelete
    Replies
    1. There have a been a few updates to crashplan that require the .ui_info. You can basically follow instruction at http://chrisnelson.ca/2015/07/02/fixing-crashplan-4-3-0-on-synology/comment-page-4/#comments to fix it.

      As far as the ix2/ix4 is concerned, with the latest version as of now (4.4.1) you need to edit the my.service.xml to make serviceHost the ip of your NAS. Then start the engine and let it create .ui_info, then get this over to your UI client.

      Note that as of 4.4.1, it appears that you have to have at least one valid connection from the UI client to the NAS server for it to resume backing up.

      Also, it looks like in the current jna.jar they included the ARM , so no need to follow the instructions for overwriting the jna-3.2.5.jar. Delete this file if it is still there.

      Delete
  15. Has anyone got 4.5 working? The glibc requires 2.9 or above, so I had to update the firmware, but still get JNI errors after.

    ReplyDelete