ThinkPad モバイルインターネット

From ArchWiki
Jump to navigation Jump to search

Lenovo の ThinkPad にはモバイルブロードバンドモデムが搭載されているものが多くあります。SIM カードをモデムに挿入することで、移動体通信ネットワークを使ってインターネットに接続することが可能です。

要件

新しい ThinkPad のブロードバンドモデムでは QMI モデムプロトコルを使っています。詳しくは この記事 を参照してください。このようなモデムはファイルシステム上で /dev/cdc-wdm と認識されます。

Linux で QMI モデムを初期化して使用することは現在まだ出来ません (2014年9月)。Windows で Lenovo のアクティベーションアプリ を使ってモデムを有効化してください (もしくはウェブで "Lenovo mobile broadband" を検索してあなたが使用しているモデム用の適切なアプリを探して下さい)。アプリを使って初期化を行わないかぎりモデムは動作しません。

手順

公式リポジトリから libqmi パッケージをインストールしてください。qmicliqmi-network プログラムが入っています。また、net-tools もインストールしてください。ifconfig コマンドが入っています。

qmi-network を使うための ヘルパースクリプト が GitHub に存在します。$PATH のどこかにスクリプトを保存して実行可能属性を付与して、スクリプトの中身を確認してください。変更する必要がある変数がいくつか存在します (特に WWAN_DEV)。

qmi_wwanqcserial カーネルモジュールをロードしてください:

$ 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/ttyUSB2screen など好みのシリアルコンソールエミュレータでアタッチしてください:

# 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 を設定します(より安全に行なうには 20 にします):

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

NetworkManagernetwork-manager-applet をインストールすることで SIM カードの適切な APN を簡単に見つけられます。

参照