Op Linux kan je een soort van mini Virtual Machine draaien, container genaamd in een Docker omgeving.
Deze omgeving kan ook gebruikt worden in een "omgebouwde windows PC naar ChromeOS dmv Cloudready Neverware, zoals omschreven op de volgende site:
Docker on a Chromebook on Crostini - Neverware CloudReady is ready
Het voordeel is dat ontwikkelingen die gemaakt zijn voor een Linux omgeving, zoals de openWebRX, als één image worden aangeboden en lopen in een docker container.
De Docker image files zijn gestripte versies van een OS met applicatie, waardoor deze kleiner uitvallen dan een volwaardig Virtual machine.
Meestal zijn deze images "kant en klaar", zodat je nog enkel wat simpele settings moet veranderen alvorens een (nieuwe) versie te draaien van een bepaalde software.
Volgende greep uit het aanbod kan nuttig zijn om een platform onafhankelijk stukje software te kunnen draaien:
Airspy maakt de betere SDR ontvangers die vooral op Windows worden gebruikt.
Echter ook op Linux zijn deze bruikbaar.
De Airspy mini, is de tegenhanger van de RTL-SDR, waarbij het opzoeken van de SN kan via een windows programma.
Airspy Host Tools (draaien onder windows) ter controle van de fw en serial nummer.
Op Linux kan je de SN achterhalen dmv het commando:
lsusb -v | grep AIRSPY
Je kan nadien meerdere Airspy mini koppelen aan een openwebrx dmv het veld Device identifier in de setup.
De tekst die je daarin moet invullen is deze waarbij het nummer de serial nummer.
serial=0xA74068C8365CA093
Op Linux kan je de SN achterhalen dmv het commando:
lsusb -v | grep AIRSPY
Blijkt dat de Airspy HF+ niet gedetecteed wordt op je linux box, dan kan dit aan verschillende redenen liggen:
De standaard lange USB kabel, is niet goed genoeg voor de hoge snelheid.
Vervang deze door een korter type (vb10cm), zelfs als de langere kabel wel werkt op een windows PC.
Dit heeft vooral te maken met de chipset van de hub en hoe windows omgaat met USB devices.
zie uitleg: device descriptor read/64, error -71 .
Dit resulteert in error -71, could not assign address etc op de USB interface, te controleren via
sudo dmesg | grep error
De driver zit niet in je linux distributie.
Installatie op de host gaat als volgt:
sudo apt-get update
sudo apt-get install libairspyhf-dev
sudo apt-get -y install airspyhf
Dit installeert de USB driver en de software.
Je kan daarna met het volgende commando zien welke airspyhf library versie is aangesloten.
sudo airspyhf_info
De usbcore in je linux distro heeft te beperkende parameters.
Vermits de usbcore mee gecompileerd is in de kernel, kan je niet eenvoudig deze parameters aanpassen door een file met settings te maken (modprobe.d .conf file).
Je kan de bestaande parameters controleren in de lijst:
/sys/module/usbcore/parameters/
met
sudo cat /sys/module/usbcore/parameters/old_scheme_first
of een andere parameter
Het aanpassen van een parameter doe je door de grub boot opties aan te passen en te updaten.
Hieronder een voorbeeld hoe je dit doet:
pas de file aan /etc/default/grub
Dit doe je via de filebrowser, door deze te openen als root.
Standaard staan old_scheme_first=n, usbfs_memory_mb=16 en autosuspend=2
Plaats de volgende lijn in de file aan door binnen de quotes de volgende tekst achteraan toe te voegen met één spatie tussen de vorige tekst:
GRUB_CMDLINE_LINUX_DEFAULT="..."
usbcore.use_both_schemes=y usbcore.old_scheme_first=y usbcore.usbfs_memory_mb=1024 usbcore.autosuspend=-1 amd_iommu=on iommu=pt
Bewaar de file
Voer het volgende commando uit:
sudo update-grub
Reboot en controleer in /sys/module/usbcore/parameters/ of de paramteres zijn aangepast
Extra debug mogelijkheden bestaan via Debug via udevadm
Als je een lubuntu hebt draaien, kan je hierop een docker installeren vanuit de repository.
Curl dient wel geïnstalleerd te zijn zoniet voer je stap 2 uit
sudo apt-get update
sudo apt install curl
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
sudo systemctl disable docker.service
sudo systemctl disable containerd.service
sudo docker image ls -a
sudo docker image rm <image id>
sudo docker container ls -a
Een programma draait steeds in een container.
De container maakt gebruik van een image als bron van zijn programma en zal de image gebruiken die lokaal gevonden wordt.
Indien deze niet gevonden wordt, zal de image van de docker hub gehaald worden.
Get the ID of the container by using the docker ps command.
docker ps -a
Use the docker stop command to stop the container.
# Swap out <the-container-id> with the ID from docker ps
docker stop <the-container-id>
Once the container has stopped, you can remove it by using the docker rm command.
docker rm <the-container-id>
Now, start your updated app.
docker run -dp 3000:3000 getting-started
Refresh your browser on http://localhost:3000 and you should see your updated help text!
Use
docker ps
to get the name of the existing container.
Use the command
docker exec -it <container name> /bin/bash
to get a bash shell in the container.
Or directly use
docker exec -it <container name> <command>
to execute whatever command you specify in the container.
Om de logs van een bepaalde container te nunnen raadplegen vanuit de host, kan je gebruik maken van:
sudo docker logs openwebrx
Hierdoor zie je de log alsof je in de container zou gaan.