So I may be reviving an old thread but now that the Raspberry Pi 2 is out, I thought I'd revisit gqrx on the Pi. I ran into the same processing conclusion with the B+ but with the new A7 quad core I thought it might be enough to get gqrx to work. I did ultimately get the application to run without any errors, however it still pegged the 4 cores between 86-100% and I wasn't getting good sound quality. I have an android tablet that I use for a nice mobile platform for SDR and there's an app on there "sdrtouch" that's running great with just the spectrum and a dual core Atom Acer tablet I got for $79. I'd love to see gqrx run on the new platform. So I guess the design question is are there components that could possibly be disabled to save on CPU cycles? I'm doing a learn-as-you-go project with my son on a Pi with a 3.5" display and we're playing with the SDR capabilities. Could the waterfall be completely disabled to save on processing power for example?
For anyone who wants to keep trying here's what I did to get it working on the Pi2:
I first tried some recommendations on trying it from the jesse repo by adding "deb
http://archive.raspbian.org/raspbian jessie main" to sources.list. The gqrx, gr-osmosdr, and rtl-sdr all installed. rtl-sdr worked great but gr-osmosdr's osmocom_fft crashed until I added this to the Pi's /boot/config.txt (found in another post). Then that worked.
framebuffer_depth=32
framebuffer_ignore_alpha=1
At first I had an issue with gqrx and pulseaudio till I followed some other online posts and added the following line to /etc/pulse/
default.pa (reboot after making the change)
load-module module-alsa-card device_id=0
Then gqrx would run for about 2-3 seconds but then start printing all zero's. However all of the rtl apps worked fine. rtl_test came back fine, and I could play with rtl_fm (pick your fav frequency/radio station to test):
rtl_fm -f $FREQUENCY -M wbfm -s 32k - | play -r 32k -t raw -e s -b 16 -c 1 -V1 -
So... I went back to source on everything and got the latest versions of rtlsdr, osmocom, libosmo-dsp, and gqrx from source and built them all. Now all of the apps ran without error, but still no good FFT or waterfall and the cpu's were pegged. I would bet if there were some checkboxes to disable higher cpu utilization functions that a user may be okay sacrificing on a Pi (like the waterfall), this would work great.
For anyone who wants to try, I tried to turn my steps into a bash script as I was making the changes. May be worth tinkering with (or wait for a Pi3?):
# -----------------------------------------
# script to install components from source
#!/bin/bash
# Set up rtlsdr and gr-osmosdr from source
echo "[`date`] Installing prerequisites..."
apt-get -y install hackrf libhackrf-dev boost-all-dev liblog4cpp5-dev swig fftw3 fftw3-dev doxygen
echo "[`date`] Removing repo versions if installed..."
apt-get remove rtlsdr gr-osmosdr
SDRROOT="/opt/sdr-build"
echo "[`date`] Setting up rtl-sdr..."
if [ -e $SDRROOT/rtl-sdr/build ]; then
echo "[`date`] found $SDRROOT/rtl-sdr/build. Uninstalling previous version."
cd $SDRROOT/rtl-sdr/build/
make uninstall
make clean
cd $SDRROOT
rm -rf rtl-sdr
fi
cd $SDRROOT
echo "[`date`] Getting rtl-sdr source..."
git clone git://
git.osmocom.org/rtl-sdr.git rtl-sdr
mkdir -p $SDRROOT/rtl-sdr/build
cd rtl-sdr/build
cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
make
make install
ldconfig
make install-udev-rules
echo "[`date`] Getting osmosdr..."
if [ -e $SDRROOT/gr-osmosdr/build ]; then
echo "[`date`] found $SDRROOT/gr-osmosdr/build. Uninstalling previous version."
cd $SDRROOT/gr-osmosdr/build/
make uninstall
make clean
cd $SDRROOT
rm -rf $SDRROOT/gr-osmosdr
fi
cd $SDRROOT
git clone git://
git.osmocom.org/gr-osmosdr gr-osmosdr
mkdir gr-osmosdr/build
cd gr-osmosdr/build
cmake ../
make
make install
ldconfig
echo "[`date`] Building libosmo-dsp..."
cd $SDRROOT
git clone git://
git.osmocom.org/libosmo-dsp.git libosmo-dsp
cd libosmo-dsp
autoreconf -i
./configure
make
make install
ln -s /usr/local/bin/osmocom_fft /usr/bin/osmocom_fft
echo "[`date`] Building gr-iqbal..."
cd $SDRROOT
if [ -e $SDRROOT/gr-iqbal/build ]; then
echo "[`date`] found $SDRROOT/gr-iqbal/build. Uninstalling previous version."
cd $SDRROOT/gr-iqbal/build/
make uninstall
make clean
cd $SDRROOT
rm -rf gr-iqbal
fi
cd $SDRROOT
git clone git://
git.osmocom.org/gr-iqbal.git gr-iqbal
mkdir gr-iqbal/build
cd gr-iqbal/build
cmake ../
make
make install
ldconfig
echo "[`date`] Building gqrx...."
if [ -e $SDRROOT/gqrx/build ]; then
echo "[`date`] found $SDRROOT/gqrx/build. Uninstalling previous version."
cd $SDRROOT/gqrx/build/
make uninstall
make clean
cd $SDRROOT
rm -rf gqrx
fi
apt-get -y install libqt4-dev libqtcore4 libqtgui4 libqt4-network libqt4-svg
cd $SDRROOT
git clone
https://github.com/csete/gqrx.git gqrx
mkdir -p gqrx/build
cd gqrx/build
qmake ..
make
make install
ln -s /usr/local/bin/gqrx /usr/bin/gqrx
echo "[`date`] For a Raspberry Pi 2 add the following lines to /boot/config.txt"
echo "framebuffer_depth=32"
echo "framebuffer_ignore_alpha=1"
echo ""
echo "[`date`] for Pulseaudio to work correctly in gqrx on a Raspberry Pi/2, edit /etc/pulse/
default.pa and add the line:"
echo "load-module module-alsa-card device_id=0"
echo "then reboot."
echo ""
echo "[`date`] Done."
# -----------------------------------------