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
dmr:dvmega:nutzung_mit_mmdvm_und_bluestack_micro [2016/03/26 11:19] dg9vhdmr:dvmega:nutzung_mit_mmdvm_und_bluestack_micro [2016/04/28 22:47] dg9vh
Zeile 49: Zeile 49:
   TXFrequency=433612500   TXFrequency=433612500
   Power=0.01   Power=0.01
-  Latitude=0.0 +  Latitude=49.231966 
-  Longitude=0.0 +  Longitude=6.834845 
-  Height=0+  Height=5
   Location=Voelklingen, JN39kf   Location=Voelklingen, JN39kf
   Description=Multi-Mode Repeater   Description=Multi-Mode Repeater
Zeile 69: Zeile 69:
   TXInvert=1   TXInvert=1
   RXInvert=0   RXInvert=0
-  PTTInvert=1+  PTTInvert=0
   TXDelay=100   TXDelay=100
   DMRDelay=0   DMRDelay=0
   RXLevel=50   RXLevel=50
   TXLevel=50   TXLevel=50
-  OscOffset=50+  OscOffset=0
   Debug=1   Debug=1
      
Zeile 125: Zeile 125:
 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 132:
 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.