scream icon indicating copy to clipboard operation
scream copied to clipboard

Can Receivers work on ARM?

Open daiaji opened this issue 5 years ago • 8 comments

In fact, my USB stereo can't save the volume configuration on Linux (reconnecting it to a very small initial volume after power failure) I had to keep the USB sound working. But fortunately, I bought a ARM development board before, though its Linux kernel has some minor problems. Can I cross compile Receivers for the ARM development board?(I have no experience with that)

daiaji avatar Aug 31 '18 08:08 daiaji

Yes, compiling should work out of the box if you have the necessary dev packages installed with your toolchain (pulse or alsa development packages).

duncanthrax avatar Aug 31 '18 16:08 duncanthrax

@duncanthrax While the process of building the kernel is quite painful But I try to build receivers and report after I've built the kernel and rootfs.

daiaji avatar Sep 01 '18 06:09 daiaji

@duncanthrax I don't know what to do.

aarch64-linux-gnu-gcc -Wall -o scream-pulse scream-pulse.c -lpulse-simple -lpulse
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: cannot find -lpulse-simple
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: cannot find -lpulse
collect2: error: ld returned 1 exit status
make: *** [Makefile:5: scream-pulse] Error 1

daiaji avatar Sep 04 '18 13:09 daiaji

You need to provide the pulseaudio static lib (libpulse.a and libpulse-simple.a) files. Those also need to be built for the same arch (ARM).

If you already have those, GCC might not find them. Add an -L parameter to the gcc call in the Makefile to point to their location.

duncanthrax avatar Sep 04 '18 14:09 duncanthrax

@duncanthrax In fact, I gave up cross compilation. It doesn't seem so slow to compile Receivers on ARM devices. After installing pulseaudio, scream-pulse seems to be able to run. But then I found that my kernel didn't seem to have sound card drivers, so I had to rebuild the kernel.😰

daiaji avatar Sep 04 '18 15:09 daiaji

@duncanthrax After I gave up compiling scream-pulse and compiling scream-alsa, Scream-alsa works very well. But I found out at the same time, if so, how can my Host play the audio? But at least scream-alsa can work on Ubuntu arm64. Thank you😋

daiaji avatar Sep 05 '18 05:09 daiaji

@duncanthrax

Home directory not accessible: Permission denied
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
Writing again after short write 212 < 245
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
Writing again after short write 166 < 245
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
Writing again after short write 166 < 245
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred

Receivers throws up some mistakes. But Receivers is working.

daiaji avatar Sep 05 '18 10:09 daiaji

Solution: Use stream receiver in raw mode outputting to snapserver's pipe, then on the raspberry use just snapclient. No underrun! Moreover you can connect many snapclient you want and enjoying multiroom synced audio.

aventrax avatar May 25 '20 16:05 aventrax