ThinkPad モバイルインターネット
Lenovo の ThinkPad にはモバイルブロードバンドモデムが搭載されているものが多くあります。SIM カードをモデムに挿入することで、移動体通信ネットワークを使ってインターネットに接続することが可能です。
目次
要件
新しい ThinkPad のブロードバンドモデムでは QMI モデムプロトコルを使っています。詳しくは この記事 を参照してください。このようなモデムはファイルシステム上で /dev/cdc-wdm
と認識されます。
Linux で QMI モデムを初期化して使用することは現在まだできません (2014年9月)。Windows で Lenovo のアクティベーションアプリ を使ってモデムを有効化してください (もしくはウェブで "Lenovo mobile broadband" を検索してあなたが使用しているモデム用の適切なアプリを探して下さい)。アプリを使って初期化を行わないかぎりモデムは動作しません。
手順
公式リポジトリから libqmi パッケージをインストールしてください。qmicli
と qmi-network
プログラムが入っています。また、net-tools もインストールしてください。ifconfig
コマンドが入っています。
qmi-network
を使うための ヘルパースクリプト が GitHub に存在します。$PATH
のどこかにスクリプトを保存して実行可能属性を付与して、スクリプトの中身を確認してください。変更する必要がある変数がいくつか存在します (特に WWAN_DEV
)。
qmi_wwan
と qcserial
カーネルモジュールをロードしてください:
$ modprobe qmi_wwan $ modprobe qcserial
他にやる必要があることについては GitHub page of the QMI helper の readme を読んで下さい。特に、あなたが使用するインターネットプロバイダーの APN を /etc/qmi-network.conf
に設定する必要があります:
/etc/qmi-network.conf
APN=foo.bar.net
最後に、qmi_setup.sh start
を実行するとインターネット接続が開始されます。
他の方法
参照: http://www.thinkwiki.org/wiki/Qualcomm_Gobi_2000
まず最初のあなたの使っているモデムを確認してください。Thinkpad のバックプレートを開いて IC あるいは FCC ID を見てください。以下の例では GOBI2000 (IC: 2723A-GOBI2000, FCC ID: J9CGOBI2000-L) を使います。
BIOS の I/O 設定からモデムデバイスを有効にしてください。
https://support.lenovo.com/en_US/downloads/detail.page?DocID=DS001302 からドライバーのインストーラー exe をダウンロードして Wine で展開します。ドライバーは ~/.wine/drive_c/DRIVERS/WWANQL に展開されます。展開後にドライバーのインストールが要求されますが、インストーラは GobiInstaller.msi として展開されたフォルダに存在します。インストーラーはファームウェアイメージを ~/.wine/drive_c/Program\ Files\ \(x86\)/QUALCOMM/Images/Lenovo に抽出します。あなたが必要としているファームウェアの情報を確認してください。大抵は Generic UMTS と Default Firmware (Forlders 6 an UMTS) で上手く行きます。
http://www.codon.org.uk/~mjg59/gobi_loader/ から gobi ローダーをダウンロードして、手順にしたがって make そして install してください。先に作られたファームウェアファイルを /lib/firmware/gobi にコピーしてください (フォルダが存在しない場合、作成してください)。バッテリーパックの裏にある端子に sim カードを挿入して再起動してください。ネットワークマネージャにモデムが表示されるはずです。
BIOS レベルのホワイトリストの制限を取り除く
新しいモデルの ThinkPad では、BIOS レベルの制限によって LTE モデムを交換できないようになっています。ホワイトリストは全ての Lenovo 製ノートパソコンに実装されています。ただし、Sierra Wireless EM73xx/EM74xx モデムにはホワイトリストのチェックを掻い潜る方法が見つかっているため、使うことが可能です。
以下では使用するモデルは Sierra Wireless EM7455
とします。
Sierra Wireless EM7455 の設定
説明
AT!CUSTOM="FASTENUMEN",0
AT コマンドを使ってモデムの USB fast enumeration 機能を無効にします。モデムは USB バスから認識されるのに長い時間がかかるようになり、ファームウェアは起動時にモデムを「見落とす」ようになります。
もしくは、AT!CUSTOM="FASTENUMEN",2
を使って USB fast enumeration を選択的に有効化することもできます。モデムは S3 レジュームで素早く認識されるようになりますが、通常の起動や再起動ではホワイトリストに引っかかりません (どういう仕組みなのかはよく分かっていません)。
ただし欠点も存在します: ファームウェアはモデムを「認識」しないため、WWAN rfkill は使われませんが無条件に M.2 スロットの W_DISABLE
ピンが確認され、モデムが強制的に「機内モード」になります。AT!PCOFFEN=2
AT コマンドを使ってピンを無視するようにモデムを設定してください。
手順
1. モデムを用意し、BIOS セットアップで WWAN カードを有効にした上で、ラップトップを起動します。
2. ラップトップをサスペンドします (S3 サスペンドモードを使用するよう設定しておいてください)。
3. Fibocom モデムと Sierra Wireless モデムを共にホットスワップで接続して、復帰させます。S3 からの復帰時にはホワイトリストは調べられません。
lsusb
の結果にモデムが表示されていることを確認してください:
# lsusb <...> Bus 001 Device 004: ID 1199:9071 Sierra Wireless, Inc. <...>
モデムの VID (vendor ID) を把握してください (この例では 1199
です)。
4. ModemManager が実行されている場合は、停止させてください:
# systemctl stop ModemManager
5. 必須ではありませんが、qmi-firmware-update
でモデムのファームウエアを更新します:
# cd /path/to/extracted/firmware # qmi-firmware-update -d 1199 -u *.cwe *.nvu
6. AT コマンドポートを有効化するためモデムの USB composition を変更します:
# qmicli -d /dev/cdc-wdm1 --dms-swi-set-usb-composition=8
7. qmicli
の提案通りモデムの Operating Mode を変更します:
# qmicli -d /dev/cdc-wdm1 --dms-set-operating-mode=offline # qmicli -d /dev/cdc-wdm1 --dms-set-operating-mode=reset
8. モデムが再び表示されるまで待ち、その上で確認します:
# qmicli -d /dev/cdc-wdm1 --dms-swi-get-usb-composition [/dev/cdc-wdm1] Successfully retrieved USB compositions: USB composition 6: DM, NMEA, AT, QMI [*] USB composition 8: DM, NMEA, AT, MBIM USB composition 9: MBIM
9. 3つのシリアルポート /dev/ttyUSB0
、/dev/ttyUSB1
および /dev/ttyUSB2
が利用可能なことを確認してください (次の例ではUSB-シリアル変換器がこれ以外に接続されていないことを前提にしています):
# ls -l /dev/ttyUSB* crw-rw---- 1 root uucp 188, 0 Feb 14 20:11 /dev/ttyUSB0 crw-rw---- 1 root uucp 188, 1 Feb 14 20:11 /dev/ttyUSB1 crw-rw---- 1 root uucp 188, 2 Feb 14 20:11 /dev/ttyUSB2
10. /dev/ttyUSB2
に screen
など好みのシリアルコンソールエミュレータでアタッチしてください:
# screen /dev/ttyUSB2 115200
11. AT コマンド (OK
を入力する必要はありません、結果は以下の記録の一部に含まれています):
11.1. エコーバックコマンドを有効化します (元々エコーバックが無効な場合、入力した内容は見えません):
ATE1 OK
11.2. Advanced コマンド を有効化します:
AT!ENTERCND="A710" OK
11.3. カスタムオプションを確認します (これは著者の場合でのオプションです):
AT!CUSTOM? !CUSTOM: GPSENABLE 0x01 GPSSEL 0x01 IPV6ENABLE 0x01 SIMLPM 0x01 SINGLEAPNSWITCH 0x01 OK
11.4. USB fast enumeration を設定します(より安全に行なうには 2
を 0
にします):
AT!CUSTOM="FASTENUMEN",2 OK
11.5. 確かめます:
AT!CUSTOM? !CUSTOM: GPSENABLE 0x01 GPSSEL 0x01 IPV6ENABLE 0x01 SIMLPM 0x01 FASTENUMEN 0x02 SINGLEAPNSWITCH 0x01 OK
(FASTENUMEN
オプションが他と並んで表示されているはずです)"
11.6. W_DISABLE を無視するようにモデムを設定します:
AT!PCOFFEN=2 OK
11.7. 確かめます:
AT!PCOFFEN? 2 OK
11.8. モデムをリセットします:
AT!RESET OK
(しばらく後にターミナルは切断されます)
12. モデムが再び表示されるまで待ち、再起動、電源を落とす、ラップトップのハードリセットで設定を確かめます。
注意
(上記の情報が発見された経緯を含む) 詳しい情報は lenovo スレッド や reddit スレッドを見てください。
こちら にも便利な設定オプションが載っています。
トラブルシューティング
- Windows でモデムを初期化してください。
WWAN/LTE GUI
NetworkManager と network-manager-applet をインストールすることで SIM カードの適切な APN を簡単に見つけられます。