Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
dmr:dvmega:nutzung_mit_mmdvm_und_bluestack_micro [2016/04/12 08:32] dg9vhdmr:dvmega:nutzung_mit_mmdvm_und_bluestack_micro [2016/08/17 15:02] (aktuell) – [Installation und Konfiguration von MMDVMHost] dg9vh
Zeile 11: Zeile 11:
  
 ===== Vorbereitung des DVMEGA ===== ===== Vorbereitung des DVMEGA =====
-Bevor das DVMEGA Modul zusammen mit der blue Spot App für DMR benutzt werden kann, ist zunächst ein Firmware-Update vorzunehmen. Hierzu montiert man das Modul auf das BlueStack Modul, rastet den auf dem BlueStack Modul befindlichen Schalter ein, schließt beides per USB an einen PC an und führt die xloader Software aus um das Firmware Update einzuspielen.+Bevor das DVMEGA Modul zusammen mit der blue Spot App für DMR benutzt werden kann, ist zunächst ein Firmware-Update vorzunehmen. Hierzu montiert man das Modul auf das BlueStack Modul, rastet den auf dem BlueStack Modul befindlichen Schalter ein, schließt beides per USB an einen PC an und führt die xloader Software aus um das Firmware Update einzuspielen. Hierbei muss, wie in der [[http://www.dvmega.auria.nl/images/DVMEGA%20BlueSpot%20manual.pdf|Anleitung]] zu lesen, die Lötbrücke gelegt sein.
    
 Hierbei ist wichtig als Typ des Gerätes “UNO“ auszuwählen. Hierbei ist wichtig als Typ des Gerätes “UNO“ auszuwählen.
Zeile 64: Zeile 64:
      
   [Modem]   [Modem]
-  # Port=/dev/ttyACM0 
-  #Port=\\.\COM3 
   Port=/dev/ttyUSB0   Port=/dev/ttyUSB0
 +  #Port=/dev/ttyAMA0 # Diese Option nutzen, wenn der DVMEGA statt auf einem BlueStack per USB direkt auf der GPIO-Schnittstelle sitzt!
   TXInvert=1   TXInvert=1
   RXInvert=0   RXInvert=0
Zeile 125: Zeile 124:
 starten. starten.
  
-===== Startskript für automatischen Start beim Hochfahren des Raspberry Pi =====+===== Watchdogscript für automatischen Start beim Hochfahren des Raspberry Pi und Restart bei Problemen =====
 An dieser Stelle wird es leider jetzt etwas unsauber, da man zunächst mittels An dieser Stelle wird es leider jetzt etwas unsauber, da man zunächst mittels
  
Zeile 132: Zeile 131:
 dem MMDVMHost ein "sticky bit" verpassen muss, damit es die Logs schreiben kann. dem MMDVMHost ein "sticky bit" verpassen muss, damit es die Logs schreiben kann.
  
-Hier das Startscript:+Hier das Watchdogscript:
  
-  #!/bin/bash +  #!/bin/bash                                                                     
-  ### BEGIN INIT INFO +
-  # +
-  # Provides:             MMDVMHost +
-  # Required-Start:       $remote_fs +
-  # Required-Stop:        $remote_fs +
-  # Default-Start:        2 3 4 5 +
-  # Default-Stop:         0 1 6 +
-  # Short-Description:    MMDVMHost initscript+
      
-  +  ## Fill in name of program here.                                                 
-  ### END INIT INFO +  PROG="MMDVMHost"                                                                 
-  ## Fill in name of program here. +  PROG_PATH="/opt/mmdvm/"                                                          
-  PROG="MMDVMHost" +  PROG_ARGS="/opt/mmdvm/MMDVM.ini"                                                 
-  PROG_PATH="/opt/mmdvm/" +  PIDFILE="/var/run/mmdvm.pid"                                                     
-  PROG_ARGS="/opt/mmdvm/MMDVM.ini" +  USER="pi"                                                                        
-  PIDFILE="/var/run/mmdvm.pid" +  IP_FOR_TEST="87.106.126.49"                                                      
-  USER="pi"+  PING_COUNT=5                                                                     
 +  PING="/bin/ping"     
 +  WATCHDOGFILE="/mnt/ramdisk/watchdog.run"                                                             
 +  runwatchdog=0                                                                   
      
-  start() { +  start() {                                                                        
-      if [ -e $PIDFILE ]; then +    if [ -e $PIDFILE ]; then                                                     
-          ## Program is running, exit with error. +        ## Program is running, exit with error.                                  
-          echo "Error! $PROG is currently running!" 1>&+        echo "Error! $PROG is currently running!" 1>&                          
-          exit 1 +        exit 1                                                                   
-      else +    else                                                                         
-          ## Change from /dev/null to something like /var/log/$PROG if you want to save output. +        ## Change from /dev/null to something like /var/log/$PROG if you want to save output.                                                                    
-          cd $PROG_PATH +        cd $PROG_PATH                                                            
-          sleep 30 +        sudo -u $USER /usr/bin/stdbuf -i0 -o0 -e0 ./$PROG $PROG_ARGS 2>&1 >> /dev/null &                                                                         
-          sudo -u $USER /usr/bin/stdbuf -i0 -o0 -e0 ./$PROG $PROG_ARGS 2>&1 >> /dev/null & +        echo "$PROG started"                                                     
-          echo "$PROG started" +        sudo touch $PIDFILE                                                      
-          touch $PIDFILE +    fi                                                                          
-      fi+
   }   }
      
-  stop() { +  if [ -e $WATCHDOGFILE ]; then 
-      if [ -e $PIDFILE ]; then +        echo "Error! Watchdog is currently running!" 1>&
-          ## Program is running, so stop it +        exit 1 
-         echo "$PROG is running+  fi
-         rm -f $PIDFILE +
-         killall $PROG +
-         echo "$PROG stopped" +
-      else +
-          ## Program is not running, exit with error. +
-          echo "Error! $PROG not started!" 1>&+
-          exit 1 +
-      fi +
-  }+
      
-  ## Check to see if we are running as root first. +  if [ ! "$(pidof $PROG)" ] 
-  ## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html +  then 
-  if [ "$(id -u)" != "0]then +        runwatchdog=1 
-      echo "This script must be run as root1>&2 +        sudo touch $WATCHDOGFILE 
-      exit 1+        sudo rm $PIDFILE 
 +        start 
 +  fi 
 +   
 +  sleep 10 
 +   
 +  counter=`tail -n 4 /mnt/ramdisk/MMDVM-$(date --utc +%Y-%m-%d).log |grep 'Opening the MMDVM' |wc -c` 
 +   
 +  if [ $counter -gt 0 ] 
 +  then 
 +        runwatchdog=1 
 +        sudo touch $WATCHDOGFILE 
 +        killall $PROG 
 +        sudo rm $PIDFILE 
 +        start 
 +  fi 
 +   
 +  if [ $runwatchdog -gt "0] 
 +  then 
 +        sudo rm $WATCHDOGFILE
   fi   fi
      
-  case "$1" in 
-      start) 
-          start 
-          exit 0 
-      ;; 
-      stop) 
-          stop 
-          exit 0 
-      ;; 
-      reload|restart|force-reload) 
-          stop 
-          sleep 2 
-          start 
-          exit 0 
-      ;; 
-      **) 
-          echo "Usage: $0 {start|stop|reload}" 1>&2 
-          exit 1 
-      ;; 
-  esac 
   exit 0   exit 0
   ### END   ### END
  
-Dieses Script als /etc/init.d/mmdvm.sh abspeichern und mit +Dieses Script als /home/pi/scripts/watchdog.sh abspeichern und als Nutzer "pi" mit ''crontab -e'' folgende Zeile eintragen: 
-  sudo chkconfig mmdvm.sh on + 
-aktivieren.+''* * * * * /home/pi/scripts/watchdog.sh'' 
 + 
 +Damit wird im Minutentakt das Script aufgerufen.