YSF Reflector 설치 과정 메모. DV (DMR,DSTAR and Fusion)

YSFReflecor 설치 과정을 메모 해 둡니다

별로 어렵지는 않은데, 인터넷에서 쉽게 따라 할 수 있도록 만들어둔 문서가 없어서 제가 만들어봤습니다. 아래 방법 대로면 잘 동작 합니다. ysf071.dv.or.kr 이 운용되기 시작하면 완전한 문서로 정리 끝내도록 하겠습니다.

* 설치 과정은 pi 계정으로 진행합니다. 설치 과정을 root로 로그인해서 처리하지말고, sudo 사용해 주시기 바랍니다.

장비 : Reapberry PI (아무버전이나)
OS : Raspbian Jessie Lite


기본 패키기 설치 

sudo raspi-config
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim
sudo apt-get install git
sudo apt-get install php5
sudo apt-get install sysv-rc-conf


설치 할 소스 받기

# YSFClients 소스 받기
git clone https://github.com/g4klx/YSFClients.git YSFClients
# YSFReflector-Dashboard 소스 받기
git clone https://github.com/dg9vh/YSFReflector-Dashboard.git YSFReflector-Dashboard

mmdvm 사용자 그룹 추가

# G4KLX가 리플렉터 소스코드(YSFReflector.cpp)내에서 mmdvm.mmdvm을 사용하도록 하드코딩해 놨기 때문에 소스 변경을 하지 않고는 이 계정을 써야합니다. 이 계정은 데몬 실행 계정으로 사용됩니다.
sudo groupadd mmdvm
sudo useradd mmdvm -g mmdvm -s /sbin/nologin


간단한 배포 스크립트

/home/pi/refdply.sh
------------------------------------------------
#!/bin/sh
#소스 배포
sudo mkdir -p /opt/YSFReflector/
sudo mkdir -p /var/log/YSFReflector
sudo cp /home/pi/YSFClients/YSFReflector/YSFReflector /opt/YSFReflector/
sudo cp /home/pi/YSFClients/YSFReflector/YSFReflector.ini /etc/

#리플렉터 세팅
sudo cp /home/pi/YSFReflector-Dashboard/* /var/www/html/ -r
sudo mkdir -p /var/www/html/config
------------------------------------------------

데몬 구동 스크립트 작성

/etc/init.d/YSFReflector
------------------------------------------------
#!/bin/sh
### BEGIN INIT INFO
#
# Provides: YSFReflector
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: YSFReflector Start Script
#
### END INIT INFO

PROG="YSFReflector"
PROG_PATH="/opt/YSFReflector/"
PROG_ARGS="/etc/YSFReflector.ini"
PIDFILE="/var/run/YSFReflector.pid"
USER="root"

start() {
if [ -e $PIDFILE ]; then
## Program is running, exit with error.
echo "Error! $PROG is currently running!" 1>&2
exit 1
else
echo "Starting $PROG ..."
eval‎ "${PROG_PATH}${PROG} ${PROG_ARGS}"
echo "$PROG started."
touch $PIDFILE
fi
}

stop() {
if [ -e $PIDFILE ]; then
echo "Stopping $PROG ..."
rm -f ${PIDFILE}
PID=`ps -ef | grep ${PROG_PATH}${PROG} | grep -v grep | awk '{print \$2}'`
kill -9 ${PID}
echo "${PROG} is stopped."
else
## Program is not running, exit with error.
echo "Error! $PROG not started!" 1>&2
exit 1
fi
}

## Check to see if we are running as root first.
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi

case "$1" in
start)
start
exit 0
;;
stop)
stop
exit 0
;;
restart)
stop
sleep 5
start
exit 0
;;
**)
echo "Usage: $0 {start|stop|restart}" 1>&2
exit 1
;;
esac
exit 0
### END
------------------------------------------------

데몬 구동 스크립트 실행 권한 주기

sudo chmod +x /etc/init.d/YSFReflector


데몬등록

cd /etc/init.d/
sudo sysv-rc-conf YSFReflector on


데몬등록 확인
sudo sysv-rc-conf --list YSFReflector

대시보드 기본 세팅, 웹브라우저에서

http://ysf071.dv.or.kr/setup.php

설정 끝난 뒤 setup.php 삭제

sudo rm /var/www/html/setup.php


오래된 로그 삭제

대시보드가 로그 기반으로 동작하기에 로그를 안쌓을 수 없습니다.
/home/pi/remove_old_log.sh
------------------------------------------------
#!/bin/sh
find /var/log/YSFReflector -name 'YSFReflector-*' -mtime +5 | sudo xargs rm -f
------------------------------------------------
chmod +x remove_old_log.sh

로그 삭제 배치 등록, crontab사용
0 5 * * * /home/pi/remove_old_log.sh

그리고 다 끝나면 하는 그거!
sudo reboot




Best 73
HL2UVH

덧글

댓글 입력 영역

Google Adsense


BASICOMM

>> BASICOMM 대한민국
50MHz안테나, 발룬, GHD Japan CW키, 페라이트 코어, 무선통신장비 수입대행
>> BASICOMM Worldwide
BASICOMM High Power Balun

Grid Locator of HL2UVH

Long : 127.14662 E (127° 8' 48'' E)
Lat : 37.60101 N (37° 36' 4'' N)
QTH locator : PM37no

Solar-Terrestrial Data

GoogleAnalytics