soratun
がサポートする 3 種類のブートストラップ方法 のうち、Krypton の「Endorse による SIM 認証」を使用する方法 を説明します。soratun
について詳しくは、soratun の概要と機能 を参照してください。
# | バーチャル SIM/Subscriber の作成方法 | WireGuard インターフェースの作成方法 | 利用するコマンド |
---|---|---|---|
(3) | soratun | soratun | soratun bootstrap sim コマンド |
この方法では、IoT SIM に保管された認証情報を使用するため、ほかのブートストラップ方法と比べて、以下の特徴があります。
- soratun で SORACOM API の認証キーを使用してバーチャル SIM/Subscriber をブートストラップする とは異なり、デバイスに認証情報を入力する操作は必要ありません。
- soratun でセルラー回線認証を使用してバーチャル SIM/Subscriber をブートストラップする方法 とは異なり、ブートストラップのために、SORACOM Air for セルラーで SORACOM に接続する必要はありません。
- ブートストラップに使用した IoT SIM に、セカンダリサブスクリプションとしてバーチャル SIM/Subscriber が追加されます。
操作を始める前に準備が必要です (クリックして確認してください)
(1) デバイス、IoT SIM、および USB ドングルを用意する
以下の製品を用意します。
soratun
の サポート対象プラットフォーム を利用するデバイスここでは Raspberry Pi OS Bookworm (32 bit) を想定しています。
Krypton の「Endorse による SIM 認証」に対応するサブスクリプションの IoT SIM
対応するサブスクリプションについては、単体で契約するサブスクリプション の表の『Krypton の「Endorse による SIM 認証」』の欄を参照してください。
Soracom Onyx - LTE™ USB ドングル (SC-QGLC4-C1) (以下、USB ドングル)
IoT SIM から認証情報を読み出すために利用します。
(2) デバイスをインターネットに接続する
任意の方法 (例: Wi-Fi) で、デバイスをインターネットに接続します。この時点では、SORACOM に接続できないことを想定しています。
(3) デバイスに soratun をインストールする
デバイスに、soratun
をインストールします。
ステップ 1: SORACOM Krypton を有効化する
準備した IoT SIM に対して、Krypton を有効化します。詳しくは、SORACOM Krypton を有効化する を参照してください。
Krypton に Amazon Cognito や AWS IoT の設定を追加しないでください
ここでは Krypton の有効化 (スイッチをクリックして「ON」にする) のみを行います。Amazon Cognito や AWS IoT の設定を追加しないでください。
ステップ 2: SORACOM Air メタデータサービスを有効化する
準備した IoT SIM に対して、メタデータサービスを有効化します。詳しくは、メタデータサービスを設定する を参照してください。
ステップ 3: デバイスにパッケージをインストールする
IoT SIM に保管された認証情報を読み取るために、必要なパッケージをデバイス (例: Raspberry Pi OS Bookworm) にインストールします。
デバイスにログインします。
必要なパッケージをインストールして、デバイスを再起動します。
$ sudo apt install -y libpcsclite-dev pcscd libpcsclite1 cu
ステップ 4: SORACOM Krypton client (Golang version) をインストールする
IoT SIM に保管された認証情報を読み取るために、SORACOM Krypton client (Golang version) (以下、Krypton CLI) をデバイスにインストールします。
デバイスにログインします。
Krypton CLI を公開する GitHub レポジトリ の Releases ページ から、SORACOM Arc のブートストラップをサポートする v0.3.0 以降のファイルをダウンロードします。
利用するプラットフォームにあわせたファイルをダウンロードしてください。たとえば、Raspberry Pi OS Bookworm (32 bit) の場合は
krypton-cli_x.x.x_linux_arm.tar.gz
、Raspberry Pi OS Bookworm (64 bit) の場合はkrypton-cli_x.x.x_linux_arm64.tar.gz
です。コマンド例:
$ wget https://github.com/soracom/krypton-client-go/releases/download/vx.x.x/krypton-cli_x.x.x_linux_yyyyy.tar.gz
ダウンロードするための URL (上記のコマンドの場合は
wget
のあとに指定する URL) は、リンクを右クリックして を選択すると取得できますダウンロードしたファイルを展開し、実行形式ファイル
krypton-cli
を任意のディレクトリにコピーします。$ tar xvf krypton-cli_x.x.x_linux_yyyyy.tar.gz $ sudo cp krypton-cli /usr/local/bin
krypton-cli
が実行できることを確認します。$ krypton-cli -h
Usage of krypton-cli: -baud-rate uint Baud rate for communication device (e.g. -b 57600) (default 57600) -clear-key-cache Remove all items in the key cache -data-bits uint Data bits for communication device (e.g. -s 8) (default 8) :
以上で、
krypton-cli
のインストールは完了です。
krypton-cli -h の実行結果が異なる場合は
Release ページからダウンロードするファイルが正しくない可能性があります。利用するプラットフォームにあわせて、ファイルをダウンロードしてください。
たとえば、以下のように表示される場合があります。
$ krypton-cli -h
-bash: /usr/local/bin/krypton-cli: cannot execute binary file: Exec format error
デバイスに、Go 言語の環境がインストールされている場合は、以下のコマンドを実行してもインストールできます。
$ go install github.com/soracom/krypton-client-go/cmd/krypton-cli@latest
ステップ 5: Soracom Onyx - LTE™ USB ドングル (SC-QGLC4-C1) を取り付けて機内モードを有効化する
Air for セルラーを利用して SORACOM にアクセスする必要はありません。
IoT SIM を挿入した USB ドングルをデバイスに取り付ける
USB ドングルに IoT SIM を挿入してから、デバイスに取り付けます。詳しくは、Soracom Onyx - LTE™ USB ドングルをセットアップする を参照してください。
Raspberry Pi (Raspberry Pi OS) の設定 の手順に従って setup_air.sh
を実行して、自動的にセルラー回線で通信するように設定している場合は、以下のコマンドを実行して wwan0
インターフェースを削除してください。
$ sudo ifdown wwan0
$ ping -c 4 pong.soracom.io # SORACOM から応答が返ってこないことを確認
なお、ifdown: unknown interface wwan0
と表示された場合は、以下のコマンドを実行してみてください。
$ sudo ifconfig wwan0 down
$ ping -c 4 pong.soracom.io # SORACOM から応答が返ってこないことを確認
USB ドングルの機内モードを有効化する
デバイスにログインします。
USB ドングルが取り付けられているシリアルポート (例:
/dev/ttyUSB3
) に接続します。USB ドングルが
/dev/ttyUSB3
に取り付けられている場合:$ cu -l /dev/ttyUSB3 -s 57600
Connected.
ATE1
コマンドと、AT+CFUN=4
コマンドを実行して、機内モードを有効化します。ATE1 OK AT+CFUN=4 OK
はじめて入力するときは、
ATE1
は表示されません。~.
を入力します。cu コマンドが終了します。
機内モードを解除するには
機内モードを解除するには、上記と同様の手順でシリアルポートに接続し、AT+CFUN=1
(機内モードを無効化) を実行します。
ステップ 6: Krypton CLI で IoT SIM のメタデータを取得できることを確認する
以下のコマンドを実行して、imsi
などが取得できることを確認します。
$ krypton-cli -operation getSubscriberMetadata
{
"imsi": "295051234567890",
"msisdn": "423612345678",
"ipAddress": null,
"operatorId": "OP1234567890",
"apn": "soracom.io",
"type": "s1.4xfast",
"groupId": "12345678-abcd-1234-abcd-123456789010",
"createdAt": 1640962800000,
"lastModifiedAt": 1643641200000,
:
}
Krypton CLI がエラーで終了する場合
以下のようなエラーが出力され実行に失敗する場合があります。その場合は、以下の説明に従って追加のオプションを指定してください。ここで追加したオプションは、このあとの ステップ 7: ブートストラップする でも追加します。
no UICC interface is found
USB ドングルが正しく接続できていないか、自動認識に失敗している可能性があります。以下の手順でシリアルポートを特定し、Krypton CLI を実行する際に、
-interface comm -port-name (シリアルポート)
を追加してください。Raspberry Pi の USB ポートに USB ドングルだけを接続し、以下のコマンドを実行して、
Manufacturer
などの情報が表示されるシリアルポートを特定します。以下のように表示された場合は、正しいシリアルポート (
/dev/ttyUSB3
) が指定されています。$ krypton-cli -device-info -port-name /dev/ttyUSB3 Manufacturer: Quectel Model: EG25 Revision: EG25ABCDEFGHIJKL S/N: 123456789012345
一方、以下のように表示された場合は、誤ったシリアルポートが指定されています。異なるシリアルポートを指定してください。
$ krypton-cli -device-info -port-name /dev/ttyUSB1 Manufacturer: Model: Revision: S/N:
正しいシリアルポートが判別できた場合は、Krypton CLI を実行する際に、
-interface comm -port-name /dev/ttyUSB3
を追加します。$ krypton-cli -operation getSubscriberMetadata -interface comm -port-name /dev/ttyUSB3 { "imsi": "295051234567890", "msisdn": "423612345678", "ipAddress": null, "operatorId": "OP1234567890", "apn": "soracom.io", "type": "s1.4xfast", "groupId": "12345678-abcd-1234-abcd-123456789010", "createdAt": 1640962800000, "lastModifiedAt": 1643641200000, : }
key agreement url responded with error: 400 Bad Request
以下の内容をすべて確認してください。
IoT SIM のステータスを「使用中 (Active)」に変更してください。詳しくは、IoT SIM のステータスを変更する を参照してください。
ステップ 1: SORACOM Krypton を有効化する の手順に従って、Krypton を有効化してください。
plan-K2 K2-300MB を USB ドングルに取り付けた場合は、Krypton CLI を実行する際に、
-keys-api-endpoint-url https://api.soracom.io/v1/keys -provisioning-api-endpoint-url https://api.soracom.io
を追加してください。$ krypton-cli -operation getSubscriberMetadata -keys-api-endpoint-url https://api.soracom.io/v1/keys -provisioning-api-endpoint-url https://api.soracom.io
unexpected +CSIM response
以下の内容をすべて確認してください。
Krypton CLI が 100ms 待ってもレスポンスが無かったため、タイムアウトしている可能性があります。Krypton CLI を実行する際に、
-inter-character-timeout 200
のようにタイムアウトするまでの時間 (ミリ秒。デフォルトは100
) を指定してください。USB ドングルの機内モードを有効化してください。詳しくは、USB ドングルの機内モードを有効化する を参照してください。
機内モードを有効化しても同じエラーが表示されるときは、少し待ってから再度実行してください。
ステップ 7: ブートストラップする
Krypton CLI で IoT SIM のメタデータを取得できたら、ブートストラップします。
ブートストラップが完了すると、Krypton および Arc の料金が発生します。詳しくは、以下のページを参照してください。
ブートストラップ時に USB ドングルに取り付けられていた IoT SIM に、バーチャル SIM/Subscriber が追加されます。すでにバーチャル SIM/Subscriber が追加されている場合は、この手順を複数回実行しても新しいバーチャル SIM/Subscriber は追加されません。
Krypton の「Endorse による SIM 認証」を使用する方式でブートストラップします。
--config
フラグのあとに指定する soratun 設定ファイルのパス (/path/to/arc.json
) は、任意のパスを指定してください。$ soratun bootstrap sim --config /path/to/arc.json
ブートストラップが完了すると、soratun 設定ファイルが作成され、ファイルのパスが表示されます。
Created/updated configuration file: /path/to/arc.json
soratun 設定ファイルについて詳しくは、soratun 設定ファイルリファレンス を参照してください。
soratun bootstrap sim がエラーで終了する場合
ステップ 6: Krypton CLI で IoT SIM のメタデータを取得できることを確認する の手順で追加したオプション (
-operation getSubscriberMetadata
を除く) を、soratun bootstrap sim
を実行するときにも追加してください。たとえば、-keys-api-endpoint-url https://api.soracom.io/v1/keys -provisioning-api-endpoint-url https://api.soracom.io
を指定した場合は、各オプションの先頭の-
を 2 つに変更して、以下のように指定します。$ soratun bootstrap sim --config /path/to/arc.json --keys-api-endpoint-url https://api.soracom.io/v1/keys --provisioning-api-endpoint-url https://api.soracom.io
USB ドングルを取り外します。
ブートストラップは完了していますが WireGuard インターフェースは作成されていません
続けて、WireGuard インターフェースを作成して、SORACOM にアクセスします。詳しくは、ステップ 8: SORACOM にアクセスする を参照してください。
USB ドングル以外の SIM カードリーダーを利用する場合は、soratun コマンドリファレンス: soratun bootstrap sim コマンド を参考にポート名、ボーレート、データビットなどを変更してお試しください。
ステップ 8: SORACOM にアクセスする
soratun
で WireGuard インターフェースを作成すると、SORACOM にアクセスできます。詳しくは、以下のページを参照してください。
再度 SIM 認証を使用してブートストラップする
以下のようなときは再度ブートストラップする必要があります。
ステップ 5: Soracom Onyx - LTE™ USB ドングル (SC-QGLC4-C1) を取り付けて機内モードを有効化する 以降の手順を行ってください。