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/23 18:35] dg9vhdmr:dvmega:nutzung_mit_mmdvm_und_bluestack_micro [2016/04/28 22:47] dg9vh
Zeile 1: Zeile 1:
 ====== Nutzung mit MMDVM und BlueStack micro+ ====== ====== Nutzung mit MMDVM und BlueStack micro+ ======
 +===== Wichtiger Hinweis vorneweg =====
 +Diese Anleitung gilt für einen Raspberry Pi B, B+ bzw. Raspberry Pi 2, für einen Raspberry Pi 3 ist ggf. noch weiteres notwendig, was ich derzeit nicht weiß, weil ich keinen RPI3 mein Eigen nenne.
 +
 ===== Voraussetzungen ===== ===== Voraussetzungen =====
 Zur Nutzung des DVMEGA mit MMDVM und BlueStack micro+ benötigt man Zur Nutzung des DVMEGA mit MMDVM und BlueStack micro+ benötigt man
Zeile 28: Zeile 31:
 und stößt den Compiliervorgang an und stößt den Compiliervorgang an
   make   make
 +
 +Nach dem Kompilieren legt man sich mit 
 +  sudo mkdir /opt/mmdvm
 +ein entsprechendes Verzeichnis an, welches den MMDVMHost zukünftig beherbergt.
      
-Im Anschluss kopiert man die beiden Dateien "MMDVMHost" und "MMDVM.ini" z.B. nach "/opt/mmdvm/" und editiert die MMDVM.ini-Datei etwa nach folgendem Muster:+Im Anschluss kopiert man die beiden Dateien "MMDVMHost" und "MMDVM.ini" nach "/opt/mmdvm/" und editiert die MMDVM.ini-Datei etwa nach folgendem Muster:
  
   [General]   [General]
Zeile 42: 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 62: 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 115: Zeile 122:
      
 Anschließend kann man die Software mit Anschließend kann man die Software mit
-  sudo /opt/mmdvm/MMDVMHost /opt/mmdvm/MMDFM.ini +  sudo /opt/mmdvm/MMDVMHost /opt/mmdvm/MMDVM.ini 
 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
  
-  #!/bin/bash +  sudo chmod +s /opt/mmdvm/MMDVMHost
-  ### 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+
      
-  # +dem MMDVMHost ein "sticky bitverpassen muss, damit es die Logs schreiben kann. 
-  ### END INIT INFO + 
-  ## Fill in name of program here. +Hier das Watchdogscript: 
-  PROG="MMDVMHost" + 
-  PROG_PATH="/opt/mmdvm/" +  #!/bin/bash                                                                     
-  PROG_ARGS="/opt/mmdvm/MMDVM.ini" +
-  PIDFILE="/var/run/mmdvm.pid" +
-  USER="pi"+
      
-  start() { +  ## Fill in name of program here                                                
-      if [ -e $PIDFILE ]; then +  PROG="MMDVMHost"                                                                 
-          ## Program is running, exit with error+  PROG_PATH="/opt/mmdvm/"                                                          
-          echo "Error! $PROG is currently running!1>&2 +  PROG_ARGS="/opt/mmdvm/MMDVM.ini"                                                 
-          exit 1 +  PIDFILE="/var/run/mmdvm.pid"                                                     
-      else +  USER="pi"                                                                        
-          ## Change from /dev/null to something like /var/log/$PROG if you want to save output+  IP_FOR_TEST="87.106.126.49"                                                      
-          cd $PROG_PATH +  PING_COUNT=5                                                                     
-          sleep 30 +  PING="/bin/ping"     
-          sudo -u $USER /usr/bin/stdbuf -i0 -o0 -e0 ./$PROG $PROG_ARGS 2>&1 >> /dev/null & +  WATCHDOGFILE="/mnt/ramdisk/watchdog.run                                                            
-          echo "$PROG started" +  runwatchdog=0                                                                   
-          touch $PIDFILE +
-      fi +
-  }+
      
-  stop() { +  start() {                                                                        
-      if [ -e $PIDFILE ]; then +    if [ -e $PIDFILE ]; then                                                     
-          ## Program is running, so stop it +        ## Program is running, exit with error.                                  
-         echo "$PROG is running" +        echo "Error! $PROG is currently running!1>&                          
-         rm -f $PIDFILE +        exit 1                                                                   
-         killall $PROG +    else                                                                         
-         echo "$PROG stopped" +        ## Change from /dev/null to something like /var/log/$PROG if you want to save output.                                                                    
-      else +        cd $PROG_PATH                                                            
-          ## Program is not running, exit with error+        sudo -u $USER /usr/bin/stdbuf -i0 -o0 -e0 ./$PROG $PROG_ARGS 2>&1 >> /dev/null &                                                                         
-          echo "Error! $PROG not started!1>&2 +        echo "$PROG started"                                                     
-          exit 1 +        sudo touch $PIDFILE                                                      
-      fi+    fi                                                                          
   }   }
      
-  ## Check to see if we are running as root first. +  if [ -e $WATCHDOGFILE ]; then 
-  ## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html +        echo "Error! Watchdog is currently running!" 1>&
-  if [ "$(id -u)" != "0]then +        exit 1 
-      echo "This script must be run as root1>&2 +  fi 
-      exit 1+   
 +  if [ ! "$(pidof $PROG)"
 +  then 
 +        runwatchdog=1 
 +        sudo touch $WATCHDOGFILE 
 +        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.