|
라즈베리파이 3B 용 MMDVM, DVMega 구동용이미지를 공유드립니다. 리피터나 핫스팟을 유지하기 편리하도록 하기위해 계속해서 조금씩 뭔가를 수정하고있긴 하지만 현재 상태로 일단 이미지를 한번 배포하도록 하겠습니다.
이 글은 이미지 제작과정에 대한 메모입니다. 절대 사용법에 대한 내용이 아니니까 주의 부탁드립니다.
대상 플랫폼 : 라즈베리파이 3B
MMDVM Duplex Repeater
MMDVM Simplex Repeater (DMO)
DVMega
사용가능 모드/네트워크
DMR / BrandMeister, DMR+
DSTAR / DPlus, DExtra, DCS
* 추후 C4FM확인 할 수 있는 장비가 수배되면 추가하도록 하겠습니다.
완성된 이미지
https://drive.google.com/open?id=0B67iq56Sv-sAdkxycnNaV0tLRDQ
- 압축사이즈 : 약 700MB
- 이미지 사이즈 : 1.8GB
- 접속 프로토콜 : SSH, port 22
- id : pi
- password : 12345
* 다운로드 받으신뒤 압축 풀고, 평소 하시던대로 Win Disk Imager 사용해서 준비하신 microSD카드에 write 하면 됩니다.
설치 내용
RASPBIAN JESSIE LITE
https://www.raspberrypi.org/downloads/raspbian/
MMDVMHost
https://github.com/g4klx/MMDVMHost
ircDDBGateway
https://github.com/dl5di/OpenDV
git, screen, vim, 설정파일 심볼릭링크, 쉘스크립트 몇종
1. RASPBIAN JESSIE LITE 설치
https://drive.google.com/file/d/0B67iq56Sv-sATXpZMGFMVEF4MUk/view?usp=sharing
위의 이미지 다운로드 > 압축해제 > WinDiskimager 로 microSD에 write.
설치된 pi의 ip를 찾은 뒤 ssh로 접속, 이후 과정 진행
[hostname 수정]
/etc/hostname
/etc/hosts
* raspberrypi -> sojuPi
[pi 계정 password 변경]
pi@sojuPI:~ $ passwd
[필수 패키지 설치]
pi@sojuPI:~ $ sudo raspi-config
pi@sojuPI:~ $ sudo apt-get update
pi@sojuPI:~ $ sudo apt-get upgrade
pi@sojuPI:~ $ sudo apt-get install vim
pi@sojuPI:~ $ sudo apt-get install screen
pi@sojuPI:~ $ sudo apt-get install git
[ll alias 주석제거]
~/.bashrc[필수 디렉토리 생성]pi@sojuPI:~ $ sudo mkdir -p /opt/MMDVMHostpi@sojuPI:~ $ sudo mkdir -p /opt/MMDVMCalpi@sojuPI:~ $ sudo mkdir -p /var/log/MMDVMHostpi@sojuPI:~ $ mkdir -p ~/config
pi@sojuPi:~ $ git clone https://github.com/g4klx/MMDVMHost.git MMDVMHostpi@sojuPi:~ $ cd MMDVMHostpi@sojuPi:~ $ makepi@sojuPi:~ $ sudo cp MMDVM.ini /etc
pi@sojuPi:~ $ cd /tmppi@sojuPi:~ $ wget http://repo1.ham-digital.net/debian/dl5di.pkpi@sojuPi:~ $ sudo apt-key add dl5di.pkpi@sojuPi:~ $ cd ~pi@sojuPi:~ $ sudo curl http://repo1.ham-digital.net/raspbian/opendv.list -o /etc/apt/sources.list.d/opendv.listpi@sojuPi:~ $ sudo apt-get updatepi@sojuPi:~ $ sudo apt-get upgradepi@sojuPi:~ $ sudo apt-get install ircddbgateway* 위의 패키지로 설치하면 ircddbgw_conf로 모든설정을 할 수 있습니다, 데몬으로 등록, 시작 재시작 중지 등을 쉽게 설정할 수 있고, 이것조차 불편하면 바로 설정파일을 수정하시면 됩니다. 이후 소개
4. MMDVMHost 부팅시 자동실행등록
/lib/systemd/system/mmdvmhost.service
------------------------------
[Unit]
Description=MMDVMHost Service
[Service]
Type=simple
StandardOutput=null
WorkingDirectory=/opt/MMDVMHost
Restart=always
RestartSec=3
ExecStart=/opt/MMDVMHost/MMDVMHost /etc/MMDVM.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
WantedBy=network-online.target
------------------------------
/lib/systemd/system/mmdvmhost.timer
------------------------------
[Timer]
xxxxxxxxxxxxxxOnStartupSec=30 <--부팅시간 고려해서 조정
[Install]
WantedBy=multi-user.target
------------------------------
pi@sojuPi:~ $ sudo chmod 755 /lib/systemd/system/mmdvmhost.timer
pi@sojuPi:~ $ sudo ln -s /lib/systemd/system/mmdvmhost.timer /etc/systemd/system/mmdvmhost.timer
pi@sojuPi:~ $ sudo chmod 755 /lib/systemd/system/mmdvmhost.service
pi@sojuPi:~ $ sudo ln -s /lib/systemd/system/mmdvmhost.service /etc/systemd/system/mmdvmhost.service
pi@sojuPi:~ $ sudo systemctl daemon-reload
pi@sojuPi:~ $ sudo systemctl enable mmdvmhost.timer
pi@sojuPi:~ $ sudo reboot
5. 시리얼 TTY 죽이기 & Bluetooth 죽이기
pi@sojuPi:~ $ sudo systemctl stop serial-getty@ttyAMA0.service
pi@sojuPi:~ $ sudo systemctl disable serial-getty@ttyAMA0.service
/boot/cmdline.txt
------------------------------
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
------------------------------
* 이파일에서 빨간색 부분 삭제
/boot/config.txt
------------------------------
dtoverlay=pi3-disable-bt
------------------------------
*이 파일 제일 아래 파란색 추가
6. MMDVMHost 관리 스크립트
pi@sojuPi:~ $ vi rptdply
#!/bin/sh
sudo mkdir -p /opt/MMDVMHost
sudo mkdir -p /opt/MMDVMCal
sudo systemctl stop mmdvmhost.service
sudo cp /home/pi/MMDVMHost/MMDVMHost /opt/MMDVMHost
sudo systemctl start mmdvmhost.service
sudo cp /home/pi/MMDVMCal/MMDVMCal /opt/MMDVMCal/
7. MMDVMHost 구동 스크립트
pi@sojuPi:~ $ vi rptctrl
#/bin/sh
if [ "$1" = "restart" ]; then
sudo systemctl restart mmdvmhost.service
exit 0
fi
if [ "$1" = "start" ]; then
sudo systemctl start mmdvmhost.service
exit 0
fi
if [ "$1" = "status" ]; then
sudo systemctl status mmdvmhost.service
exit 0
fi
if [ "$1" = "stop" ]; then
sudo systemctl stop mmdvmhost.service
exit 0
fi
echo ""
echo "Usage : ./control [start|restart|stop|status]"
echo ""
8. 배포 스크립트
#!/bin/sh
sudo mkdir -p /opt/MMDVMHost
sudo mkdir -p /opt/MMDVMCal
sudo systemctl stop mmdvmhost.service
sudo cp /home/pi/MMDVMHost/MMDVMHost /opt/MMDVMHost
sudo systemctl start mmdvmhost.service
sudo cp /home/pi/MMDVMCal/MMDVMCal /opt/MMDVMCal/
* MMDVMHost를 빌드한뒤 실행하면, 리피터 실행파일을 각자의 위치로 복사해 주는 스크립트
9. DMRIDUpdate.sh
pi@sojuPi:~ $ sudo cp ~/MMDVMHost/DMRIDUpdate.sh /opt/MMDVMHost/
pi@sojuPi:~ $ vi /opt/MMDVMHost/DMRIDUpdate.sh
DMRIDFILE=/opt/MMDVMHost/DMR/ID/file/DMRIds.dat <--- 이 부분수정
* MMDVMHost 실행중에 DMR ID : Callsign을 매핑해 주는 데이터를 저장하는 경로로 바꿔준다.
* 설정파일인 MMDVM.ini 파일에도 똑같은 경로를 지정해 주면 된다.
10. 기간 지난 로그 삭제 스크립트
pi@sojuPi:~ $ vi remove_old_log.sh
#!/bin/sh
find /var/log/opendv -name 'TimeServer-*' -mtime +5 | sudo xargs rm -f
find /var/log/opendv -name 'ircDDBGateway-*' -mtime +5 | sudo xargs rm -f
find /var/log/opendv -name 'ircddbgw_conf-*' -mtime +5 | sudo xargs rm -f
find /var/log/MMDVMHost -name 'MMDVM-*' -mtime +5 | sudo xargs rm -f
pi@sojuPi:~ $ ln -s /usr/bin/ircddbgw_conf ~/gwconfpi@sojuPi:~ $ ln -s/home/opendv/data/DCS_Hosts.txt ~/config/DCS_Hosts.txtpi@sojuPi:~ $ ln -s/home/opendv/data/DExtra_Hosts.txt ~/config/DExtra_Hosts.txtpi@sojuPi:~ $ ln -s/home/opendv/data/DPlus_Hosts.txt ~/config/DPlus_Hosts.txtpi@sojuPi:~ $ ln -s/home/opendv/ircddbgateway/ircddbgateway ~/config/ircddbgatewaypi@sojuPi:~ $ ln -s/home/opendv/ircddbgateway/ircddbgw_conf ~/config/ircddbgw_confpi@sojuPi:~ $ ln -s/etc/MMDVM.ini ~/config/MMDVM.inipi@sojuPi:~ $ ln -s/home/opendv/ircddbgateway/timeserver ~/config/timeserver
12. crontab 등록
pi@sojuPi:~/config $ sudo crontab -e
5 5 * * * /home/pi/remove_old_log.sh
10 5 * * * /opt/MMDVMHost/DMRIDUpdate.sh 1>/dev/null 2>&1
20 5 * * * /sbin/reboot
첫댓글 긴 글 정리하시느라 수고하셨습니다.
이 글을 보고 따라할 수 있는 분이 많지는 않지만, 그래도 반복되는 게시글 속에서 라즈베리파이와 Linux에 대한 관심이 올라가고, 새로운 분이 생기는 계기가 되면 좋겠습니다.
사실 설치한건 별로 없는데, 정리 해 보니 복잡하네요 ㅎ
네 따라하는것도 방법중 하나인데 아예 micro sd메모리로 제작해서 공구 하심이
^^ 따라 하시라고 올린 내용이아니고, 필요하신분은 위에 공개된 이미지 받아서 직접 구우시면 될것 같습니다.
https://drive.google.com/file/d/0B67iq56Sv-sATXpZMGFMVEF4MUk/view?usp=sharing
xxxxOnStartupSec=30 ---> OnStartupSec=30 수정합니다.
DAUM 에디터에서 자동으로 xxx가 붙는데 어떻게 할 방법이 없네요.
올려주신 이미지 파일은 당 카페 "이미지 자료실"에도 업로드해 두었습니다.
좋은 자료 감사합니다.
이 이미지는 이번 주말에 다시 한번 업데이트 하겠습니다. "5. 시리얼 TTY 죽이기 & Bluetooth 죽이기"부분을 추가 해야지 정상동작합니다. 어제 작업 중에 SD카드리더기가 죽어버려서 당당 이미지 작성이 안되네요,
좋은 정보 감사합니다. 바탕화면에 설치할 수 있는 좋은 팁들이 많네요. 감사합니다.
좋은 자료 감사 합니다
수고 많으십니다 ^^
불과 몇개월 전에 라즈베리 파이라는 것을 처음 접했고.. DV4mini에 쓰려고 "sudo" 만 딥다 치다가 쳐밖아 놨었는데.. ㅋ
오늘 UVH오엠님의 글을 읽어보면서.. 예전엔 암호문 같았던 문장이 이제는 전부 이해할 수 있다는 저 자신이 신기합니다..^^
요렇게만 올려주신다면.. 한번 다시 시도해 볼만 합니다.. RPi.. 요거 아주 물건이더라고요..^^*~
감사합니다. 많은 참고가 됩니다.
말씀 고맙습니다.
rpi 저도 참 좋아합니다. 간단하게 웹서버로 쓸 수 있고 집에서 사용하는 NAS의 전단에 붙여 파일전송 gateway로 도 쓸 수 있고, 무었보다도 저전력이면서 가겨도 싸다는것.
저는 source code들은 전부 /home/pi/Dowloads/MMDVMHost/ 또는 .../YSFGateway/ 이하에 정리하고, 컴파일된 파일들 소위 실행파일은 /home/pi/MMDVM/을 만들어서 여기에 다 넣어 놓고 있습니다.
20160930 버전으로, 이미지 업데이트 되었습니다,
rpi3B-MMDVM-RPT-20160930-hl2uvh.zip
이후 DS5TUK 오엠님이 작업중인 LCD, HD44780 이 추가 되면 어미지 한번 더 업데이트 하겠습니다.
우어어어어어 눈이 핑핑돕니다....
감사합니다