ThinkPad X270にLTEモジュールSierra Wireless EM7455を取り付ける。

手持ちのX270へLTEモジュール(Sierra Wireless EM7455)を取り付けたときのメモ。
これでWiFi持ち歩かなくてもネットができるだろうという浅はかな目論見。

今回用意したものは EM7455(FRU 00JT547)で、日本の技適マークが入っているものです。
eBayあたりから、$25くらいのものを調達しました。

早速X270の裏蓋をあけてセットすれば終わり、、、と思ったら、そうでもなく。

手始めに、GitHub danielewood / sierra-wireless-modems を見ておく必要がありそうです。
そのまま取り付けてしまうと、PC起動時に下記のエラーが出ます。


1802: Unauthorized network card is plugged in - Power off and remove the miniPCI netwok card.
System is halted

そしてOSも起動できません。

いろいろと検索するとこの1802エラーが出るのはLenovoのusbvid,usbpid,bootidでないと起動できない、いわゆるホワイトリストチェックのため跳ねられるということでした。
また、いったんOSを起動後スリープモードにしてこのPCIeカードを差し、スリープ復帰すれば認識するのでその際にコマンド投入してusbvid,usbpidなどを入れてあげれば良さそうです。

X270の電源投入時はEM7455を差さないで起動し、OSをスリープモードにして、ちょっとリスキーですがその状態でスロットへEM7455を差してスリープ復帰させてみると、なかなかの強者です。

kernel: usb 1-3: New USB device found, idVendor=1199, idProduct=9078, bcdDevice= 0.00
kernel: usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: usb 1-3: Product: Sierra Wireless EM7455 Qualcomm
kernel: usb 1-3: Manufacturer: Sierra Wireless, Incorporated
kernel: usb 1-3: SerialNumber: LF**************
kernel: usb 1-3: USB disconnect, device number 5

すぐdisconnectされる。。。認識したらすぐさようならされてしまう、、、ということで、これは別なPCIeスロットをもったマシンかUSBドングルのようなものが必要なのか調べてみると、、、やはり先人の方達が調べ上げていたおかげで方法がわかりました。

さきほどの GitHub danielewood / sierra-wireless-modems にあるとおりです。

Bypass Lenovo Whitelist for T470/Carbon X1 G6 and other newer Lenovo laptops
Note: Use a $10 M.2 USB Adapter to flash and configure the modem

10$くらいのM.2 USBアダプタを使えとありますので、下記を用意してみました。
CY M.2 NGFF ワイヤレスWWAN USBアダプターカード SIMカードスロット付き モジュールテストツール

こんなやつです。

評価めっちゃ低かったりするけど大丈夫なんだろうか・・・。と不安になりましたが、このアダプタを使用してあげると正しく認識しました。

その後は、/dev/cdc-wdm0というデバイスが表示されますが、このままではQMIポートのみでモデムのATコマンドでパラメータを設定できないので、/dev/ttyUSB0〜2を見えるようにします。

方法は、こちらのスクリプトを参考にしてください。(スクリプト内の変数は適宜あわせてください。)

/dev/ttyUSB0〜2が表示されれば、下記ATコマンド投入をしてX270で使えるようにします。

$ sudo screen /dev/ttyUSB2 38400
ATE1
AT!ENTERCND="A710"
AT!USBVID=1199
AT!USBPID=9079,9078
AT!USBPRODUCT="Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A"
AT!PRIID="9904609","002.026","Lenovo-Storm"
AT!CUSTOM="FASTENUMEN",2
AT!PCOFFEN=2
AT!USBSPEED=0
AT!RESET

その後、いったんEM7455がリスタートし、しばらくするとOSから見えるようになります。


$ lsusb
Bus 001 Device 005: ID 1199:9079 Sierra Wireless, Inc.

$ mmcli -L
/org/freedesktop/ModemManager1/Modem/0 [Sierra Wireless, Incorporated] Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A

これでようやくX270へ取り付けができるようになります。M.2 USBアダプタはここで役目終了ですので、EM7455をX270へ取り付けます。

取り付け後、無事にOSが起動できて、EM7455が認識していることを確認してから裏蓋を閉じたほうがよいですね。

その後、SIMを差したりAPNなどを適宜設定してあげましょう。

mmcliでSIMも認識しているか確認したりします。

$ mmcli -m 0
  --------------------------------
  General  |            dbus path: /org/freedesktop/ModemManager1/Modem/0
           |            device id: *****************************************
  --------------------------------
  Hardware |         manufacturer: Sierra Wireless, Incorporated
           |                model: Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A
           |    firmware revision: SWI9X30C_02.33.03.00
           |       carrier config: default
           |         h/w revision: EM7455
           |            supported: gsm-umts, lte
           |              current: gsm-umts, lte
           |         equipment id: *****************
  --------------------------------
  System   |               device: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3
           |              drivers: qcserial, cdc_mbim
           |               plugin: Sierra
           |         primary port: cdc-wdm0
           |                ports: ttyUSB0 (qcdm), ttyUSB2 (at), cdc-wdm0 (mbim), 
           |                       wwp0********** (net)
  --------------------------------
  Numbers  |                  own: ***********
  --------------------------------
  Status   |       unlock retries: sim-pin2 (3)
           |                state: registered
           |          power state: on
           |          access tech: lte
           |       signal quality: 48% (recent)
  --------------------------------
  Modes    |            supported: allowed: 3g; preferred: none
           |                       allowed: 4g; preferred: none
           |                       allowed: 3g, 4g; preferred: 3g
           |                       allowed: 3g, 4g; preferred: 4g
           |              current: allowed: 3g, 4g; preferred: 4g
  --------------------------------
  Bands    |            supported: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2, 
           |                       eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8, 
           |                       eutran-12, eutran-13, eutran-20, eutran-25, eutran-41
           |              current: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2, 
           |                       eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8, 
           |                       eutran-12, eutran-13, eutran-20, eutran-25, eutran-41
  --------------------------------
  IP       |            supported: ipv4, ipv6, ipv4v6
  --------------------------------
  3GPP     |                 imei: ****************
           |        enabled locks: fixed-dialing
           |          operator id: 44010
           |        operator name: NTT DOCOMO
           |         registration: home
  --------------------------------
  3GPP EPS | ue mode of operation: csps-2
  --------------------------------
  SIM      |            dbus path: /org/freedesktop/ModemManager1/SIM/0

大丈夫そうですね。
あとは、OCNモバイルoneのSIMを差しているなら、下記のコマンドでAPN設定できます。(firewalldで使用されるexternal zoneも一緒に設定します。)


nmcli connection add con-name OCN type gsm ifname cdc-wdm0 apn lte.ocn.ne.jp user mobileid@ocn password mobile connection.zone external

設定後、NetworkManagerなりで接続を確認してあげると、接続が確認できます。

これでとりあえずWiFiを探さなくてもよくなるかな。