Windows Subsystem for Linux (WSL) and SDR in Windows 10                                                                 

A Windows feature around for some time in Windows 10.

Windows Subsystem for Linux - WSL.

Mainly targeted for web developers to run native Linux command-line tools directly on Windows without a Gui Interface.
Using the common Linux toolchains allows you to install and run Linux applications on Windows.

No virtual machine is required and there is no dual booting.
Unlike a virtual machine, WSL don’t require to allocate resources.
Instead WSL uses whatever resources are available on the host machine.
This can be very good for older machines, which are low in resources.

Windows Subsystem for Linux (WSL) is a good option because it starts very quickly, because it does not boot a new kernel.
Performance in WSL can be close to bare metal Linux installations in mostly CPU-intensive tasks, but Disk IO isn’t as quick as native Linux installations.
You can use WSL as a replacement for VM, depending on your needs.
But WSL isn't a full replacement for a native Linux or Linux running in a Virtual Machine.

Microsoft is busy with WSL2 which act more as a Virtual machine, at this time of writing only available in Windows Insider Builds.
And not covered overhere.

Since WSL does not use a real Linux kernel, actually it is not a separate isolated virtual machine but rather a process in windows itself.
There are some compatibility problems and limitations with WSL, not all hardware resources are available in WSL.
Your linux applications cannot access some of the hardware USB devices directly like SDR Dongles.
However USB Serial Adapters like GPS are working and off course networking.

There enough tutorials covering Docker and other sorts of development on the net, boring...
Install X-Server push WSL to its limits with SDR and see whats possible!

This tutorial explains how to install Ubuntu 16.04 with a Desktop Interface in WSL usable for some SDR Applications.
In this example (Windows 10 1809 LTSC) RTL_TCP will act as a server in Windows allowing SDR Applications in WSL to connect thru the TCP protocol.



Nooelec NESDR SMArTee - Premium RTL-SDR VHF-UHF.

msi.sdr HF.


E4000 Terratec on Es-Hail.

Software tested: AX-25 Packet Radio, Dab Radio, DSD, Es-Hail Beacon Tracker, Sat Tracking with Gpredict and Gqrx, NOAA Reception WxToImg, Radiosonde Decoding, Shortwave Reception

Enable WSL

Enable Windows subsystem for Linux:

Prerequisite for Linux support is a 64-bit version of Windows 10 as of build 1709 for WSL.

In Control Panel, under Programs => Windows Features, enable the Select Windows subsystem for Linux component.
For this action to take effect, you have to restart the computer.

Or press the key combination Windows + R.
In the Execute dialog type in OptionalFeatures and confirm with Enter.
Put a check mark in the small window for Windows Subsystem for Linux and click on OK and then on Restart Now.

Or enable thru PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Install Distro

Distros don't make much difference in WSL, especially if they have a same base,
It's just different desktop environment (Graphical Interface) and some other packages like gcc ect which may differ.

Download the Linux distribution of your choice.
You can use the Microsoft Store to download the distribution.
In LTSC the Microsoft Store is not available, you can download and manually install Linux distros anyway.

Ubuntu 16.04 LTS (Xenial) is the first release available for WSL.
Ubuntu 18.04 LTS (Bionic) is the second LTS release.
Ubuntu 20.04 LTS (Focal Fossa) current release, beware not everything works as expected!

Installing your Ubuntu Distro:

Extract with 7zip to a folder of choice.
Double click ubuntu.exe file and wait a few moments the screen will inform you that it’s Installing.

After install enter new UNIX username and password.
These don’t need to be the same as your Windows 10 credentials.
With this step complete, you’ll find yourself at the Ubuntu bash command line.

After install, there only will be root as user enter in terminal:

useradd -m <username>
passwd <username>
usermod -a -G sudo <username>
su - <username>
It will show us /bin/sh and change it to /bin/bash
And exit to leave.

Change username in windows command prompt type:

Ubuntu-20.04 config --default-user <username>

Start Ubuntu 20.04 and the user should be there instead of root access.

It is important that Ubuntu is updated before starting this process.
Enter following command to fully update and upgrade Ubuntu, entering your Ubuntu user password when prompted:

