Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
svxlink:start [27.03.2020 12:50] – [Deutsches Zahlenformat] df2et | svxlink:start [12.05.2022 07:14] – [svxlink.conf] df2et | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== SVXLink Installation ====== | ====== SVXLink Installation ====== | ||
+ | Diese Anleitung bezieht sich auf ein frisch installiertes Debian Buster lite auf einem Raspberry Pi. Für den remote Login via SSH muss der SSH Server noch aktiviert werden: | ||
+ | |||
+ | sudo systemctl enable ssh | ||
+ | | ||
+ | Danach sollte nach einem Reboot des Systems der Login mittels puTTY o.ä. möglich sein. | ||
+ | |||
+ | Zunächst einmal müssen alle Tools und Bibliotheken für die Übersetzung von Svxlink installiert werden: | ||
sudo apt install build-essential git | sudo apt install build-essential git | ||
Zeile 11: | Zeile 18: | ||
sudo apt install tcl-dev | sudo apt install tcl-dev | ||
sudo apt install libcurl4-openssl-dev | sudo apt install libcurl4-openssl-dev | ||
+ | | ||
+ | Außerdem muss ein User svxlink angelegt werden, unter dem der Service nachher läuft. Das hat den Vorteil, dass nicht alles mit root Rechten laufen muss: | ||
| | ||
sudo useradd svxlink | sudo useradd svxlink | ||
+ | | ||
+ | Weiterhin muss der User den Gruppen audio und gpio hinzugefügt werden. | ||
+ | |||
+ | sudo usermod -a -G gpio svxlink | ||
+ | sudo usermod -a -G audio svxlink | ||
+ | | ||
+ | Dann wird das svxlink Repository von github geladen und vorbereitet, | ||
| | ||
git clone https:// | git clone https:// | ||
Zeile 18: | Zeile 34: | ||
mkdir build | mkdir build | ||
cd build | cd build | ||
+ | | ||
+ | Dann werden mittels cmake die notwendigen Makefiles für die Übersetzung erstellen. Die Optionen hier sind: | ||
+ | |||
+ | * CMAKE_INSTALL_PREFIX: | ||
+ | * SYSCONF_INSTALL_DIR: | ||
+ | * LOCAL_STATE_DIR: | ||
+ | * USE_QT: Damit wird bestimmt, ob die graphischen Tools wie Qtel auch übersetzt und installiert werden sollen. In diesem Fall brauchen wir das nicht. | ||
+ | * WITH_SYSTEMD: | ||
+ | |||
+ | |||
cmake -DCMAKE_INSTALL_PREFIX=/ | cmake -DCMAKE_INSTALL_PREFIX=/ | ||
+ | | ||
+ | Jetzt werden Programm und Hilfedateien übersetzt: | ||
+ | |||
make | make | ||
make doc | make doc | ||
+ | | ||
+ | Und schließlich werden die Binaries im System installiert und die Verzeichnisse der Bibliotheken aktualisiert: | ||
+ | |||
sudo make install | sudo make install | ||
sudo ldconfig | sudo ldconfig | ||
+ | |||
+ | Der svxlink-Installationsprozess legt / | ||
+ | ====== Konfiguration ====== | ||
+ | |||
+ | Hier sind verschiedene Hinweise für unterschiedliche Konfigurationen zu finden. | ||
+ | |||
+ | ===== DingleBop ===== | ||
+ | |||
+ | GM3x0-APRS Platine " | ||
+ | |||
+ | ==== udev ==== | ||
+ | |||
+ | Um einerseits die Berechtigungen für non-root user zu vergeben und andererseits auch einen symlink anlegen zu lassen, der auf das korrekte Gerät zeigt (die Nummer wechselt bei mehreren hidraw Geräten), kann folgede udev Regel verwendet werden: | ||
+ | |||
+ | | ||
+ | |||
+ | Die Vendor und Product ID lassen sich mittels lsusb ermitteln: | ||
+ | |||
+ | $ lsusb | ||
+ | Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver | ||
+ | Bus 001 Device 005: ID 0d8c:013c C-Media Electronics, | ||
+ | Bus 001 Device 006: ID 0424:7800 Standard Microsystems Corp. | ||
+ | Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub | ||
+ | Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub | ||
+ | Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub | ||
+ | |||
+ | In diesem Fall sind das 0d8c:013c (siehe Zeile 2 der Ausgabe von lsusb). | ||
+ | |||
+ | ==== svxlink.conf ==== | ||
+ | |||
+ | [Rx1] | ||
+ | AUDIO_DEV=alsa: | ||
+ | AUDIO_CHANNEL=0 | ||
+ | SQL_DET=HIDRAW | ||
+ | HID_DEVICE=/ | ||
+ | HID_SQL_PIN=!VOL_DN | ||
| | ||
+ | [Tx1] | ||
+ | AUDIO_DEV=alsa: | ||
+ | AUDIO_CHANNEL=0 | ||
+ | PTT_TYPE=Hidraw | ||
+ | HID_DEVICE=/ | ||
+ | HID_PTT_PIN=GPIO3 | ||
+ | |||
+ | Zu editieren z.B. mit | ||
+ | |||
+ | sudo nano / | ||
+ | ===== SVX HotSpot / SVX_Hat ===== | ||
+ | |||
+ | SvxHotSpot oder SVX_Hat Platine nach DF2ET. Damit der entsprechende Treiber geladen wird, muss die / | ||
+ | |||
+ | Deaktivierung der onboard Karte: | ||
+ | |||
+ | # Enable audio (loads snd_bcm2835) | ||
+ | # dtparam=audio=on | ||
+ | |||
+ | Aktivierung des device tree overlays für SVX_Hat bzw. SVXHotspot: | ||
+ | |||
+ | # Enable WM8731 codec | ||
+ | dtparam=i2c_arm=on | ||
+ | dtparam=i2s=on | ||
+ | dtoverlay=i2s-mmap | ||
+ | dtoverlay=rpi-proto | ||
+ | |||
+ | Die Dateien können z.B. mittels des Editors nano editiert werden: | ||
+ | |||
+ | sudo nano / | ||
+ | |||
+ | Danach muss der Raspberry Pi einmal neugestartet werden. Danach sollte die Karte erkannt werden. Das kann mittels Ausgabe von / | ||
+ | |||
+ | cat / | ||
+ | 0 [sndrpiproto | ||
+ | snd_rpi_proto | ||
+ | |||
+ | Außerdem muss für die GPIO-Steuerung unbedingt die serielle Console auf / | ||
+ | |||
+ | $ sudo systemctl stop serial-getty@ttyAMA0.service | ||
+ | $ sudo systemctl disable serial-getty@ttyAMA0.service | ||
+ | |||
+ | Auf einem RPi4 ist der Hardware Serial Port auf dem GPIO / | ||
+ | |||
+ | ==== alsamixer ==== | ||
+ | |||
+ | Für die Platinen mit WM8731 (SVX_Hat SVX-Hotpot) müssen folgende Regler im alsamixer angepasst werden. Für die Sound Ausgabe muss der Regler " | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Für den Eingang muss jeweils der Line-In Eingang auf der Aufnahmeseite selektiert bzw. geregelt werden (die Aktiviertung erfolgt mittels Leertaste): | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Damit sollte Soundausgabe und -aufnahme jeweils möglich sein. | ||
+ | |||
+ | ==== svxlink.conf ==== | ||
+ | |||
+ | [Rx1] | ||
+ | AUDIO_DEV=alsa: | ||
+ | AUDIO_CHANNEL=0 | ||
+ | SQL_DET=GPIO | ||
+ | GPIO_SQL_PIN=gpio17 | ||
+ | SQL_START_DELAY=1000 | ||
+ | SQL_DELAY=150 | ||
+ | DEEMPHASIS=0 | ||
+ | PREAMP=18 | ||
+ | PEAK_METER=0 | ||
+ | | ||
+ | [Tx1] | ||
+ | AUDIO_DEV=alsa: | ||
+ | AUDIO_CHANNEL=0 | ||
+ | PTT_TYPE=GPIO | ||
+ | PTT_PIN=gpio4 | ||
+ | TX_DELAY=500 | ||
+ | PREEMPHASIS=0 | ||
+ | |||
+ | ==== gpio.conf ==== | ||
+ | |||
+ | GPIO_PATH=/ | ||
+ | GPIO_IN_HIGH=" | ||
+ | GPIO_OUT_HIGH=" | ||
+ | GPIO_USER=" | ||
+ | GPIO_GROUP=" | ||
+ | GPIO_MODE=" | ||
+ | |||
+ | Zu editieren mittels | ||
+ | |||
+ | sudo nano / | ||
+ | |||
+ | Wenn Svxlink mit den systemd Addons installiert wurde, existiert ein systemd service Script, welches die GPIOs beim Boot entsprechend konfiguriert. Damit dieses beim Sytemstart ausgeführt wird, muss es mittels | ||
+ | |||
+ | sudo systemctl enable svxlink_gpio_setup | ||
+ | |||
+ | aktiviert werden. | ||
+ | ====== Dies und Das ====== | ||
+ | |||
+ | Sammlung von ein paar Tips für unterschiedliche Zwecke. | ||
| | ||
===== Deutsches Zahlenformat ===== | ===== Deutsches Zahlenformat ===== | ||
- | Für deutsches Zahlenformat wird ein Ordner / | + | Für deutsches Zahlenformat wird ein Ordner / |
+ | |||
+ | ===== SVX Reflektor ===== | ||
+ | |||
+ | Dafür braucht es einen Account für den Reflektor (-> [[mailto: | ||
+ | |||
+ | [GLOBAL] | ||
+ | LOGICS=SimplexLogic, | ||
+ | LINKS=ReflectorLink | ||
+ | |||
+ | [ReflectorLogic] | ||
+ | TYPE=Reflector | ||
+ | HOST=svxreflector.n18.de | ||
+ | CALLSIGN=N0CALL | ||
+ | AUTH_KEY=" | ||
+ | AUDIO_CODEC=OPUS | ||
+ | JITTER_BUFFER_DELAY=0 | ||
+ | DEFAULT_TG=262 | ||
+ | MONITOR_TGS=262, | ||
+ | TG_SELECT_TIMEOUT=600 | ||
+ | ANNOUNCE_REMOTE_MIN_INTERVAL=300 | ||
+ | EVENT_HANDLER=/ | ||
+ | DEFAULT_LANG=de_DE | ||
+ | |||
+ | [ReflectorLink] | ||
+ | CONNECT_LOGICS=SimplexLogic: | ||
+ | DEFAULT_ACTIVE=1 | ||
+ | TIMEOUT=0 | ||
+ | OPTIONS=DEFAULT_CONNECT, | ||
+ | |||
+ | Das Dashboard des SVX Reflektors ist hier zu finden: [[https:// | ||
+ | |||
+ | |||
+ | ===== ALSA Equalizer ===== | ||
+ | |||
+ | Zunächst muss das ALSA plugin installiert werden: | ||
+ | |||
+ | sudo apt install libasound2-plugin-equal | ||
+ | |||
+ | Dann wird für den User svxlink in dessen Heimatverzeichnis eine Datei .asoundrc mit folgendem Inhalt angelegt: | ||
+ | |||
+ | ctl.equal { | ||
+ | type equal; | ||
+ | } | ||
+ | |||
+ | pcm.plugequal { | ||
+ | type equal; | ||
+ | # Modify the line below if you don' | ||
+ | # want to use sound card 0. | ||
+ | slave.pcm " | ||
+ | } | ||
+ | |||
+ | pcm.equal { | ||
+ | type plug; | ||
+ | slave.pcm plugequal; | ||
+ | } | ||
+ | |||
+ | # Usage: | ||
+ | # $ alsamixer -D equal | ||
+ | |||
+ | Der Equalizer kann damit als user svxlink mit dem folgenden Kommando aufgerufen werden: | ||
+ | |||
+ | alsamixer -D equal | ||
+ | |||
+ | Oder unter Verwendung von sudo: | ||
+ | |||
+ | sudo su svxlink -c " | ||
+ | |||
+ | Damit svxlink als Output das Equalizer Device nutzt muss die Config entsprechend angepasst werden: | ||
+ | |||
+ | AUDIO_DEV=alsa: | ||
+ | |||
+ | Und wenn svxlink als systemd service läuft muss die service Datei / | ||
+ | |||
+ | [Service] | ||
+ | EnvironmentFile=/ | ||
+ | PIDFile=${PIDFILE} | ||
+ | ExecStartPre=-/ | ||
+ | ExecStartPre=-/ | ||
+ | ExecStart=/ | ||
+ | ExecReload=/ | ||
+ | Restart=on-failure | ||
+ | TimeoutStartSec=60 | ||
+ | TimeoutStopSec=10 | ||
+ | LimitCORE=infinity | ||
+ | WorkingDirectory=/ | ||
+ | User=svxlink | ||
+ | Group=audio | ||
+ | |||
+ | Nicht zu vergessen, anschließend das service File neu zu laden mittels: | ||
+ | |||
+ | sudo systemctl daemon-reload | ||
+ | |||
+ | Damit sollte der Audio Stream des svxlink Senders per Equalizer einstellbar sein. | ||
+ | |||
+ | ===== Fehler beim SVXlink Start ===== | ||
+ | |||
+ | Sollte Svxlink nicht starten wollen, weil angeblich das Capture Device belegt ist und folgende Meldungen im Log erscheinen: | ||
+ | |||
+ | Starting logic: RepeaterLogic | ||
+ | Loading RX: Rx1 | ||
+ | *** ERROR: Open capture audio device failed: Device or resource busy | ||
+ | *** ERROR: Could not open audio device for receiver " | ||
+ | *** ERROR: Could not initialize RX " | ||
+ | *** ERROR: Could not initialize Logic object " | ||
+ | *** ERROR: No logics available. Bailing out... | ||
+ | |||
+ | muss gepprüft werden, ob remotetrx im Hintergrund läuft und die Soundkarte belegt. Das geht z.B. mit | ||
+ | |||
+ | sudo ps ax | grep svxlink | ||
+ | |||
+ | Wenn das der Fall sein sollte, kann remotetrx mittels | ||
+ | |||
+ | sudo service remotetrx stop | ||
+ | |||
+ | angehalten werden. Um den Autostart beim Boot zu verhindern kann der Service mittels | ||
+ | |||
+ | sudo systemctl disable remotetrx | ||
+ | |||
+ | deaktiviert werden. | ||
+ | |||
+ | |||
+ | |||
+ | ====== Tnx es vy73 ====== | ||
+ | |||
+ | Danke an folgende OM für das wertvolle Feedback und die Beiträge zum Wiki: | ||
+ | |||
+ | * Jürgen, DL2NJM | ||
+ | * Jürgen, DH9YAP | ||
+ | * Jan, DG3YJB | ||
+ | * Danielo, DL7TA |