Benutzer-Werkzeuge

Webseiten-Werkzeuge


svxlink:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
svxlink:start [27.03.2020 12:52] df2etsvxlink:start [19.04.2022 19:27] dl5bq
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, in dem ein Ordner angelegt wird, in dem die übersetzen Binaries landen:
      
   git clone https://github.com/sm0svx/svxlink.git   git clone https://github.com/sm0svx/svxlink.git
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: Verzeichnis, in dem die Binaries bei der Installation landen
 +  * SYSCONF_INSTALL_DIR: Hier liegen nach die Konfigurationsdateien
 +  * LOCAL_STATE_DIR: Darin liegt später die Logdatei
 +  * 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: Bestimmt, ob die .service Daten für die Steuerung mittels systemd installiert werden sollen. 
 +
 +
   cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var -DUSE_QT=NO -DWITH_SYSTEMD=yes ..   cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var -DUSE_QT=NO -DWITH_SYSTEMD=yes ..
 +  
 +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 /lib/system/systemd/svxlink.service an, man kann den Dienst also dann "out of the box" mit "systemctl start svxlink.service" starten bzw. dann auch mit "systemctl stop svxlink.service" beenden. Das svxlink-log findet man dann unter /var/log/svxlink. Vorerst sollte man zum Testen der Konfiguration svxlink noch händisch starten.
 +====== Konfiguration ======
 +
 +Hier sind verschiedene Hinweise für unterschiedliche Konfigurationen zu finden.
 +
 +===== DingleBop =====
 +
 +GM3x0-APRS Platine "DingleBop" nach DB9MAT, DG1TAL und DF2ET
 +
 +==== svxlink.conf ====
 +
 +  [Rx1]
 +  AUDIO_DEV=alsa:plughw:1
 +  AUDIO_CHANNEL=0
 +  SQL_DET=HIDRAW
 +  HID_DEVICE=/dev/hidraw0
 +  HID_SQL_PIN=!VOL_DN
      
 +  [Tx1]
 +  AUDIO_DEV=alsa:plughw:1
 +  AUDIO_CHANNEL=0
 +  PTT_TYPE=Hidraw
 +  HID_DEVICE=/dev/hidraw0
 +  HID_PTT_PIN=GPIO3
 +
 +Zu editieren z.B. mit
 +
 +  sudo nano /etc/svxlink/svxlink.conf
 +===== SVX HotSpot / SVX_Hat =====
 +
 +SvxHotSpot oder SVX_Hat Platine nach DF2ET. Damit der entsprechende Treiber geladen wird, muss die /boot/config.txt angepasst werden. In dieser Konfiguration wird die onboard Karte deaktiviert und stattdessen der SVX_Hat genutzt. Das ALSA Device trägt dann den Namen plughw:0.
 +
 +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 /boot/config.txt
 +
 +Danach muss der Raspberry Pi einmal neugestartet werden. Danach sollte die Karte erkannt werden. Das kann mittels Ausgabe von /proc/asound/cards geprüft werden:
 +
 +  cat /proc/asound/cards 
 +   0 [sndrpiproto    ]: snd_rpi_proto - snd_rpi_proto
 +                        snd_rpi_proto
 +
 +Außerdem muss für die GPIO-Steuerung unbedingt die serielle Console auf /dev/ttyAMA0 deaktivert werden. Dazu muss einerseits der Eintrag 'console=serial0,115200' entfernt und andererseits der geTTY vom Autostart ausgeschlossen werden. Das geht mittels:
 +
 +   $ 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 /dev/serial0 statt /dev/ttyAMA0. Die Steuerscripte für das SVX_Hotspot Modul müssen ggf. entsprechend angepasst werden.
 +
 +==== 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 "Output Mixer Hifi" aktiviert bzw. ent-muted werden:
 +
 +{{ :svxlink:alsamixer_output.png?400 |Alsamixer Output}}
 +
 +Für den Eingang muss jeweils der Line-In Eingang auf der Aufnahmeseite selektiert bzw. geregelt werden (die Aktiviertung erfolgt mittels Leertaste):
 +
 +{{ :svxlink:alsamixer_input.png?400 |Alsamixer Input}}
 +
 +Damit sollte Soundausgabe und -aufnahme jeweils möglich sein.
 +
 +==== svxlink.conf ====
 +
 +  [Rx1]
 +  AUDIO_DEV=alsa:plughw:0
 +  AUDIO_CHANNEL=0
 +  SQL_DET=GPIO
 +  GPIO_SQL_PIN=gpio17
 +  SQL_START_DELAY=500
 +  DEEMPHASIS=0
 +  PREAMP=18
 +  PEAK_METER=0
 +  
 +  [Tx1]
 +  AUDIO_DEV=alsa:plughw:0
 +  AUDIO_CHANNEL=0
 +  PTT_TYPE=GPIO
 +  PTT_PIN=gpio4
 +  TX_DELAY=500
 +  PREEMPHASIS=0
 +
 +==== gpio.conf ====
 +
 +  GPIO_PATH=/sys/class/gpio
 +  GPIO_IN_HIGH="gpio17"
 +  GPIO_OUT_HIGH="gpio4"
 +  GPIO_USER="svxlink"
 +  GPIO_GROUP="svxlink"
 +  GPIO_MODE="0664"
 +
 +Zu editieren mittels
 +
 +   sudo nano /etc/svxlink/gpio.conf
 +
 +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 /usr/share/svxlink/events.d/local angelegt. Darin wird die Datei {{ :svxlink:locale.tcl|locle.tcl}} abgelegt. Danach svxlink neustarten und es sollten Zahlen und Uhrzeiten in deutschem Format ausgebeben werden.+Für deutsches Zahlenformat wird ein Ordner /usr/share/svxlink/events.d/local angelegt. Darin wird die Datei {{ :svxlink:locale.tcl|locale.tcl}} abgelegt. Danach svxlink neustarten und es sollten Zahlen und Uhrzeiten in deutschem Format ausgebeben werden. 
 + 
 +===== SVX Reflektor ===== 
 + 
 +Dafür braucht es einen Account für den Reflektor (-> [[mailto:df2et@df2et.de|DF2ET]]) und ein paar Einträge in der svxlink.conf: 
 + 
 +  [GLOBAL] 
 +  LOGICS=SimplexLogic,ReflectorLogic 
 +  LINKS=ReflectorLink 
 + 
 +  [ReflectorLogic] 
 +  TYPE=Reflector 
 +  HOST=svxreflector.n18.de 
 +  CALLSIGN=N0CALL 
 +  AUTH_KEY="Passwort" 
 +  AUDIO_CODEC=OPUS 
 +  JITTER_BUFFER_DELAY=0 
 +  DEFAULT_TG=262 
 +  MONITOR_TGS=262,2624 
 +  TG_SELECT_TIMEOUT=600 
 +  ANNOUNCE_REMOTE_MIN_INTERVAL=300 
 +  EVENT_HANDLER=/usr/share/svxlink/events.tcl 
 +  DEFAULT_LANG=de_DE 
 + 
 +  [ReflectorLink] 
 +  CONNECT_LOGICS=SimplexLogic:9:REF,ReflectorLogic 
 +  DEFAULT_ACTIVE=1 
 +  TIMEOUT=0 
 +  OPTIONS=DEFAULT_CONNECT,NO_DISCONNECT 
 + 
 +Das Dashboard des SVX Reflektors ist hier zu finden: [[https://svxreflector.n18.de/|https://svxreflector.n18.de/]] 
 + 
 + 
 +===== 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 "plughw:0,0"; 
 +  } 
 +   
 +  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 "alsamixer -D equal" 
 +   
 +Damit svxlink als Output das Equalizer Device nutzt muss die Config entsprechend angepasst werden: 
 + 
 +  AUDIO_DEV=alsa:equal 
 +   
 +Und wenn svxlink als systemd service läuft muss die service Datei /lib/systemd/system/svxlink.service angepasst werden: 
 + 
 +  [Service] 
 +  EnvironmentFile=/etc/default/svxlink 
 +  PIDFile=${PIDFILE} 
 +  ExecStartPre=-/bin/touch ${LOGFILE} 
 +  ExecStartPre=-/bin/chown ${RUNASUSER} ${LOGFILE} 
 +  ExecStart=/usr/bin/svxlink --logfile=${LOGFILE} --config=${CFGFILE} 
 +  ExecReload=/bin/kill -s HUP $MAINPID 
 +  Restart=on-failure 
 +  TimeoutStartSec=60 
 +  TimeoutStopSec=10 
 +  LimitCORE=infinity 
 +  WorkingDirectory=/home/svxlink 
 +  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 "Rx1" 
 +  *** ERROR: Could not initialize RX "Rx1" 
 +  *** ERROR: Could not initialize Logic object "RepeaterLogic". Skipping... 
 +  *** 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
svxlink/start.txt · Zuletzt geändert: 25.05.2022 08:58 von df2et