slskd / slskd

A modern client-server application for the Soulseek file sharing network.
GNU Affero General Public License v3.0
931 stars 56 forks source link

Can't get slskd to run on osmc/rpi4 #475

Open MitraMai opened 2 years ago

MitraMai commented 2 years ago

Hello! I have 2 rpi4, one running raspberry pi OS, and one running OSMC. Raspberry Pi Os is the latest one, Debian Bullseye, while OSMC is still at Buster. For some reason I get slskd to (the downloaded binaries, the slskd-0.15.5-linux-arm.zip ) run on Raspberry Pi OS, but not on OSMC. On OSMC, using the binaries from slskd-0.16.0-linux-arm.zip, arm I get osmc@Rubicon:~/System/slskd$ ls config etc LICENSE slskd wwwroot osmc@Rubicon:~/System/slskd$ ./slskd Bussfel That is "bus error" in swedish. Using the binaries from slskd-0.16.0-linux-arm64.zip I get: osmc@Rubicon:~/System/slskd$ ls config etc LICENSE slskd wwwroot osmc@Rubicon:~/System/slskd$ ./slskd bash: ./slskd: Filen eller katalogen finns inte Which means "File or folder not found".

I've tested with both version 0.15 and 0.16. Is there I way I can debug this? I'm unable to find any flag for more a verbose output. From the OSMC forum I found this regarding OSMC on RPI4:

The kernel will be 64-bit Userland is armhf (32-bit)

jpdillingham commented 2 years ago

I think I have some gaps in my understanding of bit-ness on arm platforms, so while I'm generally quick to point the finger at 32bit-anything, I'm not sure that's fair. A "bus error" sounds consistent with an inability to address memory and thus an incompatibility somewhere between 32/64 bit-ness, though.

The "file or folder not found" error sounds similar to errors I would get when trying to work with Alpine Linux and musl-libc. I used to build musl binaries, the latest of which can be found here: https://github.com/slskd/slskd/releases/download/0.9.6/slskd-0.9.6-linux-musl-x64.zip

Please give that a shot and report back when you get a minute.

MitraMai commented 2 years ago

Thank you for your answer! I tried both the arm and the arm64 versions. The arm64 version does not work. But the arm-version starts. But then I can't get slskd to run since it complains about: Invalid configuration: System.FormatException: Could not parse the YAML file. But that's another problem. So I guess you're right in your hunch the musl-libc. So, is there a way to include musl-libc in the newest versions or am I to use version 0.9.6 if I want to use slskd on OSMC? I could always use my other PI but I prefer the OSMC-one since I already setup external HDD etc on it.

jpdillingham commented 2 years ago

Starting with the 0.16.1 release, linux-musl-x64 binaries will be included. This release will be out about 30 minutes from this post.

I wouldn't worry about errors with the older version, the yaml file has changed a lot since then. Once the release is out, download the latest binaries and see how they work for you.

MitraMai commented 2 years ago

Hello again! Nah, can't get it to work. Still getting "bus error" when using the arm-version, and "file or folder not found" when trying the arm64-version. I guess it is due to the fact that OSMC uses 32-but userland. What that means in practice I can only guess. But I assume that to get slskd to work on OSMC, OSMC has to ship with musl-binaries (?) or that OSMC has to be 64-bit in all aspects, not just the kernel. But anyway, thanks for your help. It's been very kind of you!

jpdillingham commented 2 years ago

I can't recreate the exact scenario because I don't yet own a Raspberry Pi 4 (I could try with an RPI3 but it's a hassle and nobody has complained about RPI3 issues so I'm not sure it would be worthwhile)

I did update the build to include more binaries, and will update it again once .NET 7 is available to add the new x86 and armv6 options.

The latest release is here: https://github.com/slskd/slskd/releases/tag/0.16.2 and if you aren't tired of messing with this, you might try linux-muscl-arm.

I do generally think this is being caused by some weirdness with OSMC; I can run both the linux-arm binaries and the armv7 Docker image on my Raspberry Pi 2 running 32 bit Raspbian OS.

MitraMai commented 2 years ago

Just tried the new binaries. Not working :( Not musl-arm nor musl-arm4. I'm getting the same error as before, but now on both binaries:

osmc@Rubicon:~/System/slskd$ ls config etc LICENSE slskd slskd-0.16.2-linux-musl-arm64.zip wwwroot osmc@Rubicon:~/System/slskd$ chmod +x slskd osmc@Rubicon:~/System/slskd$ ./slskd bash: ./slskd: Filen eller katalogen finns inte

osmc@Rubicon:~/System/slskd$ chmod +x slskd osmc@Rubicon:~/System/slskd$ ./slskd bash: ./slskd: Filen eller katalogen finns inte 127 osmc@Rubicon:~/System/slskd$ ls config etc LICENSE slskd slskd-0.16.2-linux-musl-arm.zip wwwroot (File or folder not found)

I agree with you that it's probably something weird with OSMC. I'm gonna ask at the forum and get back here if I get any answers. Again, thanks for trying to help me out!

jpdillingham commented 2 years ago

I'll leave this issue open; please report back if you figure out what the issue is.