본 내용은 오래되어 아래 설명으로 진행하더라도 제대로 작동이 안되거나 업그레이드를 할 수 없습니다
DVSwitch는 아래 신 버젼 설치하세요
https://ds5qdr-dv.tistory.com/134
MMDVMHost는 아래 내용 참고 설치하세요
https://pclife.tistory.com/116
--------------------------------------------------------------------------------------------------------------------------------
지난 6/28일 DVLink Server 위에 MMDVM HotSpot을 올려 DMR D-Star를 무전기로 접속 가능하게 하였다
이는 DVLink에 설치되어 있는 MMDVMHost 프로그램을 가동한 것이다
https://ds5qdr-dv.tistory.com/45
DVLink가 되므로 DVSwitch도 가능할 것이다는 가정하에
- DS5HVM OM님이 먼저 성공하하셨다는 정보를 듣고
- DS5HVM OM님 도움을 받아 DVSwitch Server 위에 MMDVM HotSpot을 설치하여
무전기로도 접속이 가능하도록 설치하였다
결론부터 말씀 드리면
- DMR 완벽
- D-Star 정상 작동
- 물론 DVSwitch 아주 정상 작동합니다
준비물
- Raspberry Pi 3B plus 1개
- MMDVM HotSpot 1개
- 2.4인치 Netxion LCD 1개
- Micro SD Card 16G x10 1개
- 냉각팬 1개
Raspberry Pi 4B에서는 MMDVM HotSpot이 잘 작동을 안하니
Raspberry Pi 3B에서 테스트 하시기 바랍니다
목록
1단계] HL5KY OM님 DVSwitch V4.0 받아 이미지 설정
2단계] Github에서 MMDVMHost 설치 파일 받고 make
3단계] MMDVM.ini 수정
4단계] 자동 실행 파일 생성 및 설치
5단계] ircddbgateway 수정
1단계] HL5KY OM님 DVSwitch V4.0 받아 이미지 설정
먼저 HL5KY OM님 DVSwitch V4.0 을 받아 설치한다
https://ds5qdr-dv.tistory.com/37
2단계] Github에서 MMDVMHost 설치 파일 받고 make
다음은 Putty로 접속하여 로그인 합니다
login as: pi
pi@192.168.0.110's password: raspberry
pi@raspberrypi:~ $ cd /opt
pi@raspberrypi:/opt $ dir
Analog_Bridge MMDVM_Bridge P25Gateway vc
DMRGateway NXDNGateway P25Parrot YSFGateway
md380-emu NXDNParrot Quantar_Bridge YSFParrot
pi@raspberrypi:/opt $ sudo git clone https://github.com/g4klx/MMDVMHost
Cloning into 'MMDVMHost'...
remote: Enumerating objects: 61, done.
remote: Counting objects: 100% (61/61), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 10165 (delta 38), reused 35 (delta 20), pack-reused 10104
Receiving objects: 100% (10165/10165), 19.27 MiB | 4.77 MiB/s, done.
Resolving deltas: 100% (7399/7399), done.
Checking out files: 100% (302/302), done.
pi@raspberrypi:/opt $ dir -l
total 60
drwxr-xr-x 2 root root 4096 Jul 19 07:53 Analog_Bridge
drwxr-xr-x 3 root root 4096 Apr 14 11:45 DMRGateway
drwxr-xr-x 2 root root 4096 Apr 14 11:43 md380-emu
drwxr-xr-x 2 root root 4096 Jul 19 08:38 MMDVM_Bridge
drwxr-xr-x 11 root root 12288 Jul 19 08:46 MMDVMHost # 폴드가 생성되어 있음
drwxr-xr-x 3 root root 4096 Jul 19 07:52 NXDNGateway
drwxr-xr-x 2 root root 4096 Apr 14 11:57 NXDNParrot
drwxr-xr-x 3 root root 4096 Jul 19 07:52 P25Gateway
drwxr-xr-x 2 root root 4096 Apr 14 11:44 P25Parrot
drwxr-xr-x 2 root root 4096 Jul 19 07:52 Quantar_Bridge
drwxr-xr-x 6 root root 4096 Feb 14 00:56 vc
drwxr-xr-x 2 root root 4096 Jul 19 07:52 YSFGateway
drwxr-xr-x 2 root root 4096 Apr 14 11:57 YSFParrot
pi@raspberrypi:/opt $ cd MMDVMHost
pi@raspberrypi:/opt/MMDVMHost $ sudo make
echo "const char *gitversion = \"3e6d5d5a7f24448a49063ca9bda6413f8076f878\";" > GitVersion.h
c++ -g -O3 -Wall -std=c++0x -pthread -c -o AMBEFEC.o AMBEFEC.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o BCH.o BCH.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o BPTC19696.o BPTC19696.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o CASTInfo.o CASTInfo.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Conf.o Conf.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o CRC.o CRC.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Display.o Display.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRControl.o DMRControl.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRCSBK.o DMRCSBK.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRData.o DMRData.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRDataHeader.o DMRDataHeader.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMREMB.o DMREMB.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMREmbeddedData.o DMREmbeddedData.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRFullLC.o DMRFullLC.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRLookup.o DMRLookup.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRLC.o DMRLC.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRNetwork.o DMRNetwork.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRShortLC.o DMRShortLC.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRSlot.o DMRSlot.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRSlotType.o DMRSlotType.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRAccessControl.o DMRAccessControl.c pp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRTA.o DMRTA.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRTrellis.o DMRTrellis.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DStarControl.o DStarControl.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DStarHeader.o DStarHeader.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DStarNetwork.o DStarNetwork.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o DStarSlowData.o DStarSlowData.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Golay2087.o Golay2087.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Golay24128.o Golay24128.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o GPSD.o GPSD.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Hamming.o Hamming.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o I2CController.o I2CController.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o LCDproc.o LCDproc.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Log.o Log.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o MMDVMHost.o MMDVMHost.cpp
MMDVMHost.cpp: In member function ‘bool CMMDVMHost::createModem()’:
MMDVMHost.cpp:1260:16: warning: unused variable ‘extAudioBoost’ [-Wunused-variab le]
unsigned int extAudioBoost = m_conf.getFMExtAudioBoost();
^~~~~~~~~~~~~
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Modem.o Modem.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o ModemSerialPort.o ModemSerialPort.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Mutex.o Mutex.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NetworkInfo.o NetworkInfo.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Nextion.o Nextion.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NullDisplay.o NullDisplay.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NullModem.o NullModem.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNAudio.o NXDNAudio.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNControl.o NXDNControl.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNConvolution.o NXDNConvolution.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNCRC.o NXDNCRC.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNFACCH1.o NXDNFACCH1.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNIcomNetwork.o NXDNIcomNetwork.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNKenwoodNetwork.o NXDNKenwoodNetwo rk.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNLayer3.o NXDNLayer3.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNLICH.o NXDNLICH.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNLookup.o NXDNLookup.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNNetwork.o NXDNNetwork.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNSACCH.o NXDNSACCH.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o NXDNUDCH.o NXDNUDCH.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o P25Audio.o P25Audio.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o P25Control.o P25Control.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o P25Data.o P25Data.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o P25LowSpeedData.o P25LowSpeedData.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o P25Network.o P25Network.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o P25NID.o P25NID.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o P25Trellis.o P25Trellis.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o P25Utils.o P25Utils.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o POCSAGControl.o POCSAGControl.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o POCSAGNetwork.o POCSAGNetwork.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o QR1676.o QR1676.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o RemoteControl.o RemoteControl.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o RS129.o RS129.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o RS241213.o RS241213.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o RSSIInterpolator.o RSSIInterpolator.c pp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o SerialController.o SerialController.c pp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o SerialPort.o SerialPort.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o SHA256.o SHA256.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o StopWatch.o StopWatch.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Sync.o Sync.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o TFTSerial.o TFTSerial.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o TFTSurenoo.o TFTSurenoo.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Thread.o Thread.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Timer.o Timer.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o UDPSocket.o UDPSocket.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o UMP.o UMP.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o UserDB.o UserDB.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o UserDBentry.o UserDBentry.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o Utils.o Utils.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o YSFControl.o YSFControl.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o YSFConvolution.o YSFConvolution.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o YSFFICH.o YSFFICH.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o YSFNetwork.o YSFNetwork.cpp
c++ -g -O3 -Wall -std=c++0x -pthread -c -o YSFPayload.o YSFPayload.cpp
c++ AMBEFEC.o BCH.o BPTC19696.o CASTInfo.o Conf.o CRC.o Display.o DMRControl.o D MRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedData.o DMRFullLC.o DMRLoo kup.o DMRLC.o DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl .o DMRTA.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowDat a.o Golay2087.o Golay24128.o GPSD.o Hamming.o I2CController.o LCDproc.o Log.o MM DVMHost.o Modem.o ModemSerialPort.o Mutex.o NetworkInfo.o Nextion.o NullDisplay. o NullModem.o NXDNAudio.o NXDNControl.o NXDNConvolution.o NXDNCRC.o NXDNFACCH1.o NXDNIcomNetwork.o NXDNKenwoodNetwork.o NXDNLayer3.o NXDNLICH.o NXDNLookup.o NX DNNetwork.o NXDNSACCH.o NXDNUDCH.o P25Audio.o P25Control.o P25Data.o P25LowSpeed Data.o P25Network.o P25NID.o P25Trellis.o P25Utils.o POCSAGControl.o POCSAGNetwo rk.o QR1676.o RemoteControl.o RS129.o RS241213.o RSSIInterpolator.o SerialContro ller.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o TFTSurenoo.o Thread. o Timer.o UDPSocket.o UMP.o UserDB.o UserDBentry.o Utils.o YSFControl.o YSFConvo lution.o YSFFICH.o YSFNetwork.o YSFPayload.o -g -O3 -Wall -std=c++0x -pthread -l pthread -o MMDVMHost
c++ -g -O3 -Wall -std=c++0x -pthread -c -o RemoteCommand.o RemoteCommand.cpp
c++ Log.o RemoteCommand.o UDPSocket.o -g -O3 -Wall -std=c++0x -pthread -lpthread -o RemoteCommand
3단계] MMDVM.ini 수정
pi@raspberrypi:/opt/MMDVMHost $ sudo nano MMDVM.ini
[General]
Callsign=DS5QDR
Id=45xxxxx
Timeout=180
Duplex=0
# ModeHang=10
RFModeHang=10
NetModeHang=3
Display=Nextion
Daemon=1
[Info]
RXFrequency=439800000
TXFrequency=439800000
Power=1
Latitude=35.166733
Longitude=128.82833
Height=0
Location=Gimhae, Korea
Description=Multi-Mode Repeater
URL=qrz.com/db/DS5QDR
[Log]
# Logging levels, 0=No logging
DisplayLevel=1
FileLevel=1
FilePath=.
FileRoot=MMDVM
[CW Id]
Enable=0
Time=10
# Callsign=
[DMR Id Lookup]
File=DMRIds.dat
Time=24
[NXDN Id Lookup]
File=NXDN.csv
Time=24
[Modem]
# Port=/dev/ttyACM0
Port=/dev/ttyAMA0 # 라즈베리파이 3B GPIO에 MMDVM HotSpot 올려져 있음
# Port=\\.\COM4
Protocol=uart
# Address=0x22
TXInvert=1
RXInvert=0
PTTInvert=0
TXDelay=100
RXOffset=0
TXOffset=0
DMRDelay=0
RXLevel=50
TXLevel=50
RXDCOffset=0
TXDCOffset=0
RFLevel=100
# CWIdTXLevel=50
# D-StarTXLevel=50
# DMRTXLevel=50
# YSFTXLevel=50
# P25TXLevel=50
# NXDNTXLevel=50
# POCSAGTXLevel=50
# FMTXLevel=50
RSSIMappingFile=RSSI.dat
UseCOSAsLockout=0
Trace=0
Debug=0
[Transparent Data]
Enable=0
RemoteAddress=127.0.0.1
RemotePort=40094
LocalPort=40095
# SendFrameType=0
[UMP]
Enable=0
# Port=\\.\COM4
Port=/dev/ttyACM1
[D-Star]
Enable=1
Module=C
SelfOnly=0
AckReply=1
AckTime=750
AckMessage=0
ErrorReply=1
RemoteGateway=0
# ModeHang=10
[DMR]
Enable=1
Beacons=0
BeaconInterval=60
BeaconDuration=3
ColorCode=1
SelfOnly=0
EmbeddedLCOnly=0
DumpTAData=1
# Prefixes=234,235
# Slot1TGWhiteList=
# Slot2TGWhiteList=
CallHang=3
TXHang=4
# ModeHang=10
# OVCM Values, 0=off, 1=rx_on, 2=tx_on, 3=both_on
# OVCM=0
[System Fusion]
Enable=0
LowDeviation=0
SelfOnly=0
TXHang=4
#DGID=1
RemoteGateway=0
# ModeHang=10
[P25]
Enable=0
NAC=293
SelfOnly=0
OverrideUIDCheck=0
RemoteGateway=0
TXHang=5
# ModeHang=10
[NXDN]
Enable=0
RAN=1
SelfOnly=0
RemoteGateway=0
TXHang=5
# ModeHang=10
[POCSAG]
Enable=0
Frequency=439987500
[FM]
Enable=0
# Callsign=G4KLX
CallsignSpeed=20
CallsignFrequency=1000
CallsignTime=10
CallsignHoldoff=0
CallsignHighLevel=50
CallsignLowLevel=20
CallsignAtStart=1
CallsignAtEnd=1
CallsignAtLatch=0
RFAck=K
ExtAck=N
AckSpeed=20
AckFrequency=1750
AckMinTime=4
AckDelay=1000
AckLevel=50
# Timeout=180
TimeoutLevel=80
CTCSSFrequency=88.4
CTCSSThreshold=30
# CTCSSHighThreshold=30
# CTCSSLowThreshold=20
CTCSSLevel=20
KerchunkTime=0
HangTime=7
AccessMode=1
COSInvert=0
RFAudioBoost=1
MaxDevLevel=90
ExtAudioBoost=1
[D-Star Network]
Enable=1
GatewayAddress=127.0.0.1
GatewayPort=20010
LocalPort=20012 # DVSwitch가 20011 Port 사용하므로 HotSpot은 20012 임
# ModeHang=3
Debug=0
[DMR Network]
Enable=1
Address=211.60.41.188 # BM_South_Korea_4501 : 211.60.41.188
Port=62031
Jitter=360
# Local=62032
Password=passw0rd # Brandmeister Selfcare 비밀번호 입력해야 합니다
# Options=
Slot1=1
Slot2=1
# ModeHang=3
Debug=0
[System Fusion Network]
Enable=0
LocalAddress=127.0.0.1
LocalPort=3200
GatewayAddress=127.0.0.1
GatewayPort=4200
# ModeHang=3
Debug=0
[P25 Network]
Enable=0
GatewayAddress=127.0.0.1
GatewayPort=42020
LocalPort=32010
# ModeHang=3
Debug=0
[NXDN Network]
Enable=0
Protocol=Icom
LocalAddress=127.0.0.1
LocalPort=14021
GatewayAddress=127.0.0.1
GatewayPort=14020
# ModeHang=3
Debug=0
[POCSAG Network]
Enable=0
LocalAddress=127.0.0.1
LocalPort=3800
GatewayAddress=127.0.0.1
GatewayPort=4800
# ModeHang=3
Debug=0
[TFT Serial]
# Port=modem
Port=/dev/ttyAMA0
Brightness=50
[HD44780]
Rows=2
Columns=16
# For basic HD44780 displays (4-bit connection)
# rs, strb, d0, d1, d2, d3
Pins=11,10,0,1,2,3
# Device address for I2C
I2CAddress=0x20
# PWM backlight
PWM=0
PWMPin=21
PWMBright=100
PWMDim=16
DisplayClock=1
UTC=0
[Nextion]
Port=modem # MMDVM Hotspot의 Nextion 단자에 연결되어 있음
# Port=/dev/ttyAMA0
Brightness=50
DisplayClock=1
UTC=0
#Screen Layout: 0=G4KLX 2=ON7LDS
ScreenLayout=3 # 태국 Kasem Sirisuwan Netion TFT 파일 사용
IdleBrightness=20
[OLED]
Type=3
Brightness=0
Invert=0
Scroll=1
Rotate=0
Cast=0
LogoScreensaver=1
[LCDproc]
Address=localhost
Port=13666
#LocalPort=13667
DimOnIdle=0
DisplayClock=1
UTC=0
[Lock File]
Enable=0
File=/tmp/MMDVM_Active.lck
[GPSD]
Enable=0
Address=127.0.0.1
Port=2947
[Remote Control]
Enable=0
Port=7642
End of MMDVM.ini
4단계] 자동 실행 파일 생성 및 설치
1. mmdvmhost.service 만들기
sudo nano /lib/systemd/system/mmdvmhost.service
[Unit]
Description=MMDVM Host Service
After=syslog.targetnetwork.target
[Service]
User=root
WorkingDirectory=/opt/MMDVMHost
ExecStart=/usr/bin/screen -S MMDVMHost -D -m /opt/MMDVMHost/MMDVMHost /opt/MMDVMHost/MMDVM.ini
ExecStop=/usr/bin/screen -S MMDVMHost -X quit
[Install]
WantedBy=multi-user.target
CTRL+X and Y
2. mmdvmhost.time 파일 만들기
sudo nano /lib/systemd/system/mmdvmhost.timer
[Timer]
OnStartupSec=60
[Install]
WantedBy=multi-user.target
CTRL+X and Ycd
3. 자동 실행 등록
sudo chmod 755 /lib/systemd/system/mmdvmhost.service
sudo ln -s /lib/systemd/system/mmdvmhost.service /etc/systemd/system/mmdvmhost.service
sudo chmod 755 /lib/systemd/system/mmdvmhost.timer
sudo ln -s /lib/systemd/system/mmdvmhost.timer /etc/systemd/system/mmdvmhost.timer
sudo systemctl daemon-reload
sudo systemctl enable mmdvmhost.timer
4. screen 설치
pi@raspberrypi:~ $ cd /opt/MMDVMHost
pi@raspberrypi:/opt/MMDVMHost $ sudo apt-get install screen
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libutempter0
Suggested packages:
byobu | screenie | iselect
The following NEW packages will be installed:
libutempter0 screen
0 upgraded, 2 newly installed, 0 to remove and 4 not upgraded.
Need to get 545 kB of archives.
After this operation, 955 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.harukasan.org/raspbian/raspbian buster/main armhf libutempter0 armhf 1.1.6-3 [7,736 B]
Get:2 http://ftp.harukasan.org/raspbian/raspbian buster/main armhf screen armhf 4.6.2-3 [538 kB]
Fetched 545 kB in 3s (211 kB/s)
Selecting previously unselected package libutempter0:armhf.
(Reading database ... 50948 files and directories currently installed.)
Preparing to unpack .../libutempter0_1.1.6-3_armhf.deb ...
Unpacking libutempter0:armhf (1.1.6-3) ...
Selecting previously unselected package screen.
Preparing to unpack .../screen_4.6.2-3_armhf.deb ...
Unpacking screen (4.6.2-3) ...
Setting up libutempter0:armhf (1.1.6-3) ...
Setting up screen (4.6.2-3) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for install-info (6.5.0.dfsg.1-4+b1) ...
Processing triggers for libc-bin (2.28-10+rpi1) ...
Processing triggers for systemd (241-7~deb10u3+rpi1) ...
5. 재부팅
pi@raspberrypi:/opt/MMDVMHost $ sudo reboot
부팅 후 모뎀의 DMR과 D-Star가 깜박이며 정상 작동이 될 것입니다
MMDVM HotSpot이 정상 작동하는지 모니터링을 할려면
tail -f /opt/MMDVMHost/MMDVM-2020-07-19.log # 해당 날짜의 log 파일을 열어보면 됨
5단계] ircddbgateway 수정
sudo nano /etc/ircddbgateway
청색은 DVSWitch 설정 시 기 반영된 것이고
적색은 MMDVM HotSpot 에서 추가 수정한 것임
gatewayType=0
gatewayCallsign=DS5QDR
gatewayAddress=0.0.0.0
icomAddress=172.16.0.20
icomPort=20000
hbAddress=127.0.0.1
hbPort=20010
latitude=
longitude=
description1=
description2=
url=
repeaterCall1=DS5QDR
repeaterBand1=S
repeaterType1=0
repeaterAddress1=127.0.0.1
repeaterPort1=20011 # DVSwitch 용 설정
reflector1=XRF071 C #
atStartup1=1
reconnect1=0
frequency1=434.00000
offset1=0.0000
rangeKms1=0.000
latitude1=0.000000
longitude1=0.000000
agl1=0.000
description1_1=
description1_2=
url1=
band1_1=0
band1_2=0
band1_3=0
repeaterCall2=DS5QDR
repeaterBand2=C # MMDVM.ini 파일의 [D-Star] Module=C 동일하게 세팅
repeaterType2=0
repeaterAddress2=127.0.0.1
repeaterPort2=20012 # MMDVM.ini 파일의 [D-Star Network] LocalPort=20012 동일하게 세팅
reflector2=XRF071 C
atStartup2=1
reconnect2=0
frequency2=0.00000
offset2=0.0000
rangeKms2=0.000
latitude2=0.000000
longitude2=0.000000
agl2=0.000
description2_1=
description2_2=
url2=
band2_1=0
band2_2=0
band2_3=0
repeaterCall3=
repeaterBand3=
repeaterType3=0
repeaterAddress3=127.0.0.1
repeaterPort3=20013
reflector3=
atStartup3=0
reconnect3=0
frequency3=0.00000
offset3=0.0000
rangeKms3=0.000
latitude3=0.000000
longitude3=0.000000
agl3=0.000
description3_1=
description3_2=
url3=
band3_1=0
band3_2=0
band3_3=0
repeaterCall4=
repeaterBand4=
repeaterType4=0
repeaterAddress4=127.0.0.1
repeaterPort4=20014
reflector4=
atStartup4=0
reconnect4=0
frequency4=0.00000
offset4=0.0000
rangeKms4=0.000
latitude4=0.000000
longitude4=0.000000
agl4=0.000
description4_1=
description4_2=
url4=
band4_1=0
band4_2=0
band4_3=0
ircddbEnabled=1
ircddbHostname=rr.openquad.net
ircddbUsername=DS5QDR
ircddbPassword=DS5QDR
ircddbEnabled2=1
ircddbHostname2=rr.openquad.net
ircddbUsername2=DS5QDR
ircddbPassword2=DS5QDR
ircddbEnabled3=0
ircddbHostname3=
ircddbUsername3=
ircddbPassword3=
ircddbEnabled4=0
ircddbHostname4=
ircddbUsername4=
ircddbPassword4=
aprsEnabled=1
aprsHostname=rotate.aprs2.net
aprsPassword=
aprsPort=14580
dextraEnabled=1
dextraMaxDongles=5
dplusEnabled=1
dplusMaxDongles=5
dplusLogin=DS5QDR
dcsEnabled=1
ccsEnabled=1
ccsHost=CCS704
xlxEnabled=1
xlxHostsFileUrl=http://xlxapi.rlx.lu/api.php?do=GetReflectorHostname
starNetBand1=A
starNetCallsign1=
starNetLogoff1=
starNetInfo1=
starNetPermanent1=
starNetUserTimeout1=300
starNetGroupTimeout1=300
starNetCallsignSwitch1=0
starNetTXMsgSwitch1=1
starNetReflector1=
starNetBand2=A
starNetCallsign2=
starNetLogoff2=
starNetInfo2=
starNetPermanent2=
starNetUserTimeout2=300
starNetGroupTimeout2=300
starNetCallsignSwitch2=0
starNetTXMsgSwitch2=1
starNetReflector2=
starNetBand3=A
starNetCallsign3=
starNetLogoff3=
starNetInfo3=
starNetPermanent3=
starNetUserTimeout3=300
starNetGroupTimeout3=300
starNetCallsignSwitch3=0
starNetTXMsgSwitch3=1
starNetReflector3=
starNetBand4=A
starNetCallsign4=
starNetLogoff4=
starNetInfo4=
starNetPermanent4=
starNetUserTimeout4=300
starNetGroupTimeout4=300
starNetCallsignSwitch4=0
starNetTXMsgSwitch4=1
starNetReflector4=
starNetBand5=A
starNetCallsign5=
starNetLogoff5=
starNetInfo5=
starNetPermanent5=
starNetUserTimeout5=300
starNetGroupTimeout5=300
starNetCallsignSwitch5=0
starNetTXMsgSwitch5=1
starNetReflector5=
remoteEnabled=1
remotePassword=
remotePort=54321
language=0
infoEnabled=1
echoEnabled=1
logEnabled=1
dratsEnabled=0
dtmfEnabled=1
windowX=-1
windowY=-1
End of ircddbgateway
재부팅
sudo reboot
수고하셨습니다
D-Star는 조금 불안한 점 있는데 DMR은 아주 잘 됩니다
추후 D-Star는 안정화 이후 수정 하겠습니다
DS5QDR 73!
참고 사이트
https://m.blog.naver.com/hl5bpl/220853436731
https://www.hamdigitaal.nl/download/algemene-informatie/Setup-a-MMDVM-Hotspot-20161212.pdf
'DVSwitch' 카테고리의 다른 글
2020-08-08 DVSwitch : Oracle VirtualBox에 DVSwitch Server 설치 (2) | 2020.08.09 |
---|---|
2020-07-21 DVSwitch / DVLink Server에 NextionDriver 설치 방법 (0) | 2020.07.21 |
2020-06-17 DVSwitch Mobile 설치 및 설정 (0) | 2020.06.17 |
2020-06-12 DVSwitch에서 DMR TG와 D-Star Ref List Mobile로 전송 (3) | 2020.06.12 |
2020-06-11 DVSwitch에서 CallSign 대신 DMR ID가 뜰때 조치 방법 (0) | 2020.06.11 |