MA-E350/KL(AD) には、京セラ製 LTE モジュール KYM11/KYM12 を搭載しています。
AT コマンドが標準的な規格に準拠しておらず独自コマンド体系なため、モジュールの各種情報を取得するライブラリおよびそれを利用するコマンドを準備してあります。
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_iccid | ICCID 表示 | AT$19? | |
select_sim | SIM カード、組込 SIM 優先モード切替 | AT$18=[m] | |
OTA | OTASP 起動要求 (利用開始登録) | 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 の表示を行います。
user1@plum:~$ sudo kym11util get_iccid 898xxxxxxxxxxxxxxxx user1@plum:~$
SIM カード、組込 SIM 優先モードの切替を行います。
user1@plum:~$ sudo kym11util select_sim 1 OK user1@plum:~$
Parameter | Info |
---|---|
0 | 組込 SIM 専用 |
1 | SIM カード優先 |
無線を介して加入者情報を書き込む 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:~$
前述したとおり、現在のモードを取得・変更するのがモデムポート経由でしかできないため、通信中に各種情報を取得することができません。
回避策として、デバイス発見時に情報を取得し、ファイルへ出力しておくという方法が考えられます。
下記のようなファイルを準備、変更します。
#! /bin/bash (sleep 10; /usr/bin/python3 /usr/local/lib/python3.4/dist-packages/kym11lib.py &> /tmp/kym11info) &
# 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