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 almost all Linux applications on Windows.There enough tutorials covering Docker and other sorts of development on the net.Install X-Server push WSL-1 to its limits with SDR and see whats possible!No virtual machine or dual boot is required.Unlike a virtual machine, WSL don’t require to allocate resources, instead WSL uses whatever resources are available on the host machine.Windows Subsystem for Linux is very usable as a replacement for Virtual Machine, depending on your needs.Advantages are very quick start time, because it does not boot bios and kernel.Performance in WSL-1 can be close to bare metal Linux installations in mostly CPU-intensive tasks, but Disk IO isn’t as quick as native Linux installations. WSL-2 act more as a Virtual machine running a real linux kernel, not available in Windows 1809.And is not covered overhere.WSL-1 does not use a real Linux kernel, actually it is not a separate isolated virtual machine but rather a process or compatibility layer in windows itself.There are some compatibility problems and limitations with WSL-1, not all hardware resources are available.This tutorial explains how to manually install Ubuntu Linux Distributions including Desktop Interface in WSL-1, without Microsoft Store in Windows 10 1809 LTSC.Usable with a wide range of SDR Applications.Many linux sdr applications cannot access the hardware USB devices directly like SDR Dongles.In this example rtl-tools will act as a windows tcp server allowing SDR Applications in WSL to connect with TCP protocol.And windows rtl_fm sym-linked using different sdr tools.Hardware:Nooelec NESDR SMArTee - Premium RTL-SDR VHF-UHF.msi.sdr HF.

Enable WSL



Install Distro



Install XFCE Desktop environment

Prerequisite for Linux support is a 64-bit version of Windows 10 as of build 1709 for WSL-1 and WSL-2 build 2004.In Control Panel, under Programs => Windows Features,the Select Windows subsystem for Linux component.For this action to take effect, you have toOr 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-LinuxDistros 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.In Windows LTSC the Microsoft Store is not available, you can download and manually install Linux distros anyway,with the advantage to avoid a long path file names.Download the Linux distribution of your choice. 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 in WSL-1! Ubuntu 20.10 STR (Groovy) beta release, beware not everything works as expected in WSL-1!Extract with 7zip, move install.tar.gz and ubuntu.exe files 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.Enter following command to fully update and upgrade Ubuntu, entering your Ubuntu user password when prompted:sudo apt-get update && sudo apt-get upgrade -yOpen the /etc/sudoers file (as root, of course!) by running:sudo visudoYou should never edit /etc/sudoers with a regular text editor, such as Vim or nano, because they do not validate the syntax like the visudo editor.At the end of the /etc/sudoers file add this line:username ALL=(ALL) NOPASSWD:ALLReplace username with your username.

Install SDR Driver / RTL_TCP



Install Gqrx



In Ubuntu shell, enter following command to install XFCE desktop environment, pcmanfm Filemanager, pluma text editor (edit if other are needed) ect:sudo apt-get install git cmake build-essential libusb-1.0-0-dev g++ rtl-sdr xfce4-terminal dialog p7zip-full file-roller pcmanfm xfce4 preload alacarte alsa-utils xfce4-cpugraph-plugin xfce4-systemload-plugin xfce4-weather-plugin xfce4-whiskermenu-plugin pluma gnome-themes-standard gtk2-engines gdebi -yBe prepared for long install time..Before installing XFCE desktop environment and other stuff it is important to know there is a Libc6 dependency issue in Ubuntu 20.04 Resulting in errors when executing sleep commands: "Error- sleep: cannot read realtime clock: Invalid argument"Some workarounds suggest holding libc6 package (sudo apt-mark hold libc6) or installing other Frankenstein versions, which results in even more dependency issue's,when trying to install build-essential, gcc ect.This issue is solved in windows versions (2004/Insiders) the other versions may take some time.The best workaround for know is over here with a working sleep command and no broken stuff.When you first install Ubuntu, it doesn’t include any X Window related libraries or utility programs.To show Graphical Applications X-server or XRDP (remote desktop) a little bit slower can be used.Recommended is VcXsrv Install or copy VcXsrv into Ubuntu folder.sudo apt-get install xrdpsudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.inisudo sed -i 's/max_bpp=32/#max_bpp=32

max_bpp=128/g' /etc/xrdp/xrdp.inisudo sed -i 's/xserverbpp=24/#xserverbpp=24

xserverbpp=128/g' /etc/xrdp/xrdp.iniecho xfce4-session >~/.xinitrcchmod +x ~/.xinitrcln -fs ~/.xinitrc ~/.xsessiontouch .Xauthoritytouch .Xdefaultsxrdb -merge .Xdefaults &sudo /etc/init.d/xrdp startNow you can connect via localhost:3390 and the credentials of your WSL account via RDP!The WSL environment does not support audio, by default, there’s no sound.But it can be enabled by installing the Pulseaudio for Windows Ubuntu detects the running PulseAudio server and enables audio by TCP connection.Download and extract to Ubuntu Folder;Edit 'etc\pulse\default.pa'Line 45:load-module module-waveout sink_name=output source_name=input record=0Line 67load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 or load-module module-native-protocol-tcp auth-anonymous=1This enables the PulseAudio server to accept connections only from 127.0.0.1 via TCP.Optional:load-module module-null-sink sink_name=VBAudio sink_properties=device.description="VBAudio"Creates a virtual audio for Gqrx and SDR Applications.Edit 'etc\pulse\daemon.conf'Line 26use-pid-file = noThere will be no PID file created in Windows user home folder.Line 39exit-idle-time = -1If this option is set to a non negative value, the server automatically terminates itself when the last client disconnects and the time is passed more than this option (in seconds).Line 48log-level = errorIt is recommend disabling PulseAudio logging, as this seems to be a large user of CPU cycles.Save and exit.Create Desktop.bat and insert:REM Start X-Servertasklist /FI "IMAGENAME eq vcxsrv.exe" 2>NUL | find /I /N "vcxsrv.exe">NULif "%ERRORLEVEL%"=="0" echo X server is runningif not "%ERRORLEVEL%"=="0" start "" "C:\Ubuntu-16.04\VcXsrv\vcxsrv.exe" -ac -wgl -dpms -notrayicon -lesspointer -nodecorationREM Start Pulseaudiotasklist /FI "IMAGENAME eq pulseaudio.exe" 2>NUL | find /I /N "pulseaudio.exe">NULif "%ERRORLEVEL%"=="0" pulseaudio.exe is runningif not "%ERRORLEVEL%"=="0" start "" /B "C:\Ubuntu-16.04\pulse\pulseaudio.exe"REM Start D-Busbash -l -c "sudo service dbus start"bash -l -c "dbus-launch --exit-with-session"REM ### Start Linux GUI desktoptimeout 1start C:\Ubuntu-16.04\Ubuntu-16.04.exe run "if [ -z \"$(pidof xfce4-session)\" ]; then export DISPLAY=127.0.0.1:0.0; export PULSE_SERVER=tcp:127.0.0.1; export RUNLEVEL=3; xfce4-session; pkill '(gpg|ssh)-agent'; taskkill.exe /IM vcxsrv.exe /F; wslconfig.exe /terminate Ubuntu-16.04; fi;"In this example Ubuntu 16.04, Pulseaudio and VcXsrv installed in C:\Ubuntu-16.04.Create a vbs file to hide the command batch window and point it to the Dektop.bat file:CreateObject("Wscript.Shell").Run "Desktop.bat", 0, TrueUse it to start the Xfce4 Desktop.sudo rm -rf /etc/apt/apt.conf.d/20snapd.conf /etc/rc2.d/S01whoopsie /etc/init.d/console-setup.shsudo apt-get -y purge irqbalance multipath-tools apparmor snapd squashfs-tools plymouth plymouth-theme-ubuntu-text open-vm-tools cloud-init mdadm apport open-iscsi powermgmt-base popularity-contest fwupd libfwupd2 --autoremovesudo apt-get -y purge irqbalance multipath-tools apparmor snapd squashfs-tools libplymouth5 plymouth plymouth-theme-ubuntu-text open-vm-tools cloud-init isc-dhcp-* mdadm apport open-iscsi powermgmt-base popularity-contest fwupd libfwupd2 geoclues* --autoremoveYou can completely remove the screensaver by executing the following command:sudo apt purge xscreensaver gnome-screensaver light-lockerCleanup leftovers with sudo apt-get autoremove && sudo apt-get autoclean -yWhen 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 in desktop environment:xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s falsexfconf-query -c xfce4-session -p /startup/gpg-agent/enabled -n -t bool -s falseThose 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.Rename downloaded image groovy-server-cloudimg-amd64-wsl.rootfs.tar.gz to rootfs.tar.gz.Import image:LxRunOffline i -n Ubuntu-20.10 -d C:\Ubuntu-20.10 -f C:\rootfs.tar.gzThis process may take a few minutes.Download Launcher.exe Move into Ubuntu 20.10 folder and run exe to start Ubuntu.Ubuntu starts with root, add user:useradd -m passwd usermod -a -G sudo su - chshIt will show us /bin/sh and change it to /bin/bashAnd exit to leave.Set Default User to Specified User for a WSL DistroUbuntu-20.10 config --default-user Or LxRunOffline su -n Ubuntu-20.10 -v 1000su, set-uid Set the UID of the default user of a distribution.Start Ubuntu 20.10 and the user should be there instead of root access.After playing around it is possible your current distro is unable to start, removing all files and folders in \rootfs\tmp can help start up again.If shit really did hit the fan wslconfig /list find distro name and wslconfig /unregister Unregisters the distribution from WSL so it can be reinstalled or cleaned up.Install RTL-Driver for Linux.Install Dependencies:sudo apt-get install git cmake build-essential libusb-1.0-0-devgit clone git://github.com/happysat/rtl-sdr-blog.gitcd rtl-sdr-blog/mkdir buildcd buildcmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ONmakesudo make installsudo ldconfigsudo cp ../rtl-sdr.rules /etc/udev/rules.d/echo blacklist dvb_usb_rtl28xxu >> blacklist-rtl.confecho blacklist rtl2832 >> blacklist-rtl.confecho blacklist rtl2830 >> blacklist-rtl.confsudo 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):SDR-Play TCPRun 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 0SDR-Play: rsp_tcp -a Change ip adres to 127.0.0.1 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..Or download Windows rtl-tools package , extract into a folder with your Ubuntu distro,Create symlinks to for the windows rtl-tools:ln -sf /path/to/file /path/to/symlinksudo ln -s /mnt/c/Ubuntu-16.04/Driver/rtl_sdr.exe /usr/local/bin/rtl_sdrsudo ln -s /mnt/c/Ubuntu-16.04/Driver/rtl_tcp.exe /usr/local/bin/rtl_tcpsudo ln -s /mnt/c/Ubuntu-16.04/Driver/rtl_fm.exe /usr/local/bin/rtl_fmsudo ln -s /mnt/c/Ubuntu-16.04/Driver/rtl_power.exe /usr/local/bin/rtl_powersudo ln -s /mnt/c/Ubuntu-16.04/Driver/rtl_eeprom.exe /usr/local/bin/rtl_eepromsudo ln -s /mnt/c/Ubuntu-16.04/Driver/rtl_test.exe /usr/local/bin/rtl_testAirspy_rx should also work - https://github.com/airspy/airspyone_host #!/bin/bashHEIGHT=17WIDTH=45CHOICE_HEIGHT=3BACKTITLE="RTL-TCP SDR-Config"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)clearcase $CHOICE in1)echoecho Starting SDR#1 Double Cross Antennaecho/mnt/(path to rtl_tcp.exe)/rtl_tcp.exe -a 127.0.0.1 -d 0 -g 49.6 -P 0;;2)echoecho Starting SDR#2 Ground Plane Antennaecho/mnt/(path to rtl_tcp.exe)/rtl_tcp.exe -a 127.0.0.1 -d 1 -g 49.6 -P 0;;3)echoecho Starting SDR#3 Shortwave Antennaecho/mnt/(path to rtl_rsp.exe)/rsp_tcp.exe -a 127.0.0.1;;esacexitInstall sudo apt-get dialog to

Gqrx has been included in Ubuntu Linux feeds.

Although the packages included with Ubuntu can be out of date, they may sufficient for your use.

And in many times are up-gradable building from source for a newer version.

For Ubuntu 16.04 and 18.04 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



/etc/apt/trusted.gpg.d/gqrx_ubuntu_gqrx-sdr.gpg

-----------------------------------------------

pub 1024R/86F6E1DD 2013-07-27

uid Launchpad PPA for Gqrx team



and



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 https://github.com/csete/gqrx.git

cd gqrx/

mkdir build && cd build

cmake ..

make



Overwrite gqrx binary.

sudo cp gqrx /usr/bin

sudo chmod 755 /usr/bin/gqrx

Direwolf Packet-radio



DSD Digital Speech Decoder



Gpredict / WxToImg

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-binvolk_profileWait for it to finish, then enjoy the performance boost.Installing gqrx-sdr from feed results in core dumps.However installing one of the two deb packages offered on this website will work sudo gdebi sudo ldconfig -v after deb install!libQt5Core.so.5: cannot open shared object file: No such file or directoryThis error will happen when starting gqrx..Fix it with:sudo strip --remove-section=.note.ABI-tag /usr/./lib/x86_64-linux-gnu/libQt5Core.so.5Same procedure as 20.04 except:gqrx: error while loading shared libraries: libvolk.so.2.2: cannot open shared object file: No such file or directoryFix it with:ln -sf /lib/x86_64-linux-gnu/libvolk.so.2.3 /usr/lib/x86_64-linux-gnu/libvolk.so.2.2Change ip adres to 127.0.0.1 or local, in Gqrx choose Device: Other, Device String: rtl_tcp=192.168.1.100:1234msi.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).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-devgit clone https://www.github.com/wb2osz/direwolfcd direwolfmakesudo make installmake install-confDev. Version.git clone https://github.com/wb2osz/direwolf.gitcd direwolfgit checkout devmkdir build && cd buildcmake ..makemake installmake install-confOr install from feed sudo apt-get install direwolf (most probably an older version)/mnt/(path to rtl_fm.exe)/rtl_fm.exe -p -1 -g 29.6 -f 432500000 - | direwolf/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 - | direwolfdirewolf.conf:ACHANNELS 1ADEVICE null nullCHANNEL 0MODEM 1200AGWPORT 8000KISSPORT 9002IGFILTER m/700IGTXLIMIT 6 10APRSMap 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.Install Dependencies:sudo apt-get install libsndfile1-dev fftw3-dev liblapack-dev portaudio19-dev libitpp-dev libitpp-dev pulseaudio-utilsgit clone https://github.com/szechyjs/mbelib.gitcd mbelibmkdir build && cd buildcmake ..makesudo make installgit clone https://github.com/szechyjs/dsd.gitcd dsdmkdir build && cd buildcmake ..makesudo make installsudo ldconfigIn terminal padsp dsd or with Gqrx - socat udp-listen:7356 - | padsp dsd -i -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







Optional:Howto Enable doppler Tracker





Download wxtoimg-amd64-2.11.2-beta.deb





Install Dependencies:

sudo apt-get install gdebi <for installing deb packages>

sudo gdebi wxtoimg-amd64-2.11.2-beta.deb



Sox is not needed.

Just make sure to select in Pulseaudio control, virtual audio for both Gqrx and WxToImg.





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

[Desktop Entry]

Name=WxToImg

Comment=

Icon=wxtoimg.png <-- Search smth.

Exec=xwxtoimg

Type=Application

Encoding=UTF-8

Terminal=false

Categories=None;



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

Upgrade Key: CGHZ-PP9G-EAJZ-AWKK-NDNX



Excellent WxToImg Guide From les Hamilton



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

Multimon



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:POCSAG, FLEX, AFSK, DTMF, MORSE CW and many more./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>&1git clone https://github.com/EliasOenal/multimon-ng.gitcd multimon-ngmkdir build && cd buildcmake ..make RTL_433 , Program to decode traffic from Devices that are broadcasting on 433.9 MHz like temperature sensors.Works only with rtl_tcp.git clone https://github.com/merbanan/rtl_433.gitcd rtl433/mkdir build && cd buildcmake ../rtl_433 -d rtl_tcp: :1234 -p 0 -g 49.6 -f 433744400 -f 433756360 -f 433874900 -H 20 2>&1With 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 Perl pos2aprs script.With Gqrx or rtl_fm.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

git clone git://github.com/rs1729/RS.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 decoder you need.



APRSMap

GPS2APRS

-U UDP Ip and Port.-d generates APRS frames with DAO (and thus finer position resolution).-i Sonde ID E.g. i-Met.sox -t alsa default -t wav - 2>/dev/null | ./rs41mod --ecc2 -vx --ptu 2>&1 | ./pos2aprs.pl WSLU16 0 "_RS-41" -d -U 127.0.0.1:9002 > /dev/nullsox -t alsa default -t wav - 2>/dev/null | ./imet1rs_dft 2>&1 | ./pos2aprs.pl WSLU16 0 "_IMET" -i i-Met4 -d -U 127.0.0.1:9002 > /dev/nullsox -t alsa default -t wav - 2>/dev/null | ./dfm09mod --ecc -v --ptu --auto 2>&1 | ./pos2aprs.pl WSLU16 0 "_DFM-09" -d -U 127.0.0.1:9002 > /dev/null/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 | ./pos2aprs.pl WSLU16 0 "_DFM-09" -d -U 127.0.0.1:9002 > /dev/nullThe 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 -yOr git clone https://github.com/oe5hpm/dxlAPRS.gitcd dxlAPRS/srcmake allCheck RF-Port 1 in APRS-Map and make sure its UDP1(ip:send:listen)|1|127.0.0.1:9001:9002Make sure RTL_TCP Server is accessible for connections.And data from rs-decoder should roll in:Download APRS-Map for Windows:Extract package and find gps2aprs.exe, only that is needed.gps2aprs binary Linux version does not work properly.Start gps2aprs.exe in a windows command prompt.Make sure you have the rightandwhich 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 127.0.0.1:9002In APRSMap check RF-Port 1 and make sure its UDP1(ip:send:listen)|1|127.0.0.1:9001:9002The Car position should be Visible and every 10 Seconds updated in the map.-t : (com1:4800)-I Mycall with SSID like NOCALL-15-D DAO Extension on for 20cm Resolution-b Driving Beacon Time in Seconds (15)-r Use AXUDP (to Soundmodem)-v Verbous-Mode-i Ballon /O, Car /> -i /k

Configure USB-serial GPS Device in WSL

Using a USB-serial GPS device from WSLin Windows first!Plug USB-serial adapter into the PC.Look in Windows Device Manager under PortsIf the device doesn't show under USB Devices → Ports in Windows Device Manager,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

#!/bin/sh



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



Import / Export WSL Images



Very good DAB Receiver!Selecting Pulse as audio source and rtl_tcp connection does work on WSL.Install, Dependencies, ect overhere



WSL running on Windows 10 1809 LTSC does not have import/export functions.





Download LxRunOffline:

https://github.com/DDoSolitary/LxRunOffline/releases





Import:



LxRunOffline i -n <DistributionName> <InstallLocation> <FileName>

Example:



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



Export:



LxRunOffline e -n

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



Options:

-n arg Name of the distribution

-f arg Path to the .tar.gz file to export to.

e arg Export

i arg Import

gu, get-uid Get the UID of the default user of a distribution.

su, set-uid Set the UID of the default user of a distribution.





After import check User ID matches:



LxRunOffline gu -n <DistributionName>



Should be 1000.





Set the UID of the default user of a distribution.



LxRunOffline su -n <DistributionName> -v 1000

su, set-uid





Or Change user:

<DistributionName> config --default-user <username>



Other WSL commands:





wslconfig /list /all or wslconfig /l /all

List Installed Distribution.



wsl --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>





To set a default distribution

wslconfig /setdefault <DistributionName>



WSL Firewall Permissions





The default setting in Windows Firewall 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.





Some example rules:



Apt, Curl, Git Python and Wget:





Usefull Links



(path to Ubuntu)\rootfs\usr\bin\curl|curl(path to Ubuntu)\rootfs\usr\bin\wget|wget(path to Ubuntu)\rootfs\usr\lib\apt\methods\gzip|atp gzip(path to Ubuntu)\rootfs\usr\lib\apt\methods\file|atp file(path to Ubuntu)\rootfs\usr\lib\apt\methods\https|atp https(path to Ubuntu)\rootfs\usr\lib\apt\methods\http|atp http(path to Ubuntu)\rootfs\usr\lib\git-core\git-remote-https|git remote https(path to Ubuntu)\rootfs\usr\lib\git-core\git-remote-http|git remote http(path to Ubuntu)rootfs\usr\lib\git-core\git-remote|git remote(path to Ubuntu)\rootfs\usr\bin\python(version)Much easier is to use Simplewall with WSL Support.

xRDP – How to redirect Sound on Ubuntu.