gasparka / spectrogram

80MHz bandwidth with LimeSDR-Mini and GQRX
106 stars 23 forks source link

[Question] Support for Raspberry Pi Zero W? #20

Closed jjmckee17 closed 5 years ago

jjmckee17 commented 5 years ago

Just wondering if anyone has had any success running this on a Raspberry Pi Zero W? There is an extra step required to set up docker here. Once docker is properly installed, the spectrogram app runs, but it doesn't detect the LimeSDR-Mini device.

2019-10-02 12:46:48.843 | INFO     | __main__:probe_devices:83 - Probing for LimeSDR-Mini devices...
2019-10-02 12:47:36.379 | INFO     | __main__:probe_devices:106 - remote_available=False, local_available=False, local_fpga_ok=False
2019-10-02 12:47:36.404 | INFO     | __main__:main:139 - No local device found, cant start the server
gasparka commented 5 years ago

What is the output of SoapySDRUtil --probe?

jjmckee17 commented 5 years ago
pi@raspberrypi:~ $ SoapySDRUtil --probe
######################################################
## Soapy SDR -- the SDR abstraction library
######################################################

Probe device

RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (default), No such file or directory.

[ERROR] SoapySSDPEndpoint::sendTo(udp://[ff02::c]:1900) = -1
  sendto(udp://[ff02::c]:1900) [99: Cannot assign requested address]
[INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3
Error probing device: device_id missing.
gasparka commented 5 years ago

Strange stuff. Lets try inside the docker image:

docker run -i --privileged --net=host gasparka/spectrogram:arm SoapySDRUtil --probe="driver=lime"
jjmckee17 commented 5 years ago

Seems like the issue is trying to run arm32v7 docker images on the Raspberry Pi Zero W device. This command exits immediately with a return code of 139 (segfault). It doesn't output anything to the terminal and docker logs also outputs nothing.

Running the generic docker run -it arm32v7/ubuntu:18.04 bash also exits immediately with segfault.

However, docker run -it arm32v6/alpine sh does work.

gasparka commented 5 years ago

Ok that is a surprise to me. There is not even Ubuntu docker image for arm32v6, thus porting looks not trivial. I feel this is probably not worth the effort, but if you like you can try to ditch docker and just install everything manually (but i estimate you end up using alot of time). You can look at the https://github.com/gasparka/spectrogram/blob/master/Dockerfile.arm on what needs to be installed. Of course, i am able to help if you get stuck.

Also maybe take a look at some modern compute modules, like Jetson Nano - i have already verified that everything works there :)

jjmckee17 commented 5 years ago

Thanks again for your great support. I agree that it's probably not worth the effort to port to PiZero. I could go through the effort of installing everything manually - likely just to hit the next dependency/performance roadblock with another section of my project! Better to stick with the more capable and mature Pi 3.