ユーザ用ツール

サイト用ツール


xg_series_devel:kyocera_kyw01:start

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
xg_series_devel:kyocera_kyw01:start [2018/08/10 14:24]
admin
xg_series_devel:kyocera_kyw01:start [2018/08/10 14:32] (現在)
admin
ライン 1: ライン 1:
 +====== KDDI LTE-M 拡張ボード(OB-KM)の利用 ======
 +
 +XG-50 に、KDDI LTE-M 回線用オプションボード [[https://​www.centurysys.co.jp/​products/​industrial/​xgb50.html|FutureNet OB-KM]] を搭載し、
 +LTE-M 回線を利用してみます。
 +
 +{{:​xg_series_devel:​kyocera_kyw01:​kyw01_extension.jpg?​600|OB-KM オプションボード}}
 +
 +\\
 +
 +===== ファームウェアのビルド =====
 +
 +==== ソースコードの準備 ====
 +
 +=== リポジトリから clone ===
 +
 +[[https://​gitlab.com/​centurysystems/​XG-50|GitLab]] のリポジトリを clone します。
 +
 +まずは、NuttX 本体部分を clone します。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-KM$ git clone https://​gitlab.com/​centurysystems/​XG-50/​nuttx.git
 +Cloning into '​nuttx'​...
 +remote: Enumerating objects: 5919, done.
 +remote: Counting objects: 100% (5919/​5919),​ done.
 +remote: Compressing objects: 100% (2636/​2636),​ done.
 +remote: Total 380023 (delta 3950), reused 4234 (delta 2914)
 +Receiving objects: 100% (380023/​380023),​ 89.82 MiB | 2.63 MiB/s, done.
 +Resolving deltas: 100% (296357/​296357),​ done.
 +Checking connectivity... done.
 +</​code>​
 +
 +アプリケーション部分も clone します。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-KM$ git clone https://​gitlab.com/​centurysystems/​XG-50/​apps.git
 +Cloning into '​apps'​...
 +remote: Enumerating objects: 36232, done.
 +remote: Counting objects: 100% (36232/​36232),​ done.
 +remote: Compressing objects: 100% (7216/​7216),​ done.
 +remote: Total 36232 (delta 29165), reused 35827 (delta 28843)
 +Receiving objects: 100% (36232/​36232),​ 8.36 MiB | 2.35 MiB/s, done.
 +Resolving deltas: 100% (29165/​29165),​ done.
 +Checking connectivity... done.
 +</​code>​
 +
 +clone された結果です。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-KM$ ls -l
 +total 8
 +drwxrwxr-x 21 kikuchi kikuchi 4096  8月 10 13:38 apps
 +drwxrwxr-x 20 kikuchi kikuchi 4096  8月 10 13:37 nuttx
 +</​code>​
 +
 +\\
 +
 +=== ブランチの変更 ===
 +
 +それぞれブランチを "​XG-50/​KYW01"​ に変更します。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-KM$ cd nuttx/
 +kikuchi@develop:​~/​src/​OB-KM/​nuttx$ git checkout XG-50/KYW01
 +Branch XG-50/KYW01 set up to track remote branch XG-50/KYW01 from origin.
 +Switched to a new branch '​XG-50/​KYW01'​
 +kikuchi@develop:​~/​src/​OB-KM/​nuttx$ cd ../apps/
 +kikuchi@develop:​~/​src/​OB-KM/​apps$ git checkout XG-50/KYW01
 +Branch XG-50/KYW01 set up to track remote branch XG-50/KYW01 from origin.
 +Switched to a new branch '​XG-50/​KYW01'​
 +</​code>​
 +
 +\\
 +
 +==== コンフィグレーション ====
 +
 +コンフィグレーションを行います。''"​centurysys-xg50/​nsh_kyw01"''​ を使用します。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-KM/​apps$ cd ../​nuttx/​tools/​
 +kikuchi@develop:​~/​src/​OB-KM/​nuttx/​tools$ ./​configure.sh centurysys-xg50/​nsh_kyw01
 +  Copy files
 +  Refreshing...
 +kikuchi@develop:​~/​src/​OB-KM/​nuttx/​tools$ ​
 +</​code>​
 +
 +\\
 +
 +追加のアプリケーションなどを使う場合は、''​make menuconfig''​ でコンフィグレーションを変更して追加することもできます。
 +
 +\\
 +
 +==== ビルド ====
 +
 +''​make''​ でバイナリをビルドします。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-KM/​nuttx/​tools$ cd ..
 +kikuchi@develop:​~/​src/​OB-KM/​nuttx$ make
 +make[1]: Entering directory '/​home/​kikuchi/​src/​OB-KM/​nuttx/​tools'​
 +make[1]: Leaving directory '/​home/​kikuchi/​src/​OB-KM/​nuttx/​tools'​
 +No .version file found, creating one
 +make[1]: Entering directory '/​home/​kikuchi/​src/​OB-KM/​nuttx/​tools'​
 +make[1]: Leaving directory '/​home/​kikuchi/​src/​OB-KM/​nuttx/​tools'​
 +LN: include/​arch to arch/​arm/​include
 +LN: include/​arch/​board to /​home/​kikuchi/​src/​OB-KM/​nuttx/​configs/​centurysys-xg50/​include
 +LN: include/​arch/​chip to arch/​arm/​include/​stm32l4
 +LN: arch/​arm/​src/​board to /​home/​kikuchi/​src/​OB-KM/​nuttx/​configs/​centurysys-xg50/​src
 +LN: arch/​arm/​src/​chip to arch/​arm/​src/​stm32l4
 +...
 +CC:  builtin.c
 +CC:  libbuiltin/​libbuiltin_getname.c
 +CC:  libbuiltin/​libbuiltin_isavail.c
 +AR:   ​binfmt_globals.o binfmt_register.o binfmt_unregister.o binfmt_loadmodule.o binfmt_unloadmodule.o binfmt_execmodule.o binfmt_exec.o binfmt_copyargv.o binfmt_dumpmodule.o binfmt_schedunload.o builtin.o libbuiltin_getname.o libbuiltin_isavail.o
 +make[1]: Leaving directory '/​home/​kikuchi/​src/​OB-KM/​nuttx/​binfmt'​
 +IN: binfmt/​libbinfmt.a -> staging/​libbinfmt.a
 +make[1]: Entering directory '/​home/​kikuchi/​src/​OB-KM/​nuttx/​arch/​arm/​src'​
 +make[2]: Entering directory '/​home/​kikuchi/​src/​OB-KM/​nuttx/​configs/​centurysys-xg50/​src'​
 +CC:  stm32_boot.c
 +CC:  stm32_clockconfig.c
 +stm32_clockconfig.c:​ In function '​stm32l4_board_clockconfig':​
 +stm32_clockconfig.c:​180:​2:​ warning: #warning todo: regulator voltage according to clock freq [-Wcpp]
 + #​warning todo: regulator voltage according to clock freq
 +  ^
 +CC:  stm32_autoleds.c
 +CC:  stm32_userleds.c
 +CC:  stm32_adc.c
 +CC:  stm32_timer.c
 +CC:  stm32_appinit.c
 +AR:   ​stm32_boot.o stm32_clockconfig.o stm32_autoleds.o stm32_userleds.o stm32_adc.o stm32_timer.o stm32_appinit.o ​
 +make[2]: Leaving directory '/​home/​kikuchi/​src/​OB-KM/​nuttx/​configs/​centurysys-xg50/​src'​
 +LD: nuttx
 +make[1]: Leaving directory '/​home/​kikuchi/​src/​OB-KM/​nuttx/​arch/​arm/​src'​
 +CP: nuttx.hex
 +CP: nuttx.bin
 +kikuchi@develop:​~/​src/​OB-KM/​nuttx$ ​
 +</​code>​
 +
 +\\
 +
 +ファームウェアのバイナリができました。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-KM/​nuttx$ ls -l nuttx*
 +-rwxrwxr-x 1 kikuchi kikuchi 2822452 ​ 8月 10 13:52 nuttx
 +-rwxrwxr-x 1 kikuchi kikuchi ​ 166136 ​ 8月 10 13:52 nuttx.bin
 +-rw-rw-r-- 1 kikuchi kikuchi ​ 467362 ​ 8月 10 13:52 nuttx.hex
 +kikuchi@develop:​~/​src/​OB-KM/​nuttx$ ​
 +</​code>​
 +
 +\\
 +
 +===== XG-50 への書き込み =====
 +
 +''​OpenOCD''​ + ''​gdb''​ を使用してファームウェアを書き込みます。
 +
 +\\
 +
 +===== 動作確認 =====
 +
 +''​gdb''​ から ''"​c"''​(continue) で実行します。
 +
 +<​code>​
 +�ABCDF
 +
 +NuttShell (NSH)
 +nsh> ​
 +</​code>​
 +
 +\\
 +
 +==== KYW01 への設定 ====
 +
 +APN などを設定します。''​cu''​コマンドを利用します。
 +
 +<​code>​
 +nsh> cu -r
 +AT
 +OK
 +AT+CGDCONT=1,"​IP","​kddiint.lpwa.kddi.com" ​  <​--- PDPコンテキスト設定
 +OK
 +AT+CGAUTH=1,​1,"​hogehoge","​fugafuga" ​        <​--- PDPコンテキストの認証パラメータ設定
 +OK
 +AT+KCOMSET=1 ​                               <--- データ通信方式設定 (PPP)
 +OK
 +AT+CFUN=6 ​                                  <​--- モジュールリセット
 +OK
 +</​code>​
 +
 +認証パラメータは、SIM により認証される回線なので使用されないため任意です。\\
 +"​~"​ のあと "​."​ を入力することで ''​cu''​コマンドを終了します。
 +
 +\\
 +
 +==== PPP 接続 ====
 +
 +''​pppd''​ コマンドにより接続を行います。''"&"''​ をつけてバックグラウンドで起動((フォアグラウンドで起動すると何もできなくなります。))します。
 +
 +<​code>​
 +nsh> pppd &
 +pppd [11:100]
 +nsh> ​
 +</​code>​
 +
 +\\
 +
 +しばらくすると接続が完了します。''​dmesg''​ でログを確認することができます。
 +
 +<​code>​
 +nsh> dmesg
 +[     ​0.000000] stm32l4_rng_initialize:​ Initializing RNG
 +[     ​0.000000] registered UART4 as /​dev/​console.
 +[     ​0.000000] registered UART4 as /dev/ttyS0.
 +[     ​0.000000] registered UART1 as /dev/ttyS1.
 +[     ​0.000000] registered USART2 as /dev/ttyS2.
 +[     ​0.000000] registered USART3 as /dev/ttyS3.
 +[     ​0.001500] Mounting procfs to /proc
 +[     ​0.002500] board_ioctl:​ BIOC_CONFIG_GPIO GPIO configured.
 +[     ​0.002500] board_ioctl:​ BIOC_ENABLE_B2B
 +[  1221.077500] chat: expect ()
 +[  1221.077500] chat: 
 +[  1221.077500] chat: -- got it
 +[  1221.078000] chat: send ATE0
 +[  1221.078000] chat: expect (OK)
 +[  1221.097500] chat: ATE0^M^M
 +[  1221.102000] chat: OK^M
 +[  1221.102000] chat: -- got it
 +[  1221.102500] chat: abort on (BUSY)
 +[  1221.103000] chat: abort on (NO CARRIER)
 +[  1221.103000] chat: abort on (ERROR)
 +[  1221.103000] chat: timeout is 10 s
 +[  1221.103000] chat: expect ()
 +[  1221.103500] chat: 
 +[  1221.103500] chat: -- got it
 +[  1221.103500] chat: send AT
 +[  1221.103500] chat: expect (OK)
 +[  1221.115500] chat: ^M
 +[  1221.120000] chat: OK^M
 +[  1221.120000] chat: -- got it
 +[  1221.120000] chat: send ATD*99***1#
 +[  1221.120000] chat: expect (CONNECT)
 +[  1221.145500] chat: ^M
 +[  1221.155000] chat: CONNECT^M
 +[  1221.155500] chat: -- got it
 +[  1222.156000] pppd: sent [LCP ConfReq <​asyncmap 0x0>]
 +[  1222.258500] pppd: rcvd [LCP ConfReq id=0x0 <mru 1420> <​asyncmap 0x0> <auth pap> <magic 0x47ccc461>​ <​pcomp>​ <​accomp>​]
 +[  1222.259000] pppd: sent [LCP ConfAck id=0x0]
 +[  1222.289000] pppd: rcvd [LCP ConfAck id=0x0]
 +[  1222.290000] pppd: sent [PAP AuthReq id=0x0 user="​user@dream.jp"​ password=<​hidden>​]
 +[  1222.402000] pppd: rcvd [PAP AuthAck id=0x0 ""​]
 +[  1222.402000] pppd: PAP authentication succeeded
 +[  1222.402500] pppd: sent [IPCP ConfReq id=0x0 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>​]
 +[  1222.482000] pppd: rcvd [IPCP ConfReq id=0x0]
 +[  1222.482000] pppd: sent [IPCP ConfAck id=0x0]
 +[  1222.514000] pppd: rcvd [IPCP ConfNak id=0x0 <addr 10.29.8.10>​ <ms-dns1 210.196.3.183>​ <ms-dns2 210.141.112.163>​]
 +[  1223.644500] pppd: rcvd [IPCP ConfReq id=0x1]
 +[  1223.644500] pppd: sent [IPCP ConfAck id=0x1]
 +[  1224.924000] pppd: rcvd [IPCP ConfReq id=0x2]
 +[  1224.924500] pppd: sent [IPCP ConfAck id=0x2]
 +[  1228.927000] pppd: sent [IPCP ConfReq id=0x1 <addr 10.29.8.10>​ <ms-dns1 210.196.3.183>​ <ms-dns2 210.141.112.163>​]
 +[  1229.014000] pppd: rcvd [IPCP ConfAck id=0x1 <addr 10.29.8.10>​ <ms-dns1 210.196.3.183>​ <ms-dns2 210.141.112.163>​]
 +[  1229.014500] pppd: local  IP address 10.29.8.10
 +[  1229.014500] pppd: remote IP address 10.64.64.64
 +[  1229.015000] pppd: primary ​  DNS address 210.196.3.183
 +[  1229.015000] pppd: secondary DNS address 210.141.112.163
 +[  1229.015000] pppd: DNS server added.
 +
 +nsh> ​
 +</​code>​
 +
 +\\
 +
 +ping で通信が確認できます。
 +
 +<​code>​
 +nsh> ping -c 5 www.yahoo.co.jp
 +PING 183.79.250.123 56 bytes of data
 +56 bytes from 183.79.250.123:​ icmp_seq=0 time=329 ms
 +56 bytes from 183.79.250.123:​ icmp_seq=1 time=369 ms
 +56 bytes from 183.79.250.123:​ icmp_seq=2 time=328 ms
 +56 bytes from 183.79.250.123:​ icmp_seq=3 time=367 ms
 +56 bytes from 183.79.250.123:​ icmp_seq=4 time=327 ms
 +5 packets transmitted,​ 5 received, 0% packet loss, time 5003 ms
 +nsh> ​
 +</​code>​
 +
 +\\
 +
 +切断するときには、''​pppd''​ のプロセスを KILL します。
 +
 +<​code>​
 +nsh> ps
 +  PID GROUP PRI POLICY ​  ​TYPE ​   NPX STATE    EVENT     ​SIGMASK ​  STACK COMMAND
 +    0     ​0 ​  0 FIFO     ​Kthread N-- Ready              00000000 000000 Idle Task
 +    1     ​1 ​ 50 FIFO     ​Kthread --- Waiting ​ Signal ​   00000000 002028 lpwork
 +    2     1 100 FIFO     ​Task ​   --- Running ​           00000000 004076 init
 +   ​11 ​    3 100 RR       ​Task ​   --- Waiting ​ Semaphore 00000000 002028 pppd
 +nsh> kill -15 11
 +nsh> ​
 +</​code>​
 +
 +<​code>​
 +nsh> ps
 +  PID GROUP PRI POLICY ​  ​TYPE ​   NPX STATE    EVENT     ​SIGMASK ​  STACK COMMAND
 +    0     ​0 ​  0 FIFO     ​Kthread N-- Ready              00000000 000000 Idle Task
 +    1     ​1 ​ 50 FIFO     ​Kthread --- Waiting ​ Signal ​   00000000 002028 lpwork
 +    2     1 100 FIFO     ​Task ​   --- Running ​           00000000 004076 init
 +nsh> dmesg
 +[  1381.103500] pppd: Connection Terminated.
 +[  1385.106000] chat: expect ()
 +[  1385.106000] chat: 
 +[  1385.106000] chat: -- got it
 +[  1385.107500] chat: send ATE0
 +[  1385.107500] chat: expect (OK)
 +[  1385.124000] chat: ^M
 +[  1385.128000] chat: OK^M
 +[  1385.128000] chat: -- got it
 +[  1385.128500] TIOCMBIC(TIOCM_DTR) -> -1
 +
 +nsh> ​
 +</​code>​
 +
 +\\
  
xg_series_devel/kyocera_kyw01/start.1533878697.txt.bz2 · 最終更新: 2018/08/10 14:24 by admin