目次

LTE モジュール (KYM11/KYM12) の管理

MA-E350/KL(AD) には、京セラ製 LTE モジュール KYM11/KYM12 を搭載しています。
AT コマンドが標準的な規格に準拠しておらず独自コマンド体系なため、モジュールの各種情報を取得するライブラリおよびそれを利用するコマンドを準備してあります。

KYM11


使用方法 (コマンド)

user1@plum:~$ sudo kym11util
usage: kym11util [command] [args..]
  command:
    get_datetime:     get date/time from KYM11               (AT$31?)
    get_pktstat:      get packet status                      (AT$36?)
    get_tempprotect:  get Temperature Protection status      (AT$39?)
    get_version:      get module version                     (AT+GMR)
    get_simstat:      get SIM registration status            (AT$20?)
    get_telno:        get SIM telephone number               (AT$21?)
    get_iccid:        get module ICCID                       (AT$19?)
    get_imei:         get module IMEI                        (AT$10?)
    select_sim [0|1]: select SIM (0: internal / 1: external) (AT$18=m)
    OTA:              perform OTASP                          (AT@30)
    get_status:       get all status
user1@plum:~$

※ v4.4.8rc3 から

usage: kym_util [command] [args..]
  command:
    get_datetime:     get date/time from KYM1x               (AT$31?)
    get_pktstat:      get packet status                      (AT$36?)
    get_tempprotect:  get Temperature Protection status      (AT$39?)
    get_version:      get module version                     (AT+GMR)
    get_simstat:      get SIM registration status            (AT$20?)
    get_telno:        get SIM telephone number               (AT$21?)
    get_iccid:        get SIM ICCID                          (AT$19?)
    get_imei:         get module IMEI                        (AT$10?)
    get_reason:       get disconnect reason                  (ATS86?) ※ 追加
    get_error_report: get error report from module           (AT$59)  ※ 追加
    select_sim [0|1]: select SIM (0: internal / 1: external) (AT$18=m)
    get_sim:          get selected SIM information           (AT$18?) ※ 追加
    OTA:              perform OTASP                          (AT@30)
    firmup:           perform Firmware Update                (AT@40)  ※ 追加
    get_status:       get all status


Command 動作 発行する AT コマンド 備考
get_datetime現在の日付情報の表示 AT$31?
get_pktstatパケットステータスの表示 AT$36?
get_tempprotect温度プロテクション状態表示 AT$39?
get_versionモジュールのファームウェアバージョンの表示 AT+GMR
get_simstat顧客登録状態の表示 AT$20?
get_telno電話番号の表示 AT$21?
get_iccidICCID 表示 AT$19?  
select_simSIM カード、組込 SIM 優先モード切替 AT$18=[m]  
OTAOTASP 起動要求 (利用開始登録) AT@30  

※ 通信中は使用できません1)


現在の日付情報の表示

user1@plum:~$ sudo kym11util get_datetime
2014/09/19 15:52:53
user1@plum:~$

※ LTE 網へアタッチが完了し、基地局から時刻情報の取得ができるまでは不正な日時(2000/01/01 00:00:00)が返ります。


パケットステータスの表示

モジュールの通信状態の表示を行います。

user1@plum:~$ sudo kym11util get_pktstat 
Idle (3)
user1@plum:~$
Result Information
Detached (1)LTE Detach 状態 (システムに在圏していない状態)
Idle (3)LTE Attach 状態、かつ無線接続なし
Connected (4)LTE Attach 状態、かつ無線接続あり


温度プロテクション状態表示

温度プロテクション機能によりプロテクション状態となっているかを表示します。

user1@plum:~$ sudo kym11util get_tempprotect
Normal (0)
user1@plum:~$ 
Result Information
Normal (0)通常状態
Protected (1)温度プロテクション状態


モジュールのファームウェアバージョンの表示

user1@plum:~$ sudo kym11util get_version
010101
user1@plum:~$


顧客登録状態の表示

モジュールの契約状態および電波送受信可能な状態であるか否かの表示を行います。

user1@plum:~$ sudo kym11util get_simstat
Registered, Ready (1)
user1@plum:~$
Result Information
Not registered (0)未登録 (灰ロム状態)
Registered, Ready (1)登録 (黒ロム) + 電波送受信可能状態
Registered, Not ready (2)登録 (黒ロム) + 電波送受信不可能状態


電話番号の表示

モジュールの電話番号を表示します。

user1@plum:~$ sudo kym11util get_telno  
08065xxxxxx
user1@plum:~$


ICCID 表示

ICCID の表示を行います。

user1@plum:~$ sudo kym11util get_iccid
898xxxxxxxxxxxxxxxx
user1@plum:~$


SIM カード、組込 SIM 優先モード切替

SIM カード、組込 SIM 優先モードの切替を行います。

user1@plum:~$ sudo kym11util select_sim 1
OK
user1@plum:~$
Parameter Info
0 組込 SIM 専用
1 SIM カード優先


OTASP 起動要求 (利用開始登録)

無線を介して加入者情報を書き込む OTASP の起動を行います。
本コマンドは、灰ロム状態でのみ実行可能です。

成功

user1@plum:~$ sudo kym11util OTA         
OTASP started.
OTA progress: 1
OTA progress: 2
OTA progress: 3
OTA progress: 4
OTASP completed.
OK
user1@plum:~$ echo $?
0
user1@plum:~$


失敗

user1@plum:~$ sudo kym11util OTA
OTASP started.
OTA progress: 1
OTA progress: 2
Commit Response message not received.
Fail
user1@plum:~$ echo $?
1
user1@plum:~$


利用開始済み

user1@plum:~$ sudo kym11util OTA
Already activated.
OK
user1@plum:~$ echo $?
0
user1@plum:~$


TIPS

通信前に各種情報を取得しておく

前述したとおり、現在のモードを取得・変更するのがモデムポート経由でしかできないため、通信中に各種情報を取得することができません。
回避策として、デバイス発見時に情報を取得し、ファイルへ出力しておくという方法が考えられます。

下記のようなファイルを準備、変更します。

kym11info
#! /bin/bash
 
(sleep 10; /usr/bin/python3 /usr/local/lib/python3.4/dist-packages/kym11lib.py &> /tmp/kym11info) &


10-mae3xx.rules
# ublox LISA-2xx
SUBSYSTEM=="tty", ATTRS{modalias}=="usb:v1546p1102d1676dcEFdsc02dp01ic02isc02ip01in00", ACTION=="add", SYMLINK+="ttyLISA0"
SUBSYSTEM=="tty", ATTRS{modalias}=="usb:v1546p1102d1676dcEFdsc02dp01ic02isc02ip01in02", ACTION=="add", SYMLINK+="ttyLISA1"
SUBSYSTEM=="tty", ATTRS{modalias}=="usb:v1546p1102d1676dcEFdsc02dp01ic02isc02ip01in04", ACTION=="add", SYMLINK+="ttyLISA2", RUN+="/usr/bin/touch /tmp/.lisa_found"
SUBSYSTEM=="usb", ENV{ID_VENDOR}=="u-blox", ACTION=="remove", RUN+="/bin/rm -f /tmp/.lisa_found"
 
# Kyocera KYM11
SUBSYSTEM=="tty", ATTRS{modalias}=="usb:v0482p0848d0100dc02dsc00dp00ic02isc02ip01in02", ACTION=="add", SYMLINK+="ttyKYM11", RUN+="/usr/bin/touch /tmp/.kym11_found", RUN+="/usr/local/sbin/kym11info"
SUBSYSTEM=="usb", ENV{ID_VENDOR}=="KYOCERA", ACTION=="remove", RUN+="/bin/rm -f /tmp/.kym11_found"
SUBSYSTEM=="net", DRIVERS=="cdc_ncm", KERNEL=="usb*", ACTION=="add", NAME="wwan0"
 
# Hitachi Kokusai UM03-KO
SUBSYSTEM=="tty", ATTRS{modalias}=="usb:v0949p0001d1344dc02dsc00dp00ic02isc02ip01in02", ACTION=="add", SYMLINK+="ttyUM03KO0"
SUBSYSTEM=="tty", ATTRS{modalias}=="usb:v0949p0001d1344dc02dsc00dp00ic02isc02ip01in04", ACTION=="add", SYMLINK+="ttyUM03KO1", RUN+="/usr/bin/touch /tmp/.um03ko_found"
SUBSYSTEM=="usb", ENV{ID_MODEL}=="FOMA_UM03-KO", ACTION=="remove", RUN+="/bin/rm -f /tmp/.um03ko_found"
 
# AMTelecom AMP520
SUBSYSTEM=="tty", ATTRS{modalias}=="usb:v1ECBp0202d0232dc02dsc00dp00ic02isc02ip01in00", ACTION=="add", SYMLINK+="ttyAMP0"
SUBSYSTEM=="tty", ATTRS{modalias}=="usb:v1ECBp0202d0232dc02dsc00dp00icFFiscFFip04in03", ACTION=="add", SYMLINK+="ttyAMP1", RUN+="/usr/bin/touch /tmp/.amp520_found"
SUBSYSTEM=="usb", ENV{ID_MODEL}=="AMP520", ACTION=="remove", RUN+="/bin/rm -f /tmp/.amp520_found"
 
# OMAP RTC
SUBSYSTEM=="rtc", KERNEL=="rtc1", RUN+="/sbin/hwclock -f /dev/rtc1 --systohc"
 
# Atheros/MediaTek WiFi
SUBSYSTEM=="ieee80211", ACTION=="add", ATTRS{busnum}=="2", RUN+="/usr/local/sbin/set_trigger %s{name} %s{idVendor} %s{idProduct}"
 
# USB-SATA bridge
KERNEL=="sd?", SUBSYSTEM=="block", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="9261", RUN+="/usr/local/sbin/update_scheduler %k"

KYM11 を見つけたとき3)に実行するコマンドに、 RUN+=“/usr/local/sbin/kym11info” を追加しています。


この変更により、モジュール検出時に情報を取得し、ファイルへ出力しておくことができます。

# cat /tmp/kym11info 
== KYM11 status ==
 Date/Time:       0000/00/00 00:00:00
 Packet Status:   Detached
 Temp Protection: Normal
 Module version:  010300
 SIM status:      Registered, Ready
 Telephone No:    0806xxxxxxx
 ICCID:           8981xxxxxxxxxxxxxxx


モジュール使用開始の流れ


1)
コマンドが 『ATコマンドモード』 でないと動作せず、『ATコマンドモード』か確認およびモードを変更するコマンドがモデムポート(通信に使用)でしか動作しないため、通信中は使用できません
2)
chmod で 実行ビットを立てておく必要があります
3)
“# Kyocera KYM11” の次の行