Quansheng UV-K5 kao udaljeni primopredajnik na Linuxu
Objavljeno: 14. kolovoza 2025.
Nedavno sam uspostavio udaljeni primopredajnik u Krapini kako bih izbjegao QRM u Samoboru. Za primopredajnik sam htio nešto bazično, bez prevelikih ulaganja, drugim riječima jeftino.
Quansheng UV-K5
se činio kao idealna opcija za početak. To je ručna radio stanica za 2m/70cm za koju su ljudi napravili brojne firmware.
Svaki firmware donosi druga unaprjeđenja u odnosu na tvorničke mogućnosti. Vjerojatno najpopularniji
Egzumerov firmware omogućuje: bolji AM prijem, brže skeniranje, itd.
Čak je moguće napraviti hardwarske modifikacije za primanje SSB-a na kratkom valu,
ali o tome neki drugi put.
U moru različitih firmwarea našao se i jedan koji radi upravo ono što je meni bilo potrebno, omogućuje kontrolu Quanshengs pomoću UART veze s računalom. Nakon flashanja firmwarea odmah sam moga kontrolirati stanicu s programom za računalo. No za upotrebu na daljinu nije dovoljno moći kontrolirati stanicu, također moram spojiti zvučni ulaz i izlaz iz Quanshenga u zvučnu karticu. Obični kabel za programiranje kanala ima dovoljno žica samo za serijsku komunikaciju tako da sam morao napraviti vlastiti kabel s dodanim izvodima za zvuk. Uzeo sam konektore iz tvorničkog kabela i zalemio dodatne žice za zvuk prema ilustraciji na stranici firmwarea.
Napajanje
Do sada je sve bilo sumnjivo jednostavno, no došlo je vrijeme da Quanshenga odnesem u Krapinu. Prvo pitanje koje sam postavio bilo je kako ga napajati. Mislio sam da će biti dovoljno cijelo vrijeme držati ga u bazi koja će puniti bateriju. Bio sam u pravu, baterija je stalno puna, no nisam računao da baza proizvodi smetnje na cijelom kratkovalnom području. Već imam u planu dodavanje kratkovalnog prijemnika na istu lokaciju s toga ću morati zamijeniti bazu nekim kvalitetnijim napajanjem. Planiram napraviti DC ispravljač koji nije svičerski i njime napajati Quanshenga direktno bez baterije. Time ću se osloboditi brige od zapaljenja baterije, ali i, još važnije, riješiti smetnji na kratkom valu.
Pokretanje Windows programa na Linuxu
Sljedeći problem je što računalo u Krapini pokreće Linux, a Quansheng Dock
podržava samo Windows.
Umjesto da se predam i samo instaliram Windowse, odlučio sam natjerati Quansheng Dock
da radi na Fedora Linuxu
.
Za početak instalirao sam Wine.
sudo dnf install wine winetricks
Wine omogućuje pokretanje .exe
programa na Linuxu, no Quansheng Dock
zahtjeva i .NET 6
pa sam i njega instalirao:
winetricks dotnetdesktop6
Imam starije računalo tako da sam bio nagrađen s još jednom komandom koju sam morao pokrenuti da bi se program pravilno renderirao. Ako imate nešto novije računalo nego ja (Pentium G2010) možete probati preskočiti sljedeću komandu:
winetricks -q ddr=gdi
Sada još samo moram proslijediti serijski port iz Linuxa u Wine:
ln -s /dev/ttyUSB0 ~/.wine/dotdevices/com2
Konačno došlo je vrijeme da pokrenem program:
env -u DOTNET_ROOT -u DOTNET_ROOT_X64 WINE_NO_XVIDMODE=1 wine QuanshengDock.exe
Time sam uspješno pokrenu Quansheng Dock
na Linux računalu, bez obzira što program postoji samo za Windowse.
XRDP - RDP server
Udaljeno upravljanje vršit ću pomoću RDP
protokola.
Jedan od RDP servera za Linux je XRDP
.
sudo dnf install xrdp xorgxrdp-glamor
U nastavku su izmjene koje sam napravio u konfiguraciji XRDP-a
da omogućim hrvatsku tipkovnicu.
Prvo sam u datoteku /etc/xrdp/xrdp_keyborard.ini
dodao sljedeće:
...
rdp_layout_hr=0x0000041A
[default_layouts_map]
...
rdp_layout_hr=hr
[rdp_layouts_map_mac]
...
rdp_layout_hr=hr
U direktorij /etc/xrdp stavio sam km-0000041a.ini datoteku.
Nakon toga napravio sam datoteku /etc/xrdp/startwm.sh
i odkomentirao XFCE
.
Ako koristite drugi desktop environment odkomentirajte njega:
#!/bin/sh
/usr/bin/alsactl init
# Set ALSA Mixer configuration
# Inputs
/usr/bin/amixer -c 0 sset 'Input Source' 'Line'
/usr/bin/amixer -c 0 sset 'Capture' 35% # 0dB
# Outputs
/usr/bin/amixer -c 0 sset 'Master' 100% unmute
/usr/bin/amixer -c 0 sset 'PCM' 100%
/usr/bin/amixer -c 0 sset 'Line' 74% unmute # 0dB
/usr/bin/amixer -c 0 sset 'Line Boost' 0%
# Connect Audio I/O
(sleep 5; /usr/bin/pw-link alsa-internal-capture xrdp-sink)&
(sleep 5; /usr/bin/pw-link xrdp-source alsa-internal-pcm)&
# DO NOT USE dbus-launch, it messes with the keyboar layout
# GNOME
# /usr/bin/gnome-session
# GNOME Classic
# env GNOME_SHELL_SESSION_MODE=classic /usr/bin/gnome-session
# KDE
# /usr/bin/startplasma-wayland
# Cinnamon
# /usr/bin/cinnamon-session
# MATE
# /usr/bin/mate-session
# Xfce
/usr/bin/startxfce4
# LXDE
# /usr/bin/startlxde
# LXQt
# /usr/bin/startlxqt
# Budgie
# env GNOME_SHELL_SESSION_MODE=Budgie:GNOME /usr/bin/budgie-desktop
# Sugar
# /usr/bin/sugar
Istu sam datoteku učinio pokretljivom:
sudo chmod +x /etc/xrdp/startwm.sh
Napomena: slobodno uklonite prvi blok komandi vezanih za zvučnu karticu ako ih smatrate nepotrebnim meni su potrebne da zvučni ulaz/izlaz
XRDP-a
s izlazom i ulazom zvučne kartice.
Kako bi se ova skripta izvršila na početku svake sesije uredio sam /etc/xrdp/sesman.ini
da na vrhu datoteke bude sljedeće:
;; See `man 5 sesman.ini` for details
[Globals]
; listening port
#ListenPort=sesman.socket
EnableUserWindowManager=false
; Give in relative path to user's home directory
UserWindowManager=startwm.sh
; Give in full path or relative path to /etc/xrdp
DefaultWindowManager=/etc/xrdp/startwm.sh
; Give in full path or relative path to /etc/xrdp
ReconnectScript=reconnectwm.sh
Na kraju bilo je potrebno odkomentirati [Xorg]
blok u /etc/xrdp/xrdp.ini
te koristiti Xorg
opciju pri spajanju, a ne Xvnc
:
; Some session types such as Xorg and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also sesman.ini.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
port=-1
code=20
; Frame capture interval (milliseconds)
#h264_frame_interval=16
#rfx_frame_interval=32
#normal_frame_interval=40
To je to sada mi je preostalo samo ponovno pokrenuti XRDP
i učiniti da se pokreće pri pokretanju računala.
sudo systemctl restart xrdp
sudo systemctl enable xrdp
Programiranje kanala
Quansheng Dock
ne podržava CHIRP što otežava programiranje kanala u stanicu s novim firmwareom. Moguće je uprogramirati samo .chan
datoteke
koje pak nije moguće dobiti iz CHIRP-a. Da ručno ne prepisujem 200 kanala potrošio sam puno previše vremena i napravio
konverter koji pretvara CHIRP-ov csv
u .chan
.
Zaključak
Volim cijediti uređaje do maksimuma tako da mi je jako drago da sam uspio iskoristiti računalo koje sam besplatno dobio iz jednog ureda. Rekli su mi da je staro i ne može više ništa otvoriti. Ipak, sada radi kao server za moje radio stanice. Software je definitivno bio najteži dio ovog projekta.