Rclone and restic

Hi,

I'm trying to get rclone to work with restic. I installed it on Qnap and it works fine using a webdav backend.
Now I'm trying to get this to work on an older armel linux nas (kernel 2.6 and cannot upgrade) , which only has rclone v.1.35-DEV installed and get following error:

restic init
Fatal: create repository at rclone:stack:restic-bucket failed: pipe: function not implemented

Now I guess I need a newer rclone version. Right ?
Cannot find any newer package for armel.
Any suggestions ?

That's an ancient version.

You can grab the latest here:

https://rclone.org/downloads/

Thanks, but there is no armel package...it's armhf !

I'm not sure you could even compile it on a kernel from 2003.

There aren't any updates for that device?

No I'm afraid not. The kernel cannot be upgraded because of some device drivers not beeing open sourced and not in the upstream kernel sources.
Do I have to try to compile a newer rclone version from source myself or will that be a fruitless endeavour using such an old kernel (2.6) ?

You can check the version of the kernel and if it's supported.

The problem would be if you can't get newer version setup, you won't be able to take advantage of the new features/versions.

Kernel version 2.6.23 or later. [ This depends on architecture though, we need to have specific builder for this. ] Linux/ARMv5 requires much newer kernels, at least v3.1 (for __kuser_cmpxchg64 ).

The kernel version is 2.6.24.4 but Linux/ARMv5, so I guess I'm out of luck....
What would be the minimum rclone version to work with restic ?
Restic seems to work fine...

Yeah, that stinks. I don't think you'd be able to compile it from source and you'd need something recent to get the new changes for restic as the 1.35 is too old.

Upgrade time!

Wouldn't rclone be able to provide an armel binary package i.o. armhf so I could test/try ?

I'm sure @ncw could chime as to my knowledge to compile a package, the OS has to support the things compiled for it.

If the system doesn't support the library requirements, compiling it and trying to run it would not work regardless if you have a binary or not.

*The ARM EABI (armel) port targets a range of older 32-bit ARM devices, particularly those used in NAS hardware and a variety of plug computers.

I can't imagine a device from 2003 is going to run the needed libraries properly but who knows. I've been wrong before and I'm positive I'll be wrong again :slight_smile:

I've never seen or heard of an armel package until this morning :slight_smile:

Haha Thanks your reply... we are learning every day :smiley:

I got the latest rclone version (1.49.3) installed and running using the 32 bit arm zip package (the deb package is armhf, tried that first as I'm running debian).

Sadly got same error:

Fatal: create repository at rclone:stack:restic-bucket failed: pipe: function not implemented

Probably the old kernel doesn't have the pipe function implemented...
too bad, so close but yet so....

BTW the device is not from 2003 but around 2012, yes it's old but only used for backups!

I meant the 2.6 kernel is from 2003, the version of the kernel you are on is from 2008 so 10+ years old.

Old soldiers never die... you know...but this case will have to look for another way of creating an off-site backup.

Did some more investigation:
The problem I am experiencing looks a lot like this one on syncthing:

Hmm, that probably means you could start rclone as a standalone restic server with 'rclone serve restic' and connect restic to that. That will stop restic trying to use pipe.

No, strangly enough that produces exactly the same error...

rclone ls works fine

testing rclone mount:

rclone mount -v stack:/ /media/stack
2019/09/19 23:08:13 Fatal error: failed to mount FUSE fs: setting up fusermount stderr: pipe: function not implemented

fusermount is available.
How can I debug ?

I didn't mean using rclone mount I meant using rclone serve restic stack: then connecting restic to that as per the REST server docs

Using rclone mount will be trying to run fusermount runs into the same problem.

Yes I did understand and tested that. Came up with same error than tried rclone mount.
Is the pipe cmd not in my kernel? Seems odd to me...

Can you post the error you got with rclone serve restic - I can't figure out where that should be using pipe

It is a system call rather than a command, from the pipe man page

pipe2() was added to Linux in version 2.6.27; glibc support is
available starting with version 2.9.

rclone serve restic stack:/restic-bucket &
[1] 26944
#2019/09/20 19:27:59 NOTICE: webdav root 'restic-bucket': Serving restic REST API on http://127.0.0.1:8080/

restic init
Fatal: create repository at rclone:stack:restic-bucket failed: pipe: function not implemented

Same error.
I'm using an older kernel indeed (see above), anyway to circumvent this ?