sudo apt-get update && sudo apt-get upgrade -y

Get rid of the unneeded packages:

sudo apt-get autoremove && sudo apt-get autoclean -y

Install XFCE4 Desktop

Install XFCE desktop environment.

In Ubuntu shell, enter following command to install XFCE desktop environment:

sudo apt-get install xfce4-terminal xfce4 xfce4-cpugraph-plugin xfce4-systemload-plugin xfce4-weather-plugin xfce4-whiskermenu-plugin preload gnome-themes-standard -y

Add pcmanfm to the list if you want another filemanager, for a file editor mousepad, pluma ect, p7zip-full file-roller if needed.

Be prepared for some mb's to download and a long install :)

X-Server Running Graphical Applications.

When you first install Ubuntu/WSL, it doesn’t include any X Window related libraries or utility programs.
Install one from several X servers (X410, MobaXTerm, VcXsrv, Xming) available for Windows.

Recommended is X410.

You can install X410 from Microsoft Store
Use the store link on to download it manually.

Enabling Sound.

The WSL environment does not support audio, by default, there’s no sound.
But it can be enabled by installing the PulseAudio version 1.1 it's old but it works on Windows 10.
Ubuntu detects the running PulseAudio server and enables audio.

Following this simple guide from the developers of X410

Create a batch file for launching X410, PulseAudio and Xfce named Desktop.bat

REM ### Start X410 in Desktop Mode /wm window
del C:\Users\Happysat\.pulse\VBOX-W10-runtime\pid  <<--
start /B C:\Ubuntu-16.04\X410\X410.exe /desktop     <<-- Start X410 X-Server before entering the WSL environment.
start "" /B "C:\Ubuntu-16.04\pulseaudio\bin\pulseaudio.exe"  <<-- Start PulseAudio.
REM ### Start Linux GUI desktop
timeout 1
start C:\Ubuntu-16.04\Ubuntu-16.04.exe run "if [ -z \"$(pidof xfce4-session)\" ]; then export DISPLAY=; export PULSE_SERVER=tcp:; xfce4-session; pkill '(gpg|ssh)-agent'; taskkill.exe /IM x410.exe; taskkill.exe /IM pulseaudio.exe /F; fi;"

Edit paths ect if you use a different desktop environment.

When xfce4-session is launched, it automatically tries to start ssh-agent and gpg-agent which can result in errors.
Disable ssh-agent and gpg-agent error messages:

xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false
xfconf-query -c xfce4-session -p /startup/gpg-agent/enabled -n -t bool -s false

Those agents can still be running even after terminating the xfce4-session.
In order to terminate the agents since they are no longer needed or used, pkill '(gpg|ssh)-agent'; is added in the batch file.
X410 and Pulseaudio are also killed when the desktop does logout.

Create a vbs file insert:

CreateObject("Wscript.Shell").Run "Desktop.bat", 0, True

Use it to start the Xfce4 Desktop, without seeing the command window.

Remove Screensaver:

You can completely remove the screensaver by executing the following command:

sudo apt purge xscreensaver gnome-screensaver light-locker

After many screwing around it is possible your current distro is unable to start, removing all files and folders in Ubuntu-16.04\rootfs\tmp can help.
Otherwise check Taskmanager and kill any running instance of init, conhost, wsl.exe, wslhost.exe will help.

If shit really did hit the fan wslconfig /list find distro name and wslconfig /unregister <DistributionName>
Unregisters the distribution from WSL so it can be reinstalled or cleaned up.

Install SDR Driver / RTL_TCP

Install RTL-Driver for Linux.

Install Dependencies:
sudo apt-get install git cmake build-essential libusb-1.0-0-dev

git clone git://
cd rtl-sdr-blog/
mkdir build
cd build
sudo make install
sudo ldconfig
sudo cp ../rtl-sdr.rules /etc/udev/rules.d/
echo blacklist dvb_usb_rtl28xxu >> blacklist-rtl.conf
echo blacklist rtl2832 >> blacklist-rtl.conf
echo blacklist rtl2830 >> blacklist-rtl.conf
sudo cp blacklist-rtl.conf /etc/modprobe.d/

Download rtl_tcp for Windows:

