mirror of
https://github.com/librespot-org/librespot.git
synced 2026-04-27 00:05:55 +03:00
[GH-ISSUE #75] Mention kernel 3.9 is required #65
Labels
No labels
A-Alsa
SpotifyAPI
Tokio 1.0
audio
bug
can't reproduce
compilation
dependencies
duplicate
enhancement
good first issue
help wanted
high priority
imported
imported
invalid
new api
pull-request
question
reverse engineering
wiki
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/librespot#65
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @sashahilton00 on GitHub (Jan 29, 2018).
Original GitHub issue: https://github.com/librespot-org/librespot/issues/75
Saturday Jul 22, 2017 at 10:58 GMT
Originally opened as https://github.com/plietar/librespot/issues/226
Hey,
when trying to run a binary built with
librespot-crosscontainer on "legacy" (3.4) Allwinner H3 (OrangePi Zero) Linux Kernel I noticed it crashes with "Protocol not available" error when discovery is enabled. Sadly I don't have full error line, as I already resolved it and forgot to write it down.This error is thrown when calling
setsockoptwithSO_REUSEPORT, which is only available since Linux Kernel 3.9 AFAIK. It'd be nice to mention it inREADME, or find some solution to disable that syscall or ignore that error on unsupported systems. I'm not a rust developer myself, so wasn't even able to find a module (crate?) it is actually called in ;)Besides that everything works perfectly.
@sashahilton00 commented on GitHub (Jan 29, 2018):
Tuesday Aug 15, 2017 at 13:16 GMT
You saved my day, tried to use librespot on an OrangePi Zero which only has a Legacy Kernel and was wondering we it does not work
@sashahilton00 commented on GitHub (Jan 29, 2018):
Thursday Aug 17, 2017 at 13:54 GMT
The complete error line is this:
INFO:librespot: librespot ddfc28f (2017-08-04). Built on 2017-08-07. Build ID: N5RcEuis thread 'main' panicked at 'calledResult::unwrap()on anErrvalue: Error { repr: Os { code: 92, message: "Protocol not available" } }', /checkout/src/libcore/result.rs:860 note: Run withRUST_BACKTRACE=1for a backtrace.@Informatic how did you solve this, i have the same hardware here an would love to have librespot running on it
@sashahilton00 commented on GitHub (Jan 29, 2018):
Thursday Aug 17, 2017 at 15:14 GMT
I just upraded my box to mainline kernel. I've been using Armbian, so all I needed to do was just install following packages:
linux-image-dev-sun8i linux-headers-dev-sun8i linux-u-boot-orangepipc-dev linux-jessie-root-dev-orangepipc linux-dtb-dev-sun8i(keep in mind video and some other minor peripherals are not supported in mainline yet, look this stuff up on Armbian forums, as this is not really a proper place for that...)@sashahilton00 commented on GitHub (Jan 29, 2018):
Sunday Sep 03, 2017 at 18:39 GMT
Can't it be used without SO_REUSEPORT ?
new dev kernels can have some issues,
On old kernel it's working with --disable-discovery and registering with user/password.
@sashahilton00 commented on GitHub (Jan 29, 2018):
Thursday Sep 07, 2017 at 11:50 GMT
@herrernst I would like to reopen the problem - It is a big problem for most of the ARM users! Most of ARM users have old kernels like 3.0 and 3.4. I was able to compile librespot fine on armhf 3.4 kernel but I get @bjoerns1983 mentioned error while trying to run librespot with discovery enabled. Please try to change the code to support old ARM devices because I am trying to find a use for old phones with good DAC i.e. samsung galaxy s 2 kernel 3.0, lg g2 3.4 kernel running librespot in linux chroot etc.
@sashahilton00 commented on GitHub (Jan 29, 2018):
Saturday Sep 16, 2017 at 12:00 GMT
@Informatic - I found that the reuse_port is used in rust-mdns address_family.rs - if I comment out line 15 and cargo build (I am using spotty) on my ARM with kernel 2.6 then discovery works.
@sashahilton00 commented on GitHub (Jan 29, 2018):
Saturday Sep 16, 2017 at 12:16 GMT
Thanks @jr01 for your research. Could you do a code contribution via pull request - maybe this way it would be fixed sooner? :) I love that Librespot is just 12.8MB of ram and spotify is like more than 200MB!
@sashahilton00 commented on GitHub (Jan 29, 2018):
Saturday Sep 16, 2017 at 13:37 GMT
I could do that, but I am not a rust developer and I am very unsure if the change is correct and what side effects it may have. Maybe @plietar can help?
@sashahilton00 commented on GitHub (Jan 29, 2018):
Saturday Oct 28, 2017 at 19:55 GMT
Tried the workaround of jr01 and it works for me, no negative side effects till now. Struggled a bit till i compiled a patched version but i made a guide if somebody also wants to try:
Compile Librespot for Orange Pi
Asking myself if reuse_port is really neccessary here.
@ComlOnline commented on GitHub (Jan 29, 2018):
May be worth just putting in the wiki as a note at the very least.
@ComlOnline commented on GitHub (Jan 31, 2018):
Hi @bjoerns1983, I have updated your guide and you can find it here. Before I add to to the wiki sidebar I wanted to make sure this was OK with you?
@sashahilton00 commented on GitHub (Feb 6, 2018):
Haven't heard anything, so have added this to the sidebar. If the original author has a problem with us adding this to the wiki, mention me and we'll resolve this issue another way. Marking as solved for now.