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
svxlink:start [28.03.2020 14:48] df2etsvxlink:start [25.05.2022 08:58] (aktuell) – [svxlink.conf] df2et
Zeile 22: Zeile 22:
      
   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: Dann wird das svxlink Repository von github geladen und vorbereitet, in dem ein Ordner angelegt wird, in dem die übersetzen Binaries landen:
Zeile 50: Zeile 55:
   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 ====== ====== Konfiguration ======
  
Zeile 58: Zeile 64:
  
 GM3x0-APRS Platine "DingleBop" nach DB9MAT, DG1TAL und DF2ET GM3x0-APRS Platine "DingleBop" nach DB9MAT, DG1TAL und DF2ET
 +
 +==== 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:
 +
 +   SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="013c", SYMLINK+="cm108", MODE="0666"
 +   
 +Der symlink /dev/cm108 kann dann anstatt des ursprünglichen Devicenamens /dev/hidrawX 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, Inc. CM108 Audio Controller
 +   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 ==== ==== svxlink.conf ====
Zeile 65: Zeile 91:
   AUDIO_CHANNEL=0   AUDIO_CHANNEL=0
   SQL_DET=HIDRAW   SQL_DET=HIDRAW
-  HID_DEVICE=/dev/hidraw0+  HID_DEVICE=/dev/cm108  # (originally /dev/hidraw0; see udev rule)
   HID_SQL_PIN=!VOL_DN   HID_SQL_PIN=!VOL_DN
      
Zeile 72: Zeile 98:
   AUDIO_CHANNEL=0   AUDIO_CHANNEL=0
   PTT_TYPE=Hidraw   PTT_TYPE=Hidraw
-  HID_DEVICE=/dev/hidraw0+  HID_DEVICE=/dev/cm108  # (originally /dev/hidraw0; see udev rule)
   HID_PTT_PIN=GPIO3   HID_PTT_PIN=GPIO3
  
-===== SVX HotSpot =====+Zu editieren z.B. mit
  
-SvxHotSpot Platine nach DF2ET.+  sudo nano /etc/svxlink/svxlink.conf 
 +   
 +==== Probleme mit RPi 2B/3B ==== 
 + 
 +Bei den o.g. Raspberry Pis gibt es offenbar ein Problem mit dem USB Bus. Das führt dazu, dass der Kernel den USB-Bus von Zeit zu Zeit resettet. Im syslog erscheinen folgende Meldungen: 
 + 
 +  retire_capture_urb: 38 callbacks suppressed 
 +   
 +In der Folge hängt sich SVXlink auf und ggf. bleibt die PTT aktiv. Um das Problem zu beheben, muss folgende Zeile in die /boot/cmdline.txt aufgenommen werden: 
 + 
 +  dwc_otg.speed=1 
 +   
 +Diess Setting kann dazu führen, dass ggf. einige Tastaturen nicht mehr funktionieren.  
 + 
 +Bei Raspberry Pi 3B+ und 4B tritt dieses Problem nicht auf. 
 +===== 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 ==== ==== svxlink.conf ====
Zeile 86: Zeile 171:
   SQL_DET=GPIO   SQL_DET=GPIO
   GPIO_SQL_PIN=gpio17   GPIO_SQL_PIN=gpio17
 +  SQL_START_DELAY=1000 
 +  SQL_DELAY=150
   DEEMPHASIS=0   DEEMPHASIS=0
   PREAMP=18   PREAMP=18
Zeile 107: Zeile 194:
   GPIO_MODE="0664"   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 ====== ====== Dies und Das ======
  
Zeile 145: Zeile 240:
  
 Das Dashboard des SVX Reflektors ist hier zu finden: [[https://svxreflector.n18.de/|https://svxreflector.n18.de/]] 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't
 +    # 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.1585406910.txt.gz · Zuletzt geändert: 28.03.2020 14:48 von df2et