メニュー 閉じる

ESXi6.7上の仮想マシンでL-02Cを利用する

L-02Cというのは、docomoから大昔に発売されたXi(LTE)のUSBドングルです。
これはSEIL/X1やYAMAHA RTX等でWANインターフェースとして利用可能なので、モバイルバックアップ的な利用を行いたいときに便利なシロモノです。

今回、ESXi6.7の上に構築したSEIL/x86 Fujiで、L-02Cを利用すべく奮闘した結果を記しておきます。
ちなみにSEIL/x86 FujiでのUSBドングルの利用は、サポートされていないながらも利用できます。

L-02CをESXiに認識させる

仮想マシンでL-02Cを使う前に、まずはESXiにきちんと認識させるという準備が必要です。

マスストレージデバイスとして振る舞うL-02C

L-02Cなどの一部のUSBドングルは、USB接続時にデータ端末としてではなく、マスストレージデバイスとして振る舞います。
これはドライバファイルを提供するための機能ですが、データ端末として利用するためには、最初に認識されたマスストレージデバイスを切断する必要があります。

この挙動はLinuxやESXiにおいても例外ではなく、接続するとUSBマスストレージデバイスとして認識されてしまいます。
多くの場合はejectコマンドを利用して一度マスストレージデバイスを取り出す方法や、Linuxだと自動的にモードを切り替えるようなツールを利用して、データ端末として利用することになります。

ESXiにおいては起動の都度ejectコマンドを都度叩くことはさすがに厳しいですし、Linuxのツールを動作させることも(おそらく)できないでしょう。
そこでL-02Cをマスストレージデバイスとして使用しない設定を施し、USB接続時に直接データ端末として利用できるようにします。
実はL-02Cでは、ATコマンドを利用することでマスストレージデバイスとして振る舞わない設定ができるらしいのです。

マスストレージデバイスを無効化する

ATコマンドは、Linuxではcuコマンド、WindowsではPuTTYやTeraTerm等のソフトウェアを利用することで実行することができます。
この記事ではATコマンドを実行するまでの手順については割愛します。

以下のATコマンドを実行することで、マスストレージデバイスを無効化できます。

AT%USBMODEM=0
ATZ0

ESXiに接続する

上記の設定を施したL-02CをESXiに接続します。
ESXiのSSHを有効にして、lsusbコマンドで覗いてみると以下の様に認識されているはずです。

[root@esxi:~] lsusb
Bus 001 Device 024: ID 1004:618f LG Electronics, Inc. Ally/Optimus One
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

これで準備は完了です。

仮想マシンにL-02Cを接続する

ESXiにL-02Cを認識させてしまいさえすれば、仮想マシンにUSBを接続するのは簡単です。

仮想マシンの設定でUSBコントローラを追加、USBデバイス(L-02C)を追加、という流れになります。
今回はSEIL/x86 FujiのOVFを利用して仮想マシンを作成済のため、予めUSBコントローラは追加されています。

仮想マシンの「設定の編集」を開き、「その他のデバイスの追加」から「USBデバイス」を選択すると、以下のように仮想マシンにL-02Cを接続させることが可能です。

(おまけ)SEIL/x86から認識できていることを確認する

# show status dialup-device
mdm0:
        Service Name : NTT docomo FOMA / Xi
        Manufacturer : LG Electronics Inc
        Modem Id : docomo L02C
        Revision Id : 353168xxxxxxxx00
        Serial Number : 353168xxxxxxxx8
        Subscriber Number : 080-xxxx-xxxx
        SIM Status : READY
        Signal Quality : (not detected)
        Next Auto-Reset : Not scheduled
        Connect Fail Count: 0 (threshold none)
        PDP Contexts :
        cid=1 PDP_type=IP APN=iijmio.jp
        cid=2 PDP_type=IP APN=lte-mobile.jp

(おまけ)SEIL/x86でL-02Cを利用する際の問題点

この方法で接続した場合、認識・接続自体には問題がないのですが、reset dialup-device mdm0を実行すると、SEIL/x86を再起動するまでL-02Cを認識しなくなるという問題を確認しています。
また常時接続を行っていた場合、1日の連続接続で自動切断され(iijmio側、docomo側どちらの仕様かは未確認)、その後の再接続ができなくなる問題も確認しています。

常時接続せずオンデマンド接続にすることで、1日以上の連続稼働を確認していますので、それで事足りる用途で利用するのが良いかと思います。
少なくとも定常的に利用する場合は、切断されたことをきちんと検知させて何らかの対処を取れるようにする必要があるでしょう。

関連投稿

コメントを残す