rtl_tcp is significantly improved by modifying to code to use a ring buffer instead of using semaphore based locking.
The result is a tremendous performance improvement in rtl_tcp.

After the ring buffer changes rtl_tcp can handle much better and higher maximum sample rate's with less lag.
Unfortunately this patch is not included in the official upstreamed Osmocom drivers.

Or without the ring buffer enhancement (uses less cpu time good for less powerfull machines):


Run from Windows or Ubuntu (make sure the path is set right e.g. /mnt/(path to rtl_fm.exe)/rtl_fm.exe) command line in the Windows rtl_tcp folder.
So the rtl_TCP Server is accessible for connections:

rtl_tcp -a -d0 -g 49.6 -P 0

SDR-Play: rsp_tcp -a

Change ip adres to or local ip adres.

It is also possible to use the other rtl tools like rtl_fm and rtl_sdr (the windows versions!) thru the command terminal from Ubuntu.
Again just make sure the path is set right e.g. /mnt/(path to rtl_fm.exe)/rtl_fm.exe or /mnt/(path to rtl_sdr.exe)/rtl_sdr.exe -f frequency -p (ppm) -d (device #) -s samplerate ect..

Airspy_rx should also work -

Example rtl_tcp Script Ubuntu:


TITLE="Available SDR Devices"
MENU="Choose one of the following options:"

OPTIONS=(1 "SDR #1 Double Cross RTL_TCP"
         2 "SDR #2 Ground-Plane RTL_TCP"
         3 "SDR #3 Shortwave RTL_TCP"

CHOICE=$(dialog --clear \
                --backtitle "$BACKTITLE" \
                --title "$TITLE" \
                --menu "$MENU" \
                $HEIGHT $WIDTH $CHOICE_HEIGHT \
                "${OPTIONS[@]}" \
                2>&1 >/dev/tty)

case $CHOICE in
            echo Starting SDR#1 Double Cross Antenna
            /mnt/(path to rtl_tcp.exe)/rtl_tcp.exe -a -d 0 -g 49.6 -P 0
            echo Starting SDR#2 Ground Plane Antenna
            /mnt/(path to rtl_tcp.exe)/rtl_tcp.exe -a -d 1 -g 49.6 -P 0
            echo Starting SDR#3 Shortwave Antenna
            /mnt/(path to rtl_rsp.exe)/rsp_tcp.exe -a

Install sudo apt-get dialog to show the menu.

Example rtl_tcp batch file Windows:

echo *****RTL_TCP Choose one of the following options:*****
echo SDR #1 Double Cross 137MHz Antenna
echo SDR #2 Ground Plane 400MHz Antenna
echo SDR #3 Shortwave
set /P c=Choose SDR Number [1/2 or 3]?
if /I "%c%" EQU "1" goto :sdr1
if /I "%c%" EQU "2" goto :sdr2
if /I "%c%" EQU "3" goto :sdr3
goto :choice
echo Starting SDR#1 Double Cross Antenna
(path to rtl_tcp.exe)\rtl_tcp -a -d 0 -g 49.6 -P 0
echo Starting SDR#2 Ground Plane Antenna
(path to rtl_tcp.exe)\Rtl_tcp\rtl_tcp -a -d 1 -g 49.6 -P 0
echo Starting SDR#3 Shortwave
(path to rtl_rsp.exe)\rsp_tcp -a

Install Gqrx

Install Gqrx SDR on Ubuntu 16.04 LTS.

Gqrx has been included in Ubuntu Linux for many years now.
Although the packages included with Ubuntu can be out of date, they may sufficient for your use.

Add new repositories to the package manager by typing the following in a terminal – one line at a time:

sudo add-apt-repository -y ppa:bladerf/bladerf
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo add-apt-repository -y ppa:myriadrf/gnuradio
sudo add-apt-repository -y ppa:gqrx/gqrx-sdr
sudo apt-get update

If that went well without errors, continue with installing gqrx:

sudo apt-get install gqrx-sdr
You can now find gqrx in the desktop menu or start it from a terminal by typing gqrx.

Once you have installed Gqrx from the PPA they are no longer needed, updates will not be available through the package manager anymore on this version.

Use the --remove flag, similar to how the PPA was added:

sudo add-apt-repository --remove ppa:bladerf/bladerf
sudo add-apt-repository --remove ppa:myriadrf/drivers
sudo add-apt-repository --remove ppa:myriadrf/gnuradio
sudo add-apt-repository --remove ppa:gqrx/gqrx-sdr

You can also remove PPAs by deleting them from /etc/apt/sources.list.d directory.

And the key list by typing:

sudo apt-key list

Find the key from the added PPA's

pub   1024R/86F6E1DD 2013-07-27
uid                  Launchpad PPA for Gqrx team


sudo apt-key del 86F6E1DD

On >18.10 the short key id is no longer shown when you use the list command, but it is actually the last 8 characters of the long hex.

After that it is possible to update Gqrx from git and build from newer up to date sources:

Install Dependencies:

sudo apt-get install qt5-default libqt5svg5-dev libpulse-dev

git clone
cd gqrx/
mkdir build && cd build
cmake ..

Overwrite gqrx binary.
sudo cp gqrx /usr/bin
sudo chmod 755 /usr/bin/gqrx

It is recommended that users also install the libvolk1-bin package and run the volk_profile tool to optimize GNU Radio performance on the specific computer it is being used on.

sudo apt-get install libvolk1-bin

Wait for it to finish, then enjoy the performance boost.

Change ip adres to or local, in Gqrx choose Device: Other, Device String: rtl_tcp=

msi.sdr Shortwave Reception, check No limits at the Input Control Tab for tuning below 24MHz!

If you are only interested in the FFT set Mode to Demod Off, this will greatly reduce the CPU load.
In most cases you can reduce the CPU load further by reducing the window size, sample rate, FFT rate and FFT size (try 2048 at 10-15 Hz).

Virtual Audio Setup

Some virtual audio can be setup:

Edit 'etc\pulse\' from the windows pulseaudio folder!
Add on bottom of the file:
load-module module-null-sink sink_name=VBAudio sink_properties=device.description="VBAudio"

It is recommend disabling PulseAudio logging, as this seems to be a large user of CPU cycles.

Edit /etc/pulse/daemon.conf
Now find "log-level" and change it to "log-level = error".
Remove the semi-colon ; on the log-level line too.
Save and exit.

Do not forget in Gqrx Audio / PavuControl to select the Virtual audio!

Direwolf Packet-radio

Dire Wolf is a software "soundcard" AX.25 packet modem/TNC and APRS encoder/decoder.
It can be used stand-alone to observe APRS traffic, as a tracker, digipeater, APRStt gateway, or Internet Gateway (IGate).
For more information, look at Documentation for Dire Wolf

In Europe Amateurs use 144.800MHz, 432.500MHz, NA 144.300MHz and 145.825MHz Space com. Packet operations.

Install Dependencies:
sudo apt-get install libudev-dev libhamlib-dev libasound2-dev

git clone
cd direwolf
sudo make install
make install-conf

Dev. Version for Ubuntu 18.04

git clone
cd direwolf
git checkout dev
mkdir build && cd build
cmake ..
make install
make install-conf

Or install from feed sudo apt-get install direwolf

Examples rtl_fm in Ubuntu Terminal:

RS-41 Modified APRS 70CM:

/mnt/(path to rtl_fm.exe)/rtl_fm.exe -p -1 -g 29.6 -f 432500000 - | direwolf

Terrestrial APRS 2 Mtr:
/mnt/(path to rtl_fm.exe)/rtl_fm.exe -p -1 -g 29.6 -f 144800000 - | direwolf

/mnt/(path to rtl_fm.exe)/rtl_fm.exe -p -1 -g 29.6 -f 145825000 - | direwolf


ADEVICE null null

MODEM 1200



APRSMap can display position of received packets using Direwolfs Kiss port (9002).
Make sure the path to udpflex is set, udpflex is included in the APRSMap Download.  

DSD Digital Speech Decoder

DSD is able to decode several digital voice formats and synthesize the decoded speech, like DMR.

Install Dependencies:
sudo apt-get install libsndfile1-dev fftw3-dev liblapack-dev portaudio19-dev libitpp-dev libitpp-dev pulseaudio-utils

git clone
cd mbelib
mkdir build && cd build
cmake ..
sudo make install

git clone
cd dsd
mkdir build && cd build
cmake ..
sudo make install
sudo ldconfig

In terminal padsp dsd or with Gqrx  - socat udp-listen:7356 - | padsp dsd -i -

Gpredict / WxToImg

Adding this PPA to your system to install gpredict

You can update your system with unsupported packages from this untrusted PPA by adding ppa:gpredict-team/daily to your system's Software Sources.

sudo add-apt-repository ppa:gpredict-team/daily
sudo apt-get update

sudo apt-get install gpredict

Howto Enable doppler Tracker

Download wxtoimg-amd64-2.11.2-beta.deb

Install Dependencies:

sudo apt-get install gdebi
sudo gdebi wxtoimg-amd64-2.11.2-beta.deb

Sox is not needed, just make sure to select in Pulseaudio control the virtual audio for both Gqrx and WxToImg.

Start wxtoimg Gui with xwxtoimg in terminal or make a shortcut.

[Desktop Entry]
Icon=wxtoimg.png  <-- Search smth.

Make sure RTL_TCP Server is accessible for connections.

Ciara February Storm..

Professional Edition Upgrade Key

Full Name: Kevin Schuchmann
Email Address: any email address

Excellent WxToImg Guide From les Hamilton

A very good guide to Receive METEOR weather satellite images with RTLSDR and GQRX on Linux

Download Palettes (CLUTS) to try.

Included in the zip is WXtoIMGPal.msi you can make own CLUTS.


Multimon-ng is the successor of multimon and decodes the following digital transmission modes:

Example AX-25, Flex, Pocsag and Morse rtl_fm In Ubuntu Terminal:

/mnt/(path to rtl_fm.exe)/rtl_fm.exe -p -1 -g 29.6 -f 144800000 -s 22050 - | multimon-ng -a AFSK1200 -t raw /dev/stdin 2>&1

/mnt/(path to rtl_fm.exe)/rtl_fm.exe -f 169.65M -M fm -s 22050 -p 0 -g 29.6 | multimon-ng -a FLEX -t raw /dev/stdin 2>&1

/mnt/(path to rtl_fm.exe)/rtl_fm.exe -p 0 -g 29.6 -f 172.45M -s 22050 - | multimon-ng -a POCSAG1200 -t raw /dev/stdin 2>&1

/mnt/(path to rtl_fm.exe)/rtl_fm.exe -M usb -p 0 -g 29.6 -f 432650000 -s 22050 - | multimon-ng -a MORSE_CW -t raw /dev/stdin 2>&1

git clone
cd multimon-ng
mkdir build && cd build
cmake ..


RTL_433, Program to decode traffic from Devices that are broadcasting on 433.9 MHz like temperature sensors.

git clone
cd rtl433/
mkdir build && cd build
cmake ../

Example via rtl-tcp:

rtl_433 -d rtl_tcp: -p 0 -g 49.6 -f 433744400 -f 433756360 -f 433874900 -H 20 2>&1
Make sure RTL_TCP Server is accessible for connections.


With RS-Decoders it is possible to decode most types of Radiosonde's used in Europe.
It is also possible to use the NMEA output of the RS-Decoders and feed data into APRSMap via UDP thru the Perl pos2aprs script.

The following radiosonde types are supported:
Vaisala RS92, RS41, Graw DFM06/DFM09/DFM17/PS-15, Meteomodem M10 and InterMet A/B, 4.

Install Dependencies:
sudo apt-get install perl sox gcc

Compile decoders DFM-09/RS-41:

git clone git://
cd RS/demod/mod
gcc -Ofast -c demod_mod.c
gcc -c bch_ecc_mod.c
gcc dfm09mod.c demod_mod.o -lm -o dfm09mod
gcc rs41mod.c demod_mod.o bch_ecc_mod.o -lm -o rs41mod
Or any other you need.


-U UDP Ip and Port.
-d generates APRS frames with DAO (and thus finer position resolution).
-i  Sonde ID E.g. i-Met.

For DFM:


sox -t alsa default -t wav - 2>/dev/null | ./dfm09mod --ecc -v --ptu --auto 2>&1 | ./ WSLU16 0 "_DFM-09" -d -U > /dev/null

For RS-41:


sox -t alsa default -t wav - 2>/dev/null | ./rs41mod --ecc2 -vx --ptu 2>&1 | ./ WSLU16 0 "_RS-41" -d -U > /dev/null

For i-Met4:


sox -t alsa default -t wav - 2>/dev/null | ./imet1rs_dft 2>&1 | ./ WSLU16 0 "_IMET" -i i-Met4 -d -U > /dev/null

Or Windows rtl_fm:

/mnt/(path to rtl_fm.exe)/rtl_fm.exe -p 0 -d 0 -g 49.6 -M fm -F9 -s 15K -f402870000 2>nul | sox -t raw -r 15k -e s -b 16 -c 1 - -r 48000 -b 8 -t wav - lowpass 2600 2>nul | ./dfm09mod --ecc -v --ptu --auto 2>&1 | ./ WSLU16 0 "_DFM-09" -d -U > /dev/null

The paths to the programs and the exact parameters must of course be adjusted accordingly!

Make sure to select in Pulseaudio control the virtual audio for both Gqrx and the decoder.


APRS-Map part of the Dxl-Chain, can display APRS Object's and positions and your own position (off course a GPS-Mouse is required).

Install Dependencies:
sudo apt-get install libx11-dev libxext-dev libpng-dev libjpeg-dev -y

Download APRSMap Ubuntu 16.04

Or git clone
cd dxlAPRS/src
make all

Goto APRS-Map Config / Rf-Ports Tab:

Check RF-Port 1 in APRS-Map and make sure its UDP1(ip:send:listen)|1|
Make sure RTL_TCP Server is accessible for connections.

And data from rs-decoder should roll in:


Download APRS-Map for Windows:

Find gps2aprs.exe, only that is needed, the one from Linux does not work properly.
Start gps2aprs.exe in a windows command prompt.

Make sure you have the right Port number and Baudrate which the GPS is connected to:
And replace this by the com4:4800 example.

/mnt/(path to rtl_gps2aprs.exe)/gps2aprs.exe -t com4:4800 -I CAR -i /k -D -0 10 -b 2 -v -r

In APRSMap check RF-Port 1 and make sure its UDP1(ip:send:listen)|1|

The Car position should be Visible and every 10 Seconds updated in the map.

gps2aprs -h

 -t <tty>:<baud>            (com1:4800)
 -I <mycall>                   Mycall with SSID like NOCALL-15
 -D                                DAO Extension on for 20cm Resolution
 -b <s>                          Driving Beacon Time in Seconds (15)
 -r <x.x.x.x:destport>      Use AXUDP (to Soundmodem)
 -v                                  Verbous-Mode
 -i                                  Ballon /O, Car /> -i /k

More about the regular functions and options from APRS-Map read the Wiki:

Configure USB-serial GPS Device in WSL

Using a USB-serial GPS device from WSL requires that the device is recognized in Windows first.
Plug USB-serial adapter into the PC.

Look in Windows Device Manager under Ports to see the COM port number.
If the device doesn't show under USB Devices → Ports in Windows Device Manager, the following steps will not work!

In WSL terminal, assuming GPS-Mouse is on COM4 4800 Baud for this example, type:

chmod 666 /dev/ttyS4 - Make permission.
stty -F /dev/ttyS4 4800 -Set Baudrate to 4800.
sudo cat /dev/ttyS4 - See NMEA Output with cat.

gpsd /dev/ttyS4 - Start GPSD for test in FoxtrotGPS.

sudo apt-get install gpsd gpsd-clients python-gps foxtrotgps

Small script for GPSD:


read -p 'Which Port COM To Connect for GPSD? Type 1/19:' uservar
read -p 'Which Baudrate for GPS? Type 4800/9600:' uservar2
sudo chmod 666 /dev/ttyS$uservar
sudo killall -9 gpsd 2> /dev/null
stty -F /dev/ttyS$uservar $uservar2
sleep 1
gpsd /dev/ttyS$uservar



Selecting Pulse as audio source and rtl_tcp did work.            

Install Dependencies:
sudo apt-get install libsamplerate0-dev libqwt-qt5-dev qtbase5-dev qt5-qmake g++ libsndfile1-dev qt5-default libfftw3-dev portaudio19-dev libfaad-dev zlib1g-dev mesa-common-dev libgl1-mesa-dev libqt5opengl5-dev -y

git clone
cd qt-dab
You can select which devices will have support for Qt-DAB in file, recommended to remove them all and leave rtl_tcp.

cd linux-bin
mv qt-dab* qt-dab
sudo cp qt-dab /usr/local/bin
sudo chmod 755 /usr/local/bin/qt-dab

qt-dab in terminal to run.

Shortcut the qt-dab.png is somewhere in the sources move it to /usr/share/pixmaps/ if you want a desktop icon.


[Desktop Entry]

Very good DAB Receiver, all info overhere.

Import / Export WSL Images

For versions earlier than Windows 10 version 1903:

wslconfig /list /all or wslconfig /l /all

wslconfig /unregister <DistributionName>
Unregisters the distribution from WSL so it can be reinstalled or cleaned up.

Run specific WSL distro
wsl -d <DistributionName>
OR wsl --distribution <DistributionName>

Import:   Needed ealier versions <1903 have no import/export function.

LxRunOffline i -n Ubuntu-16.04 -d C:\Ubuntu-16.04 -f C:\Ubuntu.tar.gz


LxRunOffline e -n Ubuntu-16.04 -f C:\Ubuntu-16.04.tar.gz

  -n arg               Name of the distribution
  -f arg                Path to the .tar.gz file to export to.

Windows 10 1903:

wsl -l
List Installed Distro

wsl --unregister Ubuntu
Unregisters the distribution from WSL so it can be reinstalled or cleaned up.

wsl --export Ubuntu C:\Ubuntu.tar


wsl --import <DistributionName> <InstallLocation> <FileName>.
wsl --import Ubuntu C:\Ubuntu C:\Ubuntu.tar

Change user:

Ubuntu-16.04 config --default-user <username>

WSL Firewall Permissions

The default setting in Windows is to allow any application to start outgoing connections.
But if you change that to deny connections by default then you need rules.

Windows Firewall with Advanced Security works with setting outgoing rules to permit Linux executables,
like apt, curl, git, python and wget the net since Windows 10 Version 1809.

Some executables, like apt and git, actually access the net via other executables they run.
Other executables may be run via symbolic links, like how /usr/lib/git-core/git-remote-https is a symbolic link to git-remote-http.
You must set the rule based on the actual executable, not the symbolic link!

Also note that you cannot browse the Linux executable directories when creating a rule because it only shows files with an .exe extension.
You need to directly type or paste them in.
Browsing also might put a %USERPROFILE% environment variable in the string, and that doesn't work because the firewall doesn't run as your user.
You need the full path.
Once you have a working rule you can copy and paste it, then change its name and the executable it refers to.

Example rules:

Apt, Curl, Git Python and Wget:

C:\Ubuntu-16.04\rootfs\usr\lib\apt\methods\gzip|atp gzip
C:\Ubuntu-16.04\rootfs\usr\lib\apt\methods\file|atp file
C:\Ubuntu-16.04\rootfs\usr\lib\apt\methods\https|atp https
C:\Ubuntu-16.04\rootfs\usr\lib\apt\methods\http|atp http
C:\Ubuntu-16.04\rootfs\usr\lib\git-core\git-remote-https|git remote https
C:\Ubuntu-16.04\rootfs\usr\lib\git-core\git-remote-http|git remote http
C:\Ubuntu-16.04\rootfs\usr\lib\git-core\git-remote|git remote



Usefull Links

A Windows Subsystem for Linux Subreddit

Awesome list dedicated to Windows Subsystem for Linux

Advanced WSL installer / launcher.

A full-featured utility for managing Windows Subsystem for Linux (WSL).

WslHub Manager

Unofficial gui manager for Windows Subsystem for Linux (WSL).

A community powered list of programs that work (and those that don't) on the Windows subsystem for Linux.

Upgrade Ubuntu 18.04 to 19.10

Wine on WSL ;)