OpenBlocks IoT VX2をいじるときに知っておくと良いこと
ども、ゲストの大瀧です。IoTゲートウェイの定番製品、OpenBlocks IoTを3年ぶりに触ってます。
最新機種のVX2を検証する機会があったので、いろいろいじるときに知っておくと良いことをまとめてみたいと思います。
基本操作
電源ボタンは無いので付属のACアダプタを接続すれば、本体の電源が入ります。初期状態で組み込みのLinux OS(Debian Stretch)が起動するので、ネットワーク経由のWeb管理画面かUSB経由のシリアルコンソールのいずれかで接続します。
Web管理画面ではOpenBlocks特有の機能や3G/LTEモジュールの接続設定など主なシステム構成、シリアルコンソールおよびSSHではCUI(Command Line Interface)でのLinux操作ができます。
ネットワーク
無線LANと有線LANからWeb管理画面にアクセスできます。初期状態ではSSH接続できないので、SSHを使いたい場合はWeb管理画面から許可設定をすると良いでしょう。
種別 | 本体の印字 | Web管理画面のURL (HTTPSも 4430 ポートでアクセス可) |
Linuxの インターフェース名 |
---|---|---|---|
無線LAN | - | http://192.168.254.254:880 |
wlan0 |
有線LAN | ETHER-0 | http://192.168.253.254:880 |
eth0 |
有線LAN | ETHER-1 | http://192.168.252.254:880 |
eth1 |
URLはIPアドレスの3オクテットがそれぞれ異なるので注意しましょう。無線LANはVX2がアクセスポイントとして動作しているので、以下の要領で接続します。
SSID | パスワード |
---|---|
iotfamily_<本体背面記載のシリアル番号> | openblocks |
有線LANではDHCPが動いていないので、接続したいインターフェースに合わせてPCやMacのIPアドレス(ETHER-0なら192.168.253.100/24
など)を手動で設定しましょう。
初回アクセス時には使用許諾とWeb管理画面の管理者アカウント設定、ネットワーク設定が表示されるのでそれぞれ進めます。
許諾内容を確認し、「同意する」をクリックすればOKです。
管理者アカウントは、次回以降Web管理画面にログインする際に入力します。後述するrootユーザーとは別です。
管理者アカウントを設定すると、ネットワーク設定画面が表示されます。既存の無線LANにクライアントとして接続する場合など、必要に応じて設定を変更しましょう。
LTEモジュールを追加している場合は、電源を入れる前に本体にSIMカードを挿入し、この画面の「サービスネットワーク (モバイル回線) 」でAPNなどを設定、再起動してLTE回線が利用できます *1。あとはメニューを一覧してクラウド連携など、Web管理画面で何ができるのか眺めてみると良いでしょう。ドキュメントページにある「OpenBlocks IoT Family WEB UIセットアップガイド」が参考になります。
シリアルコンソール
Linuxのコマンド操作を行うのであれば、シリアルコンソールが手軽です。コマンド操作であればSSHを有効化して接続しても良いですがシリアルコンソールであれば起動時のブートローダにアクセスできるため、SSHではできない以下の操作が可能です。
- OSイメージのバックアップ/リストア
- ファクトリーリセット
これらについては後述します。
今回はmacOSからの接続方法をご紹介します。Windowsの場合はドキュメントの「OpenBlocks IoT Family 開発者向けガイド」を参照してください。macOSでは接続する前に、以下のリンクからドライバをダウンロードしインストールしておきます。
シリアルコンソールは、筐体前面左端のmicro USB経由でアクセスします。同梱のUSB-micro USBケーブルでPC/Macと接続すればOKです。写真のような感じでつなぎます。
接続できたらデバイスファイル/dev/cu.SLAB_USBtoUART
が作成されるはずなので、screen
コマンドでシリアルコンソールにアクセスします。
$ screen /dev/cu.SLAB_USBtoUART 115200 -L # [Enter]キー押下 Debian GNU/Linux 9 obsiot ttyS0 obsiot login:
初期のログインアカウントは以下です。
ユーザー名 | パスワード |
---|---|
root | 0BSI0T(オーではなくゼロ、アルファベットは大文字) |
コマンド操作が終わったら、ログアウトしてC-a k
(Ctrl+aを押した後に k)キーを入力すれば
Really kill this window [y/n]
と出るので、y[Enter]
で終了します。コンソール接続なのでログアウトせずにUSBの抜き差しもできたりしますが、デバイスファイルの動作が不安定になることがあるので注意しましょう。
OSイメージのバックアップ/リストア
検証では「いろいろ設定した内容を保存したい」、「設定した内容を別のマシンにコピーしたい」といったことがよくあると思います。そんなときにはOSイメージのバックアップ機能が便利でしょう。OpenBlocks IoTはいわゆるレスキューモード(OpenBlocks IoTではエマージェンシーブートモードと呼ぶ)が単体で実行できるので、USBメモリや外付けディスクなどの外部記憶にOSイメージをバックアップ/リストアすることができます。
シリアルコンソールで接続し、reboot
コマンドで再起動すると、起動時にブートローダの画面が表示されます。
GNU GRUB version 0.97 (252K lower / 523264K upper memory) +-------------------------------------------------------------------------+ | o OBS IoT VX - Normal boot | | x OBS IoT VX - WebUI init boot | | x OBS IoT VX - Emergency Image | | x OBS IoT VX - Factory Image | +-------------------------------------------------------------------------+ Board: Aptio CRB Platform: Intel Bay Trail-I Hardware Secure Boot: Inactive UEFI Secure Boot: Inactive System Mode: Setup UEFI Secure Boot Mode: Custom GRUB Verified Boot: Unsupported Boot Device: UEFI OS Initial Root Device: (hd0,0) Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, 'a' to modify the kernel arguments
ここで、キーボードの↑
/↓
キーでOBS IoT VX - Emergency Image
を選択し[Enter]
キーを押下すればレスキューモードで起動します。レスキューモードのログインアカウントは以下です(通常起動とパスワードが異なります)。
ユーザー名 | パスワード |
---|---|
root | root |
ログインしたら、内蔵ディスクの領域/dev/mmcblk0p2
と外部記憶をそれぞれマウントしtar
アーカイバなど任意のコマンドでバックアップを取得し外部記憶に保存します。
mkdir /mnt/mmc /mnt/usb mount /dev/mmcblk0p2 /mnt/mmc mount /dev/sda1 /mnt/usb # 外部記憶のデバイスファイルが/dev/sda1の場合 rm -rf /mnt/var/lib/bluetooth/* # ドキュメント記載の、ハードウェア固有ファイルの削除 cd /mnt/mmc tar --exclude=lost+found zcf /mnt/usb/backup.tgz . cd / umount /mnt/mmc /mnt/usb
リストアは、既存のディスク領域をフォーマットしてバックアップファイルを展開すればOKです。
mkfs -t ext4 /dev/mmcblk0p2 # 既存のデータがすべて削除されるので注意 mkdir /mnt/mmc /mnt/usb mount /dev/mmcblk0p2 /mnt/mmc mount /dev/sda1 /mnt/usb # 外部記憶のデバイスファイルが/dev/sda1の場合 cd /mnt/mmc tar zxf /mnt/usb/backup.tgz cd / umount /mnt/mmc /mnt/usb reboot
開発者ガイドを見ると自動化する仕組み(DEB_CONFIG
とinit.sh
ファイル)もあるようなので、こちらを試してみるのもいいかもしれません。
ファクトリーリセット
検証が一通り完了したら、初期設定に戻したいこともあるでしょう。シリアルコンソールからファクトリーリセットをかけることができます。手順は簡単でシリアルコンソールで接続して、再起動しブートローダーのメニューからOBS IoT VX - Factory Image
を選んで[Enter]
キーを押すだけです。
GNU GRUB version 0.97 (252K lower / 523264K upper memory) +-------------------------------------------------------------------------+ | o OBS IoT VX - Normal boot | | x OBS IoT VX - WebUI init boot | | x OBS IoT VX - Emergency Image | | x OBS IoT VX - Factory Image | +-------------------------------------------------------------------------+ Board: Aptio CRB Platform: Intel Bay Trail-I Hardware Secure Boot: Inactive UEFI Secure Boot: Inactive System Mode: Setup UEFI Secure Boot Mode: Custom GRUB Verified Boot: Unsupported Boot Device: UEFI OS Initial Root Device: (hd0,0) Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, 'a' to modify the kernel arguments
まとめ
OpenBlocks IoT VX2のざっくり知っておくと良い基本操作をご紹介しました。BX1にあったストレージモードの切り替えがなくなり、シンプルに扱えるようなった印象を受けました。クラウド連携が当時よりもかなり強化されているようなので、それらを触ったりSORACOMサービスとの組み合わせをいろいろ考えてみたりしようと思います。
参考URL
脚注
- モバイル回線と無線LANのクライアントモードはOpenBlocksの制約があり共存できない点に注意しましょう。 ↩