최근 DVPi V0.88 이 공개되면서 VFO A / VFO B 의 기능이 익숙해지고 있습니다
이는 DVLink에서 기 구현되던 것이며 사용방법은 기 나와 있었는데
국내에 소개가 안되어 익숙하지 않은 내용입니다
본 DVSwitch Multi VFO / User 만들기는
- Virtual MC에서 구현하였으며
- Raspberry Pi 에서도 검정까지 마쳤습니다
DVLink의 경우
- DMR은 99개 User를 지원하고
- DSTAR는 Master User 1명만 지원하지만
본 DVSwitch Multi VFO / User Stand Alone 은
- DMR은 99개 User 지원이 가능하지만
- DSTAR는 ircddbgateway에서 4명 User만 제공하기에 4개까지만 만들었습니다
> ThumbDV 를 사용하시는 경우 VFO A에 넣어 사용하면 되고
> 나머지 VFO B/C/D는 md380-emu 를 사용하면 Voice 송수신은 되나 음질은 조금 떨어집니다
> 언젠가는 DSTAR도 Vocoder Emulator 사용하는 날이 올 것이다고 믿습니다
아래는 4개 VFO를 만들어 DMR 2개 DSTAR 2개 동시에 사용하는 화면입니다
- DMR : 4개 동시 사용가능 (전혀 문제 없음)
- DSTAR : 4개 동시 사용 가능하나 음질이 떨어짐
이것을 응용하면 DVPi에서
- VFO A/B는 DVPi가 사용하고
- VFO C/D...는 DVLink와 같이 모바일로 사용이 가능합니다 (휴콤, 교세라 등)
아래 내용은 난이도가 높습니다
하지만 DVSwitch 사용 시 사용자가 바꿀 수 있는 옵션은 아래 내용이 전부이므로
상세 공부하고 싶은 분은 직접 도전해보시기 바랍니다
테스트 조건
- Oracle VirtualBox 가 설치되어 있고
- Rasbian OS 설치
- DVSwitch Full Version 설치
- USRP Client 설치
가 되어 있다는 전제하에 포스팅 합니다
위 각 내용은 저 Tistory에서 검색하시면 아래와 같이 설치 방법이 나와 있으니 본 포스팅에선 설명을 생략합니다
1단계] 필요한 폴드/파일을 미리 만듭니다
폴드
- MMDVM_Bridge2/3/4
- Analog_Bridge2/3/4
- md380-emu2/3/4
파일
- mmdvm_bridge.service2/3/4
- analog_bridge.service2/3/4
- md380-emu.service2/3/4
- ircddbgateway 수정
2단계] 해당파일을 수정합니다
수정 내용은 아래표를 보고 참고하세요 (붉은 색이 VFO A/B/C/D 별 차이나는 부분입니다)
/opt/MMDVM_Bridge2^3^4/dvswitch.sh 파일 수정
2^3^4 는 숫자 세개 중 1개를 넣어라는 뜻 예) VFO B는 2, VFO C는 3 VFO D는 4
SCRIPT_VERSION="dvswitch.sh 1.5.9"
AB_DIR=${AB_DIR:-"/var/lib/dvswitch"}
MMDVM_DIR=${MMDVM_DIR:-"/var/lib/mmdvm"}
DVSWITCH_INI=${DVSWITCH_INI:-"/opt/MMDVM_Bridge2^3^4/DVSwitch.ini"}
MMDVM_INI=${MMDVM_INI:-"/opt/MMDVM_Bridge2^3^4/MMDVM_Bridge.ini"}
NODE_DIR=${NODE_DIR:-"/tmp"}
~~~~
~~~~
#################################################################
# Get version information from AB and MB
#################################################################
function appVersion() {
if [ $# -eq 0 ]; then
echo $SCRIPT_VERSION
else
case $1 in
ab|AB|Analog_Bridge)
if [ -f "/opt/Analog_Bridge2^3^4/Analog_Bridge" ]; then
"/opt/Analog_Bridge2^3^4/Analog_Bridge" -v
else
getABInfoValue ab version
fi
;;
mb|MB|MMDVM_Bridge)
if [ -f "/opt/MMDVM_Bridge2^3^4/MMDVM_Bridge" ]; then
"/opt/MMDVM_Bridge2^3^4/MMDVM_Bridge" -v
else
echo UNKNOWN
fi
;;
all|ALL)
appVersion
appVersion ab
appVersion mb
;;
esac
fi
}
/opt/Analog-Bridge2^3^4/dvsm.macro 파일 수정
2^3^4 는 숫자 세개 중 1개를 넣어라는 뜻 예) VFO B는 2, VFO C는 3 VFO D는 4
[MACROS]
; Example: When a DVSM user selects the DMR mode, AB will look for the mode below and execute the script and pass the parameter.
; In this case, AB will execute the script "/opt/MMDVM_Bridge/dvswitch.sh" and pass the prarmeters of "mode DMR" to the script.
DMR = /opt/MMDVM_Bridge2^3^4/dvswitch.sh mode DMR
DSTAR = /opt/MMDVM_Bridge2^3^4/dvswitch.sh mode DSTAR
NXDN = /opt/MMDVM_Bridge2^3^4/dvswitch.sh mode NXDN
P25 = /opt/MMDVM_Bridge2^3^4/dvswitch.sh mode P25
YSF = /opt/MMDVM_Bridge2^3^4/dvswitch.sh mode YSF
; Ask AB to pull fresh data files and send to DVSM/UC
dbupdate = /opt/MMDVM_Bridge2^3^4/dvswitch.sh collectProcessPushDataFiles
; Example TG / Reflector Macro
9876 = /opt/Analog_Bridge2^3^4/parrot.sh
/lib/systemd/system 에 복사할 아래 *.service 파일 생성
2^3^4 는 숫자 세개 중 1개를 넣어라는 뜻 예) VFO B는 2, VFO C는 3 VFO D는 4
mmdvm_bridge2^3^4.service 수정
[Service]
Type=simple
Restart=always
RestartSec=3
Restart=on-abort
StandardOutput=null
WorkingDirectory=/opt/MMDVM_Bridge2^3^4
ExecStartPre = /bin/sh -c 'echo "Starting MMDVM_Bridge: [`date +%%T.%%3N`]" >> /var/log/netcheck'
ExecStart=/opt/MMDVM_Bridge2^3^4/MMDVM_Bridge /opt/MMDVM_Bridge2^3^4/MMDVM_Bridge.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
analog_bridge2^3^4.service
[Service]
Type=simple
Restart=on-failure
RestartSec=3
RestartPreventExitStatus=254
StandardOutput=null
WorkingDirectory=/opt/Analog_Bridge2^3^4
Environment=AnalogBridgeLogDir=/var/log/dvswitch
ExecStartPre = /bin/sh -c 'echo "Starting Analog_Bridge: [`date +%%T.%%3N`]" >> /var/log/netcheck'
ExecStart=/opt/Analog_Bridge2^3^4/Analog_Bridge /opt/Analog_Bridge2^3^4/Analog_Bridge.ini
ExecReload=/bin/kill -2 $MAINPID
KillMode=process
md380-em2^3^4.service
[Service]
Type=simple
Restart=always
RestartSec=3
StandardOutput=null
WorkingDirectory=/opt/md380-emu2^3^4
ExecStart=/opt/md380-emu2^3^4/md380-emu -S 2471^2472^2473
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
3단계] 수정한 파일을 /home/pi/Temp 폴드로 복사 (Temp 폴드는 미리 만들었음)
WinSCP 를 이용하여 위 폴드 및 파일을 미리 만듭니다
putty로 접속하여 만든 폴드/파일 복사
cd /home/pi/Temp
sudo cp -r * /opt
sudo cp *.service /lib/systemd/system
4단계] 자동 실행 등록
2^3^4 는 숫자 세개 중 1개 숫자만 넣어라는 뜻 예) VFO B는 2, VFO C는 3 VFO D는 4
sudo chmod 755 /opt/Analog_Bridge2^3^4/Analog_Bridge
sudo chmod 755 /opt/Analog_Bridge2^3^4/dvsm.macro
sudo chmod 755 /opt/Analog_Bridge2^3^4/parrot.sh
sudo chmod 755 /opt/MMDVM_Bridge2^3^4/MMDVM_Bridge
sudo chmod 755 /opt/MMDVM_Bridge2^3^4/dvswitch.sh
sudo chmod 755 /opt/md380-emu2^3^4/md380-emu
sudo chmod 755 /lib/systemd/system/analog_bridge2^3^4.service
sudo chmod 755 /lib/systemd/system/mmdvm_bridge2^3^4.service
sudo chmod 755 /lib/systemd/system/md380-emu2^3^4.service
sudo ln -s /lib/systemd/system/mmdvm_bridge2^3^4.service /etc/systemd/system/multi-user.target.wants/mmdvm_bridge2^3^4.service
sudo ln -s /lib/systemd/system/analog_bridge2^3^4.service /etc/systemd/system/multi-user.target.wants/analog_bridge2^3^4.service
sudo ln -s /lib/systemd/system/md380-emu2^3^4.service /etc/systemd/system/multi-user.target.wants/md380-emu2^3^4.service
sudo systemctl enable md380-emu2^3^4
sudo systemctl enable mmdvm_bridge2^3^4
sudo systemctl enable analog_bridge2^3^4
sudo reboot
5단계] 실행 화면 모니터링
아래 화면은 DMR 2개 DSTAR 2개 띄워 놓았습니다
물론 동시에 DMR 4개 혹은 DSTAR 4개 사용이 가능합니다
Log 화면 순서 Analog_Bridge.log MMDVM_Bridge1^2^3^4-2020-10-15.log
위 방법으로 하면 여러개 VFO를 동시에 사용이 가능합니다
- MMDVM_Bridge.ini의 DMRID와
- Analog_Bridge.ini의 DMRID 및
- USRP tx/rx port를 변경하면
DVSwitch Mobile에서도 접속이 가능합니다
(물론 DDNS와 포트포워드 설정은 하셔야 합니다)
[USRP] 예시
address = 127.0.0.1
txPort = 32011 -> 46101 ~ 99
rxPort = 34011 -> 46101 ~ 99
usrpAudio = AUDIO_UNITY
usrpGain = 1.10
tlvAudio = AUDIO_UNITY
tlvGain = 0.5
난이도가 조금 높았습니다
하지만 DVSwitch 사용 시 사용자가 바꿀 수 있는 옵션은 위의 내용이 전부이므로
상세 공부하고 싶은 분은 직접 도전해보시기 바랍니다
감사합니다
DS5QDR 73!
'USRP Client' 카테고리의 다른 글
2021-01-02 USRP : Client 라즈베리파이 적용 (새로운 시도) (0) | 2021.01.02 |
---|---|
2020-11-07 USRP : 구 버젼 설치 및 설정 방법 (0) | 2020.11.07 |
2020-09-18 실험 : USRP Client H/W PTT 기능 넣기 (2) | 2020.09.18 |
2020-09-08 Oracle VirtualBox에 Multi USRP Client 실행 (0) | 2020.09.08 |
2020-09-01 Virtual DVSwitch + USRP Client Stand Alone (0) | 2020.09.01 |