Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rclone v1.28 on ARM (Western Digital NAS) #426

Closed
fparnigoni opened this issue Apr 7, 2016 · 29 comments
Closed

rclone v1.28 on ARM (Western Digital NAS) #426

fparnigoni opened this issue Apr 7, 2016 · 29 comments
Labels
Milestone

Comments

@fparnigoni
Copy link

rclone_err.txt

rclone version: 1.28
OS: ARMv7l (on Western Digital NAS)

uname -a

Linux NasWD 3.2.26 #1 SMP Thu Jul 9 11:14:15 PDT 2015 wd-2.4-rel armv7l GNU/Linux
The command: GOTRACEBACK=system rclone config

@ncw
Copy link
Member

ncw commented Apr 11, 2016

Thanks for sending that. I'm not having much luck working out what is going on though!

Can you try downloading the go compiler from https://storage.googleapis.com/golang/go1.6.linux-armv6l.tar.gz and see if that works? Just run the go binary with no arguments and see if it prints something sensible.

If the compiler does work you could try building rclone locally.

Can you also paste the result of cat /proc/cpuinfo.

Thanks

Nick

@fparnigoni
Copy link
Author

Thanks for reply:

cat /proc/cpuinfo

Processor : ARMv7 Processor rev 1 (v7l)
processor : 0
BogoMIPS : 1299.25
processor : 1
BogoMIPS : 1292.69
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x2
CPU part : 0xc09
CPU revision : 1
Hardware : Comcerto 2000 EVM
Revision : 0001
Serial : 0000000000000000

After download (and tar ....) the go command prints:
Segmentation fault

fulvio

@ncw
Copy link
Member

ncw commented Apr 12, 2016

Here is a build of the tip of rclone development built with the tip of the go compiler - see if that helps!

http://pub.rclone.org/rclone-v1.28-28-g9539bbf-arm-go-tip.zip

@fparnigoni
Copy link
Author

rclone-v1.28-28-g9539bbf-arm-go-tip_errors.txt

The command:
GOTRACEBACK=system rclone-v1.28-28-g9539bbf-arm-go-tip config

See attached file.

Thanks
fulvio

@ncw
Copy link
Member

ncw commented Apr 12, 2016

Thanks for trying that - I'm going to ask for some more help on the Go developer mailing list.

I think that this is an incompatibility between the go compiler or runtime and your ARM based system, rather than anything rclone is doing.

@ncw
Copy link
Member

ncw commented Apr 14, 2016

It looks like this is caused by the kernel on your device being compiled with a 64k page size which isn't supported by go at the moment

There is a patch for the compiler to support this, but the compiler internals have changed a lot since then, so I couldn't apply it.

Hopefully those bugs will get fixed soon and then rclone will just start working.

@fparnigoni
Copy link
Author

Ok, I wait for the fix
Thanks

@rmoriz
Copy link

rmoriz commented Jul 12, 2016

I've a Western Digital My Cloud Mirror NAS:

# getconf PAGESIZE
32768

So looks like there are at least 3 different possible configurations in use by popular ARM devices. Still, Golang has no runtime support for it. :(

@ncw ncw added this to the Unplanned / Help Wanted milestone Jul 15, 2016
@rmoriz
Copy link

rmoriz commented Aug 31, 2016

rclone-v1.33-linux-arm:
runtime: kernel page size (32768) is larger than runtime page size (4096)

@ncw
Copy link
Member

ncw commented Sep 1, 2016 via email

@ncw
Copy link
Member

ncw commented Sep 4, 2016

Reading the go bug reports looks like this will be fixed for go 1.8. If I get time I'll back port the patch to go 1.7 and post a build of rclone.

@cscetbon
Copy link

cscetbon commented Oct 9, 2016

@ncw, any news on this ? I met the same issue with the last arm binary

@ncw ncw added the bug label Oct 9, 2016
@ncw ncw modified the milestones: Known Problem, Unplanned / Help Wanted Oct 9, 2016
@ncw
Copy link
Member

ncw commented Oct 9, 2016

I looked through the bugs above and it looks like the problem may be fixed in the development version of Go.

I've compiled up two versions of rclone for you all to test. There is an ARMv6 version and an ARMv7 version - it would be interesting if you could try both.

http://pub.rclone.org/rclone-v1.33-63-gace1e21-tip-arm.zip

The above was compiled with

go version devel +56d35d4 Sun Oct 9 00:22:59 2016 +0000 linux/amd64

@cscetbon
Copy link

cscetbon commented Oct 9, 2016

@ncw I don't have the issue anymore. I'm gonna test it and tell you if anything else doesn't work. Thank you

@fparnigoni
Copy link
Author

On my device (Western Digital NAS) the rclone-armv7 doesn't work, rclone-armv6 works properly from NAS to Dropbox, no errors found.
Nick, thank you very much.

fulvio

@ncw
Copy link
Member

ncw commented Oct 11, 2016

Great thanks for testing.

Go 1.8 is due to be released in Feb 2017 so rclone will support these devices officially then. In the mean time you can use that binary, or give me a nudge on this ticket and I'll compile you a new one.

@pranspach
Copy link

1.34 has a lot of great features/fixes for crypt & mounting. Do you have a 1.34 build with Go's dev branch?

I haven't searched around enough, but do you have build instructions that I can adapt to use Go's dev branch to build this?

@ncw
Copy link
Member

ncw commented Dec 4, 2016

If you install the go 1.8 beta, set GOPATH, then

go get -u github.com/ncw/rclone

Will build it for you.

I did a beta build using go version devel +41908a5 Thu Dec 1 02:54:21 2016 +0000 linux/amd64 which is the go 1.8 beta1. You can find that here: http://pub.rclone.org/v1.34-48-gc24da0b%CE%B2/

@EnorMOZ
Copy link

EnorMOZ commented Dec 20, 2016

Having similar issues. Trying to get golang to compile/run on these boxes are a PITA with the 64K size. I thought the 1.8 versions were suppose to set 64k if it detected arm but not sure that is the case.

# uname -a Linux WDMyCloud 3.2.26 #1 SMP Thu Jul 9 11:14:15 PDT 2015 wd-2.4-rel armv7l GNU/Linux

# getconf PAGESIZE 65536

Armv7 version form previous post.

# ./rclone-armv7
unexpected fault address 0x486bdc
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x2 addr=0x486bdc pc=0x486bdc]
goroutine 1 [running, locked to thread]:
runtime.throw(0x58c4d0, 0x5)
	/home/ncw/Code/go/src/runtime/panic.go:587 +0x70 fp=0x10b39f20 sp=0x10b39f14
