04-22-2020, 02:11 PM | #61 |
BLAM!
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
strace it.
It appears to be using libltdl to wrap dlopen(), so it's probably passing a stupid hardcoded path or something inane like that. libtool is the worst. EDIT: https://www.gnu.org/software/libtool...interface.html Seems to hint that it only relies on the environment when *NOT* fed a canonical path. Last edited by NiLuJe; 04-22-2020 at 03:50 PM. |
04-22-2020, 03:39 PM | #62 | |
Guru
Posts: 827
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
Quote:
Code:
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabi/sox", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (No such file or directory) Code:
open("/usr/lib/x86_64-linux-gnu/sox", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 Code:
open("/usr/lib/x86_64-linux-gnu/sox/libsox_fmt_mp3.so", O_RDONLY|O_CLOEXEC) = 4 So this appears to be an attempt on the pw4 to search that particular directory for this file. I guess I could confirm this by putting the file there, but that would not be good for an extension. Suggestions? Dave PS: it appears that sox uses wget under the covers for internet access and that the wget in busybox isn't compatible. So I need to add that to the mix as well. |
|
Advert | |
|
04-22-2020, 03:49 PM | #63 |
BLAM!
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
Yep, that's what I was afraid of.
Your only cheap viable workaround (short of recompiling to fix/get rid of this nonsense) is to make sure that path exists and contains the right things (I'd go with a symlink). |
04-22-2020, 04:17 PM | #64 | |
Guru
Posts: 827
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
Quote:
Code:
[root@kindle root]# ln -s /usr/lib/arm-linux-gnueabi/sox /mnt/us/extensions/sox/lib/sox ln: /mnt/us/extensions/sox/lib/sox/sox: Operation not permitted Dave PS: I copied the file where they wanted it and it now works with mp3 Last edited by dhdurgee; 04-22-2020 at 04:25 PM. |
|
04-22-2020, 04:39 PM | #65 |
BLAM!
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
@dhdurgee:
I always get ln's args in the wrong order, too, it's *physical target* first, then *new link name* . I find it utterly confusing, because logically, you represent it the other way around: link => target. So, in this case, the error is because you can't have symlinks on vfat . But you can have symlinks pointing *to* vfat. You'll just have to mntroot rw first, because otherwise you can't *create* anything new in the rootfs, link or otherwise . |
Advert | |
|
04-22-2020, 04:46 PM | #66 |
Guru
Posts: 827
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
I now have success playing an mp3 file using sox:
Code:
[root@kindle sox]# LD_LIBRARY_PATH=./lib ./sox /mnt/us/music/01-Diamond_Star.mp3 -t raw - | /usr/bin/gst-launch -v filesrc location= /dev/stdin ! 'audio/x-raw-int,endianness=(int)1234,signed=(boolean)true,width=(int)16,depth=(int)16,rate=(int)44100,channels=(int)2' ! queue ! mixersink Setting pipeline to PAUSED ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/MixerSink:mixersink0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 ./sox WARN sox: `-' output clipped 144 samples; decrease volume? Got EOS from element "pipeline0". Execution ended after 207323062025 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/MixerSink:mixersink0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = NULL Setting pipeline to NULL ... Freeing pipeline ... [root@kindle sox]# Code:
root@kindle sox]# LD_LIBRARY_PATH=./lib ./soxi /mnt/us/music/01-Diamond_Star.mp3 Input File : '/mnt/us/music/01-Diamond_Star.mp3' Channels : 2 Sample Rate : 44100 Precision : 16-bit Duration : 00:03:26.92 = 9125172 samples = 15519 CDDA sectors File Size : 4.98M Bit Rate : 192k Sample Encoding: MPEG audio (layer I, II or III) Comments : Title=Diamond Star Artist=Point Valid with Catherine Asaro Album=Diamond Star Tracknumber=01/13 Year=2009 Genre=Alt. Rock [root@kindle sox]# Dave |
04-22-2020, 06:11 PM | #67 |
BLAM!
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
USBNet ships a fully functional curl build since a few months ago.
It *may* not be symlinked on Kindle if the system ships a stupid one by default, I can't remember . (Having working SSL/TLS support in these things is mildly non-trivial). |
04-22-2020, 09:24 PM | #68 | |
Guru
Posts: 827
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
Quote:
Something odd came up with wget. I copied the wget from jessie to the pw4 and started tracking down the missing dependencies. Everything seemed fine until I hit one that wasn't there for armel: Code:
[root@kindle sox]# LD_LIBRARY_PATH=./lib ./wget ./wget: error while loading shared libraries: libicuuc.so.52: cannot open shared object file: No such file or directory [root@kindle sox]# So I am puzzled how to continue at this point. I guess I could retrieve the amd64 library, but would that solve the problem or cause a compatibility crash of some sort? Dave |
|
04-22-2020, 10:24 PM | #69 |
BLAM!
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
Hmm, wget pulling ICU is highly unusual/bogus.
It's probably pulled by something else (my bet would be on glib or a glib component), something that wget itself may not actually be pulling. Check the output from lddtree (requires recent USBNet+Python snapshots). (And, of course, you cannot use binaries targeting a different arch). |
04-23-2020, 08:04 AM | #70 | |
Going Viral
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
Quote:
Assuming amd64 on your main system (running a Linux) can emulate other processors (including ARM). Your Kindle (running Amazon/Linux) can not. |
|
04-23-2020, 11:14 AM | #71 | |
Guru
Posts: 827
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
Quote:
Code:
[root@kindle sox]# pwd /mnt/us/extensions/sox [root@kindle sox]# echo $PATH .:/usr/local/bin:/bin:/usr/bin:/usr/sbin:/sbin [root@kindle sox]# LD_LIBRARY_PATH=./lib ./wget ./wget: /lib/libuuid.so.1: no version information available (required by ./wget) wget: missing URL Usage: wget [OPTION]... [URL]... Try `wget --help' for more options. [root@kindle sox]# LD_LIBRARY_PATH=./lib ./soxi http://provisioning.streamtheworld.com/pls/WWRCAMAAC.pls wget: unrecognized option '--no-check-certificate' BusyBox v1.17.1 (2018-11-27 03:29:06 PST) multi-call binary. Usage: wget [-csq] [-O FILE] [-Y on/off] [-P DIR] [-U AGENT] URL Retrieve files via HTTP or FTP Options: -s Spider mode - only check file existence -c Continue retrieval of aborted transfer -q Quiet -P Set directory prefix to DIR -O FILE Save to FILE ('-' for stdout) -U STR Use STR for User-Agent header -Y Use proxy ('on' or 'off') ./soxi FAIL formats: error reading playlist file URL `http://provisioning.streamtheworld.com/pls/WWRCAMAAC.pls' [root@kindle sox]# Dave |
|
04-23-2020, 12:01 PM | #72 |
BLAM!
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
You know what my answer's going to be, right?
... strace it ;p. IIRC, the fact that busybox is a multi-call binary and how the symlinks are setup + vfat and the fuse layer proxy can lead to puzzling results when trying these sort of things... |
04-23-2020, 01:29 PM | #73 | |
Guru
Posts: 827
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
Quote:
wget -q -0- <URL> | play -t <type> - This complicates things, as I usually want to pass a URL for a playlist as opposed to a single stream. It also seems problemic to get the details from a stream as soxi returns: soxi FAIL formats: can't determine type of file URL `http://19313.live.streamtheworld.com:80/WMALFMAAC_SC' Those details are necessary to build the gst-launch pipeline, so unless I am going to force an output format this is a problem. Dave |
|
04-24-2020, 11:38 AM | #74 |
Going Viral
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
The schema shown (http:) uses port 80 as its default.
You can drop the ":80" from that url, which might help with the error message. |
04-24-2020, 12:21 PM | #75 | |
Guru
Posts: 827
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
Quote:
play -t mp3 http://provisioning.streamtheworld.com/pls/KSKYAM.pls This took several seconds to start, as the URL returns a playlist and it appears that sox checks the individual links before it starts playing. This command is unusable on the pw4, as there is no default sound device, even once I get the wget situation sorted out. But the sox command version should be usable once wget works properly. Unfortunately soxi cannot return information on the stream format, so unless you know that ahead of time it will be impossible to build the gst-launch pipeline. So at this point it should be possible to programatically play any file on the pw4 that sox recognizes and soxi will return the information required to build the gst-launch pipeline. I guess I should create a shell script to do so as the next step. Getting sox to use a version of wget other than the the busybox version will be necessary before internet streams can be played, and even at that point the format will need to be known ahead of time to build the gst-launch pipeline and the sox command line. Dave |
|
Tags |
audiobook, bluetooth, jailbreak, m4b, mp3 |
Thread Tools | Search this Thread |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Issue with finding audiobook metadata on Amazon | angelyne | Calibre | 6 | 10-21-2018 08:52 AM |
Listen Audiobook Player question | Hrafn | Audiobook Hardware & Software | 0 | 06-16-2018 02:36 AM |
Listen Up - We've got a brand new audiobook forum | Alexander Turcic | Announcements | 11 | 09-10-2014 06:18 PM |
Amazon Ebooks and downloaded Audiobook | ErikaGC | Kindle Fire | 1 | 06-10-2013 12:13 PM |
Sony & Amazon, etc. - Why No Wifi or Bluetooth? | poohbear_nc | News | 8 | 08-26-2009 04:29 PM |