syncthing: Unable to execute on WD My Cloud (armv7l)
I wanted to install syncthing on my WD My Cloud but I get an error. I think this is related to #412
The machine is:
SpaceShip:~# uname -a
Linux SpaceShip 3.2.26 #1 SMP Tue Jun 17 15:53:22 PDT 2014 wd-2.2-rel armv7l GNU/Linux
and the error is:
SpaceShip:~/syncthing-linux-armv7-v0.10.4# ./syncthing
unexpected fault address 0x38456c
fatal error: fault
[signal 0xb code=0x2 addr=0x38456c pc=0x38456c]
goroutine 16 [running]:
runtime.throw(0x753342)
/usr/local/go/src/pkg/runtime/panic.c:520 +0x5c fp=0x414d1eb0 sp=0x414d1ea4
runtime.sigpanic()
/usr/local/go/src/pkg/runtime/os_linux.c:240 +0xf8 fp=0x414d1ebc sp=0x414d1eb0
code.google.com/p/snappy-go/snappy.init()
?:0 fp=0x414d1ec0 sp=0x414d1ec0
github.com/syndtr/goleveldb/leveldb.init()
/home/jenkins/.jenkins/jobs/syncthing/workspace/src/github.com/syncthing/syncthing/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/version.go:436 +0x74 fp=0x414d1ef0 sp=0x414d1ec0
github.com/syndtr/goleveldb/leveldb.init()
/home/jenkins/.jenkins/jobs/syncthing/workspace/src/github.com/syncthing/syncthing/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/version.go:436 +0x74 fp=0x414d1f20 sp=0x414d1ef0
github.com/syncthing/syncthing/internal/files.init()
/home/jenkins/.jenkins/jobs/syncthing/workspace/src/github.com/syncthing/syncthing/internal/files/set.go:231 +0x90 fp=0x414d1f4c sp=0x414d1f20
created by _rt0_go
/usr/local/go/src/pkg/runtime/asm_arm.s:72 +0xb0
goroutine 19 [finalizer wait]:
runtime.park(0x484a0, 0x7584b4, 0x757039)
/usr/local/go/src/pkg/runtime/proc.c:1369 +0x5c
runtime.parkunlock(0x7584b4, 0x757039)
/usr/local/go/src/pkg/runtime/proc.c:1385 +0x40
runfinq()
/usr/local/go/src/pkg/runtime/mgc0.c:2644 +0xa0
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1445
goroutine 20 [syscall]:
os/signal.loop()
/usr/local/go/src/pkg/os/signal/signal_unix.go:21 +0x24
created by os/signal.init·1
/usr/local/go/src/pkg/os/signal/signal_unix.go:27 +0x48
I tried to downgrade to a Firmware Version < 4 but it didn’t work. Is it somehow possible to build a release that works on the infrastructure of WD My Cloud?
About this issue
- Original URL
- State: closed
- Created 10 years ago
- Comments: 26 (2 by maintainers)
For anyone coming here from a Google search, the problem is that firmwares from version 4 onwards use 64K pages rather than 4K. To build Go binaries for the WD My Cloud you need to apply the following patch go’s source code, then build for linux/arm.
Note that this will break ARM builds for 4K sized pages.
I disagree, but you may ask Go devs to see if they accept contributions in this sense. I’m fairly certain that if someone offers to do the work and maintain it there’s not much reason to say no. Considering this is a free project and that there’s both a hardware and time cost (in my experience emulated system such as qemu-user didn’t work) to implement either solution, I’d not expect it to happen on its own, but only if users contribute.