runtime.sigpanic()
	/home/ncw/Code/go/src/runtime/signal_unix.go:279 +0x20c fp=0x10b39f44 sp=0x10b39f20
github.com/cpuguy83/go-md2man/vendor/github.com/shurcooL/sanitized_anchor_name.init()
	/home/ncw/Code/go/src/github.com/cpuguy83/go-md2man/vendor/github.com/shurcooL/sanitized_anchor_name/main.go:30 fp=0x10b39f48 sp=0x10b39f48
github.com/cpuguy83/go-md2man/vendor/github.com/russross/blackfriday.init()
	/home/ncw/Code/go/src/github.com/cpuguy83/go-md2man/vendor/github.com/russross/blackfriday/smartypants.go:401 +0x44 fp=0x10b39f88 sp=0x10b39f48
github.com/cpuguy83/go-md2man/md2man.init()
	/home/ncw/Code/go/src/github.com/cpuguy83/go-md2man/md2man/roff.go:283 +0x40 fp=0x10b39f8c sp=0x10b39f88
github.com/spf13/cobra/doc.init()
	/home/ncw/Code/go/src/github.com/spf13/cobra/doc/util.go:39 +0x60 fp=0x10b39f90 sp=0x10b39f8c
github.com/ncw/rclone/cmd/gendocs.init()
	/home/ncw/Code/go/src/github.com/ncw/rclone/cmd/gendocs/gendocs.go:56 +0x60 fp=0x10b39f94 sp=0x10b39f90
github.com/ncw/rclone/cmd/all.init()
	/home/ncw/Code/go/src/github.com/ncw/rclone/cmd/all/all.go:33 +0x68 fp=0x10b39f98 sp=0x10b39f94
main.init()
	/home/ncw/Code/go/src/github.com/ncw/rclone/rclone.go:19 +0x48 fp=0x10b39f9c sp=0x10b39f98
runtime.main()
	/home/ncw/Code/go/src/runtime/proc.go:172 +0x18c fp=0x10b39fc4 sp=0x10b39f9c
runtime.goexit()
	/home/ncw/Code/go/src/runtime/asm_arm.s:992 +0x4 fp=0x10b39fc4 sp=0x10b39fc4`

Most recent 1.34.48

# ./rclone
unexpected fault address 0x586df0
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x2 addr=0x586df0 pc=0x586df0]

goroutine 1 [running, locked to thread]:
runtime.throw(0x6c3815, 0x5)
	/opt/go/go1.8/src/runtime/panic.go:596 +0x70 fp=0x10d33f94 sp=0x10d33f88
runtime.sigpanic()
	/opt/go/go1.8/src/runtime/signal_unix.go:276 +0x20c fp=0x10d33fb8 sp=0x10d33f94
main.init()
	/home/ncw/go/src/github.com/ncw/rclone/rclone.go:19 fp=0x10d33fbc sp=0x10d33fbc
runtime.main()
	/opt/go/go1.8/src/runtime/proc.go:173 +0x198 fp=0x10d33fe4 sp=0x10d33fbc
runtime.goexit()
	/opt/go/go1.8/src/runtime/asm_arm.s:1017 +0x4 fp=0x10d33fe4 sp=0x10d33fe4

@ncw
Copy link
Member

ncw commented Dec 21, 2016

@DTrace001 I've uploaded the latest rclone compiled with the latest go for you to try.

http://pub.rclone.org/rclone-v1.34-75-gcbfec0d-arm-go-tip.zip

I've also included a hello binary which should just print hello world.

Can you try that too please?

Assuming one or both of those fails, then please post the output for both and also the output of cat /proc/cpuinfo

I'm not sure whether 64k pages are supposed to be working properly for go 1.8 - I'll ask on the developer mailing list once I've got your results.

@EnorMOZ
Copy link

EnorMOZ commented Dec 21, 2016

Here are the outputs you requested:

# getconf PAGESIZE
65536
# uname -a
Linux WDMyCloud 3.2.26 #1 SMP Thu Jul 9 11:14:15 PDT 2015 wd-2.4-rel armv7l GNU/Linux
# cat /proc/cpuinfo
Processor	: ARMv7 Processor rev 1 (v7l)
processor	: 0
BogoMIPS	: 1299.25

processor	: 1
BogoMIPS	: 1292.69

Features	: swp half thumb fastmult vfp edsp neon vfpv3 tls
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x2
CPU part	: 0xc09
CPU revision	: 1

Hardware	: Comcerto 2000 EVM
Revision	: 0001
Serial		: 0000000000000000
# ./rclone
unexpected fault address 0x5893b0
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x2 addr=0x5893b0 pc=0x5893b0]

goroutine 1 [running, locked to thread]:
runtime.throw(0x6c6c8a, 0x5)
	/opt/go/go1.8/src/runtime/panic.go:596 +0x70 fp=0x10d33f94 sp=0x10d33f88
runtime.sigpanic()
	/opt/go/go1.8/src/runtime/signal_unix.go:297 +0x20c fp=0x10d33fb8 sp=0x10d33f94
main.init()
	/home/ncw/go/src/github.com/ncw/rclone/rclone.go:19 fp=0x10d33fbc sp=0x10d33fbc
runtime.main()
	/opt/go/go1.8/src/runtime/proc.go:173 +0x198 fp=0x10d33fe4 sp=0x10d33fbc
runtime.goexit()
	/opt/go/go1.8/src/runtime/asm_arm.s:1017 +0x4 fp=0x10d33fe4 sp=0x10d33fe4
# ./hello
unexpected fault address 0x88868
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x2 addr=0x88868 pc=0x88868]

goroutine 1 [running, locked to thread]:
runtime.throw(0xa454f, 0x5)
	/opt/go/go1.8/src/runtime/panic.go:596 +0x70 fp=0x10433f94 sp=0x10433f88
runtime.sigpanic()
	/opt/go/go1.8/src/runtime/signal_unix.go:297 +0x20c fp=0x10433fb8 sp=0x10433f94
main.init()
	/home/ncw/go/src/github.com/ncw/rclone/rclone-v1.34-75-gcbfec0d-arm-go-tip/hello.go:8 fp=0x10433fbc sp=0x10433fbc
runtime.main()
	/opt/go/go1.8/src/runtime/proc.go:173 +0x198 fp=0x10433fe4 sp=0x10433fbc
runtime.goexit()
	/opt/go/go1.8/src/runtime/asm_arm.s:1017 +0x4 fp=0x10433fe4 sp=0x10433fe4

@ncw
Copy link
Member

ncw commented Dec 21, 2016

@DTrace001 thanks for that. I'll ask on the go developers list and see if anyone has any ideas.

@EnorMOZ
Copy link

EnorMOZ commented Dec 21, 2016

@ncw Thanks for looking into this !

@ncw
Copy link
Member

ncw commented Dec 21, 2016

I asked on the dev mailing list and they said to open an issue which I have done here: golang/go#18408 - I'm hoping that @DTrace001 will respond to requests for more info about the hardware etc on that issue - I'm happy to continue compiling stuff if required.

@ncw
Copy link
Member

ncw commented Jan 4, 2017

After golang/go#18408 has been declared fixed, I've rebuild the compiler with the fix and rebuild rclone for you to have a go with.

http://pub.rclone.org/rclone-v1.35-13-ge1a49ca-arm-go-tip.zip

@kmanley
Copy link

kmanley commented Jan 8, 2017

I just tried it and it seems to work on my WD My Cloud which is also arm7 with 64k kernel page size, thank you!

@fparnigoni
Copy link
Author

+1
It works properly.
Thanks

@ncw
Copy link
Member

ncw commented Jan 8, 2017

Thanks for testing. I'll start using go 1.8 to compile rclone when it is formally released. I think this will be in time for the next rclone release if things go to plan.

@EnorMOZ
Copy link

EnorMOZ commented Jan 10, 2017

Sorry for the late reply. It does work as others have already mentioned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants