Monday, 18 October 2021

RASPAD3 and SDR++ on RaspberryPi

Going to be trying a few other SDR.

Raspberian OS and compiled on the RaPi4 (before putting into RASPAD3).

RX only. SDRPlay (version 1)

RX and TX. Lime Mini SDR and Adalm Pluto SDR (found it)

I use an external USB 3.0 powered hub with these.

I expect will also try the DragonOS for the RaPi as well.

I have an SDR and an HF upconverter (basically an RTL dongle) so you can sample down to about 50Hz is needed, will try that was well.

This had already been tested by David Taylor https://twitter.com/gm8arv and the developer https://twitter.com/cemaxecuter of Dragon OS using other SDR.


update: 20th October 2021

I added the software for the Lime Mini SDR and the Pluto SDR, going to be taking a copy of the SD card before do anything else.


Last night checked both the speaker and audio out connections with a simple music WAV file playing in a loop. Didn't want RF issues.


Note: SDR++ used was the source build 1.0.4 obtained from https://github.com/AlexandreRouma/SDRPlusPlus/releases and compiled on the RaPi (see this blog post for details) https://m1kta-qrp.blogspot.com/2021/10/installing-gqrx-and-sdr-on-raspberrypi.html

What it could do when was version V1.0.0 this is what AlexandreRouma at the time:

SDR++ v1.0.0 Released!

Hi everyone :)

After over a year of work, I'm proud to released version 1.0.0 of SDR++!

For those who don't know, SDR++ is a crossplatform (Windows, Linux, MacOS, BSD) and open-source (https://github.com/AlexandreRouma/SDRPlusPlus/releases) general purpose receiver software meant to be simple and easy to use. It has advances features like multi-vfo and uses a fully custom DSP making it very efficient.

Here are the following additions compared to the last version:

  • Support for the SpyServer protocol

  • Support for all SDRplay devices

  • Support for all BladeRF devices

  • Support for all LimeSDR devices

  • Optional IQ correction

  • Optional Decimation

  • Broadcast FM Stereo

  • Frequency manager to create lists of frequency and optionally display them directly on the FFT/Waterfall

  • Network sink to stream the audio output via TCP or UDP

  • Options to set the FFT framerate, FFT size and FFT window.

  • Theming with Dark and Light themes supplied by default

  • RigCTL server module to control SDR++ from, for example, gpredict.

  • A bunch of keyboard shortcuts (see wiki on the github page)

  • SNR meter

  • More info when hovering a VFO

  • Colored VFOs to easily identify which is which at a glance

  • Meteor M2 demodulator compatible with LRPTOfflineDecoder and Satdump

  • Ability to resize VFOs by directly dragging the sides on the FFT and waterfall

  • Module manager to easily add or remove any module on the fly without having to restart or edit the config manually

  • File dialogs to select directories in the recorder or files in the file source (instead of having to type in the path)

  • Ability to disable modules that support it (Radio and Meteor M2 demodulator) with one click (to save CPU power or just if they're not needed)

  • Lots of performance improvements

  • Ludicrous amounts of bugfix :)

I'd like to thank the many contributors, patrons and companies (SDRplay, Airspy, Nuand, LimeMicro) who helped make this project possible!

If you have any issue with the software, please open a github issue or contact me directly on the SDR++ discord (see readme on github)

I hope this software comes in useful to at least some of you ;)



Thursday, 14 October 2021

RASPAD3



 

 Will turn this into SDR thing tomorrow. 

I compiled the SDR++ and GQRX for the RaPi4 yesterday.


Wednesday, 13 October 2021

Installing GQRX and SDR++ on RaspberryPi

 Installing GQRX and SDR++ on RaspberryPi

These are all the steps I actually performed.

sudo apt update
apt list --upgradable
sudo apt install gqrx-sdr
rtl_test -t
gqrx

So GQRX sort of worked...

So SDR++

Grab the source
git clone https://github.com/AlexandreRouma/SDRPlusPlus.git
ls
cd SDRPlusPlus
mkdir build
cd build/
cmake ..

so erroring as missing these packages....fftw3 glfw glew libvolk

so to install them...
sudo apt-get install freeglut3
sudo apt-get install freeglut3-dev
cmake ..
sudo apt install libglew-dev
cmake ..
sudo apt install glfw3
sudo apt install libglfw3-dev
cmake ..
sudo apt install libairspy-dev
cmake ..
sudo apt install libairspyhf-dev
cmake ..
sudo apt install libhackrf-dev
cmake ..
sudo apt install libsoapysdr-dev
cmake ..

libiio missing....so get that compile and install

cd
git clone https://github.com/analogdevicesinc/libiio.git
cd libiio/
cmake ./
See what errors are (there were some)
cat /home/pi/libiio/CMakeFiles/CMakeOutput.log

install more prerequisites some were already there so it ignores them (from an SDR pluto install doc)
sudo apt-get install libxml2 libxml2-dev bison flex libcdk5-dev cmake
sudo apt-get install libaio-dev libusb-1.0-0-dev libserialport-dev libxml2-dev libavahi-client-dev doxygen graphviz

Try the libiio build again
cmake ./
make all
sudo make install
Add the path bit
PATH=/usr/lib/:$PATH
check it is working iio_info

go back to SDR _++ again
cd ..
cd SDRPlusPlus/
cd build/
cmake ..

so more missing get and install them

cd
git clone https://github.com/analogdevicesinc/libad9361-iio.git
cd libad9361-iio
cmake ./
make
sudo make install
cd ~/SDRPlusPlus/build/
cmake ..

still more missing

wget http://www.music.mcgill.ca/~gary/rtaudio/release/rtaudio-5.1.0.tar.gz
mv rtaudio-5.1.0.tar.gz ~/Downloads/
cd
cd Downloads/
tar -zxvf rtaudio-5.1.0.tar.gz
cd rtaudio-5.1.0/
mkdir build && cd build
cmake ../
make
sudo make install

Back to SDR++
cd
cd SDRPlusPlus/build/
cmake ..
this time no errors
used N=4 as 4 cpu make -j 4
It maxed out the CPU for a few mins
sudo make install

That's it SDR++ and GQRX both installed

 

Yes I am sure much of the missing bits were listed in the prerequisties docs of both but we all read those don't we :-) Of course I had added the development environment to it as well. Mine has 128GB SD card (high endurance) and has a 3TB SSD attached which takes and stores backups, snapshots etc I use an adaptor as well so I don't have to insert the MiniSD card into the Pi.

Saturday, 9 October 2021

Panic.... "Cannot open access to console, the root account is locked."

Last weekend I built myself a nice Pi 4 system for the shack. Everything worked perfectly, but today as I rebooted the Pi would simply not boot up. Usually I run almost all my Pis in a headless configuration but as this is the desktop for the operating position I had monitors connected.
 Eek, there is was, there it was, The Pi would get stuck at boot with the following error message

"Cannot open access to console, the root account is locked."
The error message while not too descriptive, it asked me use sulogin and run journalctl -xb however there was no shell to run or list anything.

I thought oh no there goes the system will have to rebuild it. However, I thought I would investigate some more.

After some google work, I found the following workaround that worked for me. Note for those that try to do this themselves: You will need access to a display,keyboard and a laptop/desktop to do the following steps

Retrive your SD card from the Pi and using a adapter mount the card to your PC,Mac or Linux. I use a rocketek that takes either normal or small SD cards .You should be able to see the /boot partition of your SD card.
Locate the file fstab in the rootfs partition and edit out the usb drive I added in last time and left in place! You might need to sudo to root to write this file or the next one see later if that is the case....
Or find the bootfs and look for the cmdline.txt file and add the following at the end of the line init=/bin/sh Note: Do not create a new line, just add the above to end of the current line. This will make the system give you a prompt so you might be able to figure out what the problem is. A bit like one of the earlier linux installs.
Load the SD card back into the pi and boot up.
if you did the cmdline.txt change you should now get the a root shell prompt and I expect you will know how to fix it from there. You could undo the changes to /etc/fstab or whatever else that  might have caused an issue.
I found I could not make and save the changes to the files as the system will complain the SD card is read only file system. If you get that move to the next sections.

A raspberry pi SD card will has two main partitions, since we cannot read the partition table directly you must manually locate the device for your root and boot partitions. You can do this by going to the /dev directory and you should see something similar to mmcblk0p1 & mmcblk0p2. You could use ls -l to check.

Mine is:

brw-rw----  1 root disk    179,   0 Oct  8 18:28 mmcblk0

brw-rw----  1 root disk    179,   1 Oct  8 18:28 mmcblk0p1

brw-rw----  1 root disk    179,   2 Oct  8 18:28 mmcblk0p2

The second device mmcblk0p2 will be your root partition. You need to remount this with read write permissions

mount -o remount,rw /dev/mmcblk0p2 /
Once this is remounted, go ahead and edit your /etc/fstab and save it.

The offending line in mine was:

#/dev/sda1 /disk1 auto defaults 1 1

Before you exit, make sure you revert the change to the cmdline.txt in the /boot partition. You may need to mount that in read write mode as you did above for the /root partition before you can change it.

mount -o remount,rw /dev/mmcblk0p1 /boot

Alternatively you can revert back the change to cmdline.txt on your laptop as I did using the USB adapter.

If everything goes well, you should be able to boot back your Pi in a normal way.

Panic over