(DIR) Josip Tišljar Mataušić (9A3SFZ)
Objavljeno: 2025-08-14
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 Egzumer[1]ov firmware
omogućuje: bolji AM prijem, brže skeniranje, itd. Čak je moguće
napraviti hardwarske modifikacije[2] za primanje SSB-a na kratkom
valu, ali o tome neki drugi put.
(HTM) 1: https://github.com/egzumer/uv-k5-firmware-custom
(HTM) 2: https://www.aliexpress.com/item/1005006963736709.html
U moru različitih firmwarea našao se i jedan[3] 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[4] 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[5] na stranici firmwarea.
(HTM) 3: https://github.com/nicsure/quansheng-dock-fw
(HTM) 4: https://github.com/nicsure/QuanshengDock
(HTM) 5: https://raw.githubusercontent.com/nicsure/QuanshengDock/master/WiringMod2.png
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[6].
(HTM) 6: https://fedoraproject.org
Za početak instalirao sam Wine[7].
(HTM) 7: https://gitlab.winehq.org/wine/wine/-/wikis/Download
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[8] protokola. Jedan od RDP
servera za Linux je XRDP[9].
(HTM) 8: https://en.wikipedia.org/wiki/Remote_Desktop_Protocol
(HTM) 9: https://github.com/neutrinolabs/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[10] datoteku.
(TXT) 10: /km-0000041a.ini
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[11] koji pretvara CHIRP-ov csv u .chan.
(HTM) 11: https://github.com/pisoj/quansheng-tools
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.
Povezano
(DIR) 2025-06-04 SDR i udaljeni primopredajnik u Krapini
Najnovije
(DIR) 2025-11-01 Srednjevalni predajnik s NE555
(DIR) 2025-09-08 Enkodiranje imena servisa u IPv6 adresu
(DIR) 2025-09-07 BGP najava vlastitog prefiksa
(DIR) 2025-07-15 DSB modulator s MC1496
(DIR) 2025-06-04 SDR i udaljeni primopredajnik u Krapini
--------------------------------------------------------------------------------
(DIR) Lista repetitora
(DIR) Početna
(DIR) Dnevnik veza