Category Archives: Linux

Use Pulse Audio to Pipe Audio Streams Between Programs

Looking for a way to pipe audio from one program to another without using JACK? Pulse Audio, default sound system for Ubuntu can do this and it’s really not that hard.

1. Install pavucontrol

sudo apt install pavucontrol

2. Set up a null sink

pactl load-module module-null-sink sink_name=virtual-cable

3. Connect aps via the null sink

In this example I will use QSSTV to listen to the output of GQRX. You can use any programs you want.

Run Pulse Audio Volume Control (pavucontrol)

In the “output devices” tab, set the audio output for the program you want to monitor or record to Null Output.

In the “recording” tab, set the capture from for the “recording” program to Monitor of Null Output

And that’s about it! Enjoy!

Viewing ISS SSTV Images Using GQRX and QSSTV and RTL Dongle on Ubuntu 20.20

When the International Space Station passes overhead it is still possible to view the SSTV (Slow Scan Television) images they are sending on 145.800Mhz using your Linux computer and a Realtek SDR USB Dongle. I did this on Ubuntu 20.20 but it should work on any Linux running pulse audio.

NOTE 1:  12-31-2020 is the last day the ISS will be transmitting images (for now). This tutorial can still help you get GQRX sending audio to QSSTV or any other “recording” app.

Step 1: Install and configure GQRX

First, get GQRX running using this How To: https://gqrx.dk/download/install-ubuntu

NOTE: When I installed GQRX on Ubuntu 20.20 only the myriadrf repos worked. Your mileage may vary.

You now need to run GQRX and configure it to work with your dongle. This is out of the scope of this howto and much info is available via Google. Once you can listen to radio via GQRX it’s time to move to the next steps.

Here is what my settings for the ISS look like:

Step 2: Install and configure QSSTV

I followed this guide to get QSSTV working, however, I found that howto a bit over complicated and many of the steps unnecessary if you already have GQRX installed. I was simply able to install QSSTV like this:

sudo apt install qsstv

Run QSSTV and in the configuration for sound set input and output to Pulse Audio.

Step 3: Install Pulse Audio Volume Control

Now that you have both your apps, you need to install some stuff to get pulse to make them play together. First install pavucontrol:

sudo apt install pavucontrol

Step 4: Invoke the NULL Sink

Finally it’s time to make a dummy sink. This is the glue that puts it all together. Using pavucontrol, any app can be outputted to the null sink and then any other app can record from this null sink.

pactl load-module module-null-sink sink_name=virtual-cable

Step 5: Connect the Programs

Once this null sink is created open up Pulse Audio Volume Control, GQRX and QSSTV. In the recording tab, set the input for QSSTV to Monitor of Null Output.

Finally in the output devices tab, set GQRX to Null Output.

That should be about it.

Find out when the space station is passing overhead and then tune GQRX to 145.800… QSSTV will do the rest. Feel free to post any questions you may have.

NOTE: You can use this technique to pipe audio from any program to another.

Enjoy!

Installing Chirp in Ubuntu 20.04

If you have been using the PPA to get the Chirp dailies, you will quickly find out that this no longer works in Ubuntu 20.04 Focal.

Python 2 is getting phased out and whatever is running the GUI for Chirp has been phased out completely. This makes getting Chirp to run a little more difficult than before.

UPDATE: It looks like major progress has been made with the Python 3 upgrade and Chirp is available in Groovy (20.10)! This article will likely be outdated soon. 

As of this writing, there are a few options:

  1. Wait until the python 3 version of Chirp is finished (NOT!)
  2. Install via the Snap: This gives a warning against doing so
  3. Install via flatpak: WINNAR!

A Flatpak is a self contained package that includes all necessary libraries. Similar to a Snap, but this uses a package directly from the author. I like the flatpak option because I don’t need to manually install a bunch of deprecated libs or add some PPA that wasn’t even meant for Ubuntu.

Note from user: If you already have Chirp installed, you will need to remove it first. See comments section for details.

First thing you need to do is download the latest .flatpak file from here:

https://trac.chirp.danplanet.com/chirp_daily/LATEST/

Rest of the work is from the terminal.

First, install Flatpak:

$ sudo apt install flatpak

The other howtos seem to have missed this next step. You need to use flatpak to install the “freedesktop” platform. First update flatpak and your paths.

$ flatpak update -v

This will give you a warning about paths, something like:

Note that the directories

'/var/lib/flatpak/exports/share'
'/home/[username]/.local/share/flatpak/exports/share'

are not in the search path set by the XDG_DATA_DIRS environment variable, so applications installed by Flatpak may not appear on your desktop until the session is restarted.

Since we now have to log out anyway, now might be a good time to make sure you are in the dialout group.

Use  the groups command to list your active groups. If the group “dialout” does not appear, add yourself to the group (replace [username] with your username):

$ sudo usermod -aG dialout [username]

Now restart your session (or computer) and return to the terminal.

~$ flatpak update -v
Looking for updates…
Nothing to do.

Don’t worry about installation directory warnings if you haven’t installed anything yet. Those will be created later. Important is that we got rid of the path warning. Moving on….

Now you need to get the Freedesktop repository installed:

$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

and then install the Freedesktop Platform:

$ flatpak install flathub org.freedesktop.Platform//19.08

This might take a while its a big (~0.5Gb) download. Grab some coffee and make some QSO’s….. Maybe check out my club’s website: http://w6ek.org

Finally we can install Chirp!  (replace .flatpack filename with your downloaded version)

$ flatpak install Downloads/chirp-daily-20201014.flatpak

You’re done! You can run chirp from your applications menu or from the command like like this:

$ flatpak run com.danplanet.chirp

Remember, this is only a temporary solution until the Python 3 conversion of Chirp has been completely rolled out. However, in the interim if you want to easily update the flatpak, or automate it with a cron job, here is a script that works for me:


#!/bin/bash
#
#
# This script updats chirp flatpak to latest daily build
# Add this to root's crontab for automatic updates
# If run as standard user, you will get a popop asking for admin password
#
#
#Make download folder if doesn't exist
mkdir -p ~/Downloads/ChirpFP
#Move to Download folder
cd ~/Downloads/ChirpFP
#Remove previously downloaded flatpaks
rm *.flatpak
#Pull link from download page and download latest flatpak
wget `lynx -dump https://trac.chirp.danplanet.com/chirp_daily/LATEST/ | awk '/http/{print $2}' | grep flatpak`
#Install the file
flatpak install -y --noninteractive *.flatpak

If you found this article helpful, please support me by subscribing to my YouTube channel! https://youtube.com/piratesinteepees

73 – KK6VHH

Boot Partition in Ubuntu Keeps Running out of Space After Upgrade to 18.04

After I upgraded to the latest LTS from Ubutnu, namely 18.04, I was finding I could never have more than two kernels installed at a time. /boot kept running out of space and updates would fail. Running sudo apt autoremove && sudo apt autoclean would resolve the issue until the next upgrade. This was tolerable until I needed to install both a generic and a low-latency kernel.

Looking at my df output it almost seemed as if the upgrade swapped my efi and boot partitions. My efi partition was 500MB and my boot partition only 250MB! The solution I found was to resize the partitions to make the efi partition 100MB and the boot partition 650MB. This process wasn’t as easy or smooth as I initially thought, so I figured I would document what it took to make it work.

Step 1 – Boot a Live USB

First thing you need is to have a liveUSB from ubuntu that you can boot into:

Create a Bootable USB Drive in Ubuntu

Boot into this drive, selecting “Try Ubuntu Without Installing”

Step 2 – Resize the Drives

After Ubuntu boots, open a terminal and type sudo gparted. In gparted, resize your efi drive to 100MB first, then resize your boot partition into the remaining space. Make sure no flags are set for the boot partition and the boot,esp flags are set for the EFI partition.

When you resize the EFI System Partition, it will change to fat16. This needs to be reformatted back to fat32 to work. Once this is done right click on efi partition, and select New UUID. Once this is done apply all settings and quit gparted.

Step 3 – Install and Run Boot Repair

Now you need to install and run boot repair from withing the live USB environment.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

Once boot repair loads, click the recommended repair button and follow onscreen instructions.

Once you are done, reboot!