SORACOM의 동글을 식별하고 연결하는 방법
SORACOM씨의 공식 사이트에서는 wvdial을 이용해 접속하는 방법이 기재되어 있습니다만, 동작이 불안정했기 때문에 pppconfig를 사용해 접속하고 있습니다.
1. AK-020 고유의 설정
AK-020은 Raspberry Pi에 연결하면 CD-ROM으로 인식됩니다. 그것을 USB 시리얼로 변환하기 위한 설정이 여기입니다. CD-ROM을 eject하고 usbserial에 등록할 때까지 설명되어 있습니다.
[/etc/udev/rules.d/40-ak020.rules]
# for AK-020
ACTION=="add", ATTRS{idVendor}=="15eb", ATTRS{idProduct}=="a403", RUN+="/usr/bin/eject /dev/sr0"
ACTION=="add", ATTRS{idVendor}=="15eb", ATTRS{idProduct}=="7d0e", RUN+="/sbin/modprobe usbserial vendor=0x15eb product=0x7d0e"
2. AK-020과 MS2372 공통 설정
이 부분은 USB 시리얼이 접속해 오면, AK020의 경우는 USB 시리얼과/dev/ak020에, MS2372의 경우는/dev/ms2372에 심볼릭 링크를 작성시켜,wwan0의 네트워크를 기동시키는 부분이 기술된다 있습니다.
[/etc/udev/rules.d/50-soracom.rules]
# for AK-020
KERNEL=="ttyUSB*", ATTRS{../idVendor}=="15eb", ATTRS{../idProduct}=="7d0e", ATTRS{bNumEndpoints}=="03", ATTRS{bInterfaceNumber}=="02", SYMLINK+="ak020",ENV{SYSTEMD_WANTS}="[email protected]"
# for MS2372
KERNEL=="ttyUSB*", ATTRS{../idVendor}=="12d1", ATTRS{../idProduct}=="1506", ATTRS{bNumEndpoints}=="03", ATTRS{bInterfaceNumber}=="00", SYMLINK+="ms2372", ENV{SYSTEMD_WANTS}="[email protected]"
3. pppconfig 설정
pppconfig에서 모뎀 별 연결 정보를 설정합니다.
$ sudo pppconfig
"Create a connection"을 선택하여 모뎀별로 다음과 같이 설정합니다.
modem
AK-020
MS2372
공급자 이름
soracom020
soracom2372
COnfiguration Name Server
동적
동적
Authorization
PAP
PAP
Your ISP
소라
소라
password
소라
소라
속도
460800
460800
Pulse or Tone
Tone
Tone
Replace your number
*99#
99**1#
Choose Modem Config Method
아니
아니
Manually Select Modem Port
/dev/ak020
/dev/ms2372
마지막으로 "Finished write files and return main menu"를 선택하여 종료합니다.
이 작업으로 각각 2개의 파일(합계 4 파일)이 작성됩니다.
/etc/ppp/peers/soracom020
/etc/ppp/peers/soracom2372
/etc/chatscripts/soracom020
/etc/chatscripts/soracom2372
스크립트 편집 1
sudo -s
에서 루트 권한으로 로그인합니다. 그런 다음 /etc/ppp/peers/soracom020
및 /etc/ppp/peers/soracom2372
를 열고 debug를 제거하거나 마지막으로 persist, replacedefaultroute를 추가합니다. 작성한 파일이 여기....peers/soracom020
# This optionfile was generated by pppconfig 2.3.18. \
#
#
hide-password
noauth
connect "/usr/sbin/chat -f /etc/chatscripts/soracom020"
/dev/ak020
460800
defaultroute
noipdefault
user "sora"
ipparam soracom020
|
usepeerdns
persist
replacedefaultroute
.... peers/soracom2372
# This optionfile was generated by pppconfig 2.3.18.
#
#
hide-password
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/soracom2372"
/dev/ms2372
460800
defaultroute
noipdefault
user "sora"
remotename soracom2372
ipparam soracom2372
usepeerdns
persist
replacedefaultroute
스크립트 편집 2 /etc/chatscripts/...
/etc/chatscripts/soracom020
# This chatfile was generated by pppconfig 2.3.18.
# Please do not delete any of the comments. Pppconfig needs them.
#
# ispauth CHAP
# abortstring
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
# modeminit
'' ATH
OK AT+CFUN=1
OK ATZ
OK 'ATQ0 V1 E1 S0=0 &C1 &D2'
OK AT+CGDCONT=1,"IP","soracom.io"
# ispnumber
OK-AT-OK "ATD*99#"
# ispconnect
CONNECT \d\c
# prelogin
# ispname
# isppassword
# postlogin
# end of pppconfig stuff
/etc/chatscripts/soracom2372
# This chatfile was generated by pppconfig 2.3.18.
# Please do not delete any of the comments. Pppconfig needs them.
#
# ispauth PAP
# abortstring
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
# modeminit
'' ATZ
OK ATZ
OK AT+CGDCONT=0,"IP","soracom.io"
OK AT+CGDCONT=1,"IP","soracom.io"
# ispnumber
OK-AT-OK "ATD*99***1#"
# ispconnect
CONNECT \d\c
# prelogin
# ispname
# isppassword
# postlogin
# end of pppconfig stuff
4. wwan0 설정
USB 모뎀이 삽입되면 wwan0에서 스크립트가 실행되도록 설정합니다.
/etc/network/interfaces
에 다음 세 줄을 추가합니다.allow-hotplug wwan0
mapping wwan0 inet ppp
script /...../script.rb
5. 모뎀이 삽입될 때 스크립트
/dev에 등록된 모뎀을 검사하여 모뎀 시작 스크립트인
pon
의 스크립트를 수정하고 있습니다.exit 1, exit 2등을 이용해
network/interfaces
의 파일내에서도 할 수 있는 것 같습니다만, 잘 가지 않았습니다.[script.rb]
#!/usr/bin/ruby
tmp = `ls /dev`
dev = tmp.split("\n")
dev.each {|d|
if d == "ak020" then
`pon soracom020`
exit 1
elsif d == "ms2372" then
`pon soracom2372`
exit 2
end
}
exit 0
이제 한 번 잘 작동했습니다.
동작 확인 방법
동작하지 않을 때의 디버그는
/var/log/syslog
등을 보면서 실시합니다.(1) rules.d 확인
/dev/ak020
또는 /dev/ms2372
의 심볼릭 링크가 만들어지지 않은 경우 1.과 2.에 문제가 있습니다.(2) /etc/network/interfaces 설정
(1)이 제대로 작동하면 syslog는 script.rb를 실행했다는 메시지를 출력해야합니다. 아래의 경우에는 실패한 메시지가 흐르고 있지만 잠시 기다리면 통신이 성공합니다.
script.sh를 실행했다는 메시지가 흐르면
[email protected]
의 설정이 작동하고 있습니다.Apr 8 10:05:38 raspberrypi sh[2597]: ifup: error trying to executing mapping script /xxxxxxxxx/script.sh on wwan0
--- (省略) ---
Apr 8 10:05:41 raspberrypi pppd[2623]: Serial connection established.
Apr 8 10:05:41 raspberrypi pppd[2623]: Using interface ppp0
Apr 8 10:05:41 raspberrypi pppd[2623]: Connect: ppp0 <--> /dev/ak020
Apr 8 10:05:44 raspberrypi pppd[2623]: CHAP authentication succeeded
Apr 8 10:05:44 raspberrypi pppd[2623]: CHAP authentication succeeded
Apr 8 10:05:55 raspberrypi pppd[2623]: Could not determine remote IP address: defaulting to 10.64.64.64
Apr 8 10:05:55 raspberrypi pppd[2623]: replacing old default route to wlan0 [192.168.30.1]
Apr 8 10:05:55 raspberrypi pppd[2623]: local IP address xx.xx.xx.xx
Apr 8 10:05:55 raspberrypi pppd[2623]: remote IP address xx.xx.xx.xx
Apr 8 10:05:55 raspberrypi pppd[2623]: primary DNS address xx.xx.xx.xx
Apr 8 10:05:55 raspberrypi pppd[2623]: secondary DNS address xx.xx.xx.xx
Apr 8 10:06:02 raspberrypi dhcpcd[667]: wwan0: removing interface
(3) 스크립트의 동작 확인
스크립트가 실행될 때 이 샘플 프로그램은 exit 1, exit2를 각각 반환합니다.
echo $?
를 스크립트를 실행한 직후에 콘솔에서 하면 exit 코드를 얻을 수 있으므로 스크립트가 올바른지 확인할 수 있습니다.(4) 모뎀 시작 프로그램
마지막은
/etc/ppp/peers/xxxxx
와 /etc/chatscripts/
가 올바르게 동작하고 있으면, 회선을 자동으로 접속할 수 있습니다.
Reference
이 문제에 관하여(SORACOM의 동글을 식별하고 연결하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/NaotakaSaito/items/a774209cd2f0029fa886텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)