ThinkPad 移动网络

来自 ArchWiki

许多 Lenovo ThinkPad 笔记本电脑都配备了移动宽带调制解调器。通过将 SIM 卡插入调制解调器,可以使用蜂窝网络连接到互联网。

ModemManager 处理的设备

较新的 Quectel 调制解调器(例如,X13 Gen2、X1C Gen9、T14 Gen 2 AMD 上的 Quectel EM120R-GL)可以通过 ModemManager 进行设置,并使用 NetworkManager 进行管理。

安装 modemmanager,然后启动启用 ModemManager.service

FCC 解锁 Quectel 调制解调器

注意: ModemManager 可以自动执行此操作,请参阅 移动宽带调制解调器#FCC 锁定

在某些设备上,调制解调器将处于 fcc-lock 状态。

您需要找到调制解调器设备:已知设备为 /dev/ww*/dev/cdc*。或者,在内核日志中搜索 wwanWDM

可以使用以下命令确认锁定的调制解调器

# mbimcli -p -d device -v --quectel-query-radio-state
...
 >>>>>>   RadioState = 'fcc-locked'
...

然后您可以解锁调制解调器

# mbimcli -p -d device -v --quectel-set-radio-state=on

然后您可以启用调制解调器

$ mmcli --modem 0 --enable

配置 ModemManager 处理的设备

可以通过 CLI 或 GUI 进行设置。

您可以使用 NetworkManager 的 nm-connection-editor 添加新的移动宽带连接,并按照提示配置您的连接。

或者以 KDE Plasma 为例

  • 系统设置 > 连接中,单击右下角的加号以创建新链接
  • 选择移动宽带 > 创建
  • 设置移动宽带连接 > 任何 GSM 设备
  • 国家 > country_code
  • 提供商 > provider_name
  • 选择您的套餐 > 我的套餐未列出
  • APN > apn.number
注意: 您可能可以在 Windows 的设置 > 网络和互联网 > 蜂窝网络 > 运营商设置下找到提供商和 APN:提供商可以在活动网络中找到,APN 可以在互联网 APN > 默认接入点 > 视图中找到

QMI 协议调制解调器

要求

旧款 ThinkPad 中的宽带调制解调器使用 QMI 调制解调器协议 — 有关更多信息,请参阅 ModemManager 开发人员的 “libqmi 简介”。这些调制解调器将在文件系统中显示为 /dev/cdc-wdm

无法在 Linux 上初始化 QMI 调制解调器以供使用。请使用 Windows 通过 Lenovo 的激活应用程序(或网络搜索“Lenovo mobile broadband”以查找适合您调制解调器的应用程序)激活调制解调器。调制解调器在通过应用程序正确初始化之前无法工作。

步骤

安装 libqmi 软件包,该软件包提供 qmicliqmi-network 程序。另请安装 net-tools 以获取使用 ifconfig 命令的辅助脚本。

GitHub 上提供了用于 qmi-network辅助脚本。将脚本保存到 $PATH 中的某个位置,然后查看脚本并使其可执行。可能需要更改某些变量的值,尤其是 WWAN_DEV,可以通过 ip a 找到它(设备名称以 ww 开头)。

加载内核模块 qmi_wwanqcserial

# modprobe qmi_wwan
# modprobe qcserial

另请阅读 QMI 助手 GitHub 页面上的 README,了解任何进一步的先决条件。特别是,您可能需要在 /etc/qmi-network.conf 中设置您的蜂窝网络提供商提供的 APN。

/etc/qmi-network.conf
APN=foo.bar.net

最后,运行 qmi_setup.sh start 应该启动蜂窝网络连接。

Gobi 调制解调器

此方法是一些 QMI 调制解调器的替代方法。

首先,您需要确定您的调制解调器型号。打开 ThinkPad 的背板,查找 IC 或 FCC ID。在此示例中,我们将使用 GOBI2000(IC:2723A-GOBI2000,FCC ID:J9CGOBI2000-L)

从 BIOS I/O 设置中启用您的调制解调器设备。

https://support.lenovo.com/us/en/downloads/ds001302 下载驱动程序安装程序可执行文件,并使用 Wine 解压它。它会将驱动程序解压到 ~/.wine/drive_c/DRIVERS/WWANQL。解压程序将提示您在解压后自动安装驱动程序,但如果您再次需要安装程序,则它是先前提到文件夹中的 GobiInstaller.msi。安装程序将反过来将固件映像解压到 ~/.wine/drive_c/Program\ Files\ \(x86\)/QUALCOMM/Images/Lenovo

现在参考有关您想要/需要的固件的参考信息。通常,通用 UMTS 和默认固件(文件夹 6 和 UMTS)就足够了。

安装 gobi-loaderAUR。现在将之前的 3 个固件文件复制到 /lib/firmware/gobi(如果该文件夹不存在,请创建它)。将 SIM 卡插入电池组下方的端口并重新启动。您的调制解调器现在应该会在您的网络管理器中显示出来。

提示: 某些固件由 gobi-firmwareAUR 软件包提供。

参见:https://www.thinkwiki.org/wiki/Qualcomm_Gobi_2000

绕过 BIOS 级别的白名单限制

在较新的 ThinkPad 型号中,由于所有现代 Lenovo 笔记本电脑中实施的 BIOS 级别限制(允许的 M.2 扩展卡的“白名单”),通常无法将 LTE 调制解调器更换为受支持的调制解调器。但是,已经找到一种方法来配置任何 Sierra Wireless EM73xx/EM74xx 调制解调器以“规避”白名单检查,因此可以正常使用这些调制解调器。

我们将在此处假设型号为 Sierra Wireless EM7455

Sierra Wireless EM7455 的设置

一般描述

使用 AT!CUSTOM="FASTENUMEN",0 AT 命令禁用调制解调器的USB 快速枚举功能。调制解调器将花费更长的时间才能在 USB 总线上出现,并且固件将在启动时“错过”调制解调器。

或者,使用 AT!CUSTOM="FASTENUMEN",2 选择性地仅为热启动启用USB 快速枚举。调制解调器将在 S3 恢复时更快地重新出现,但仍然可以规避常规启动重新启动时的白名单检查(此效果的机制对于作者而言尚不完全清楚)。

这有一个缺点:由于固件“看不到”调制解调器,因此它不会导出 WWAN rfkill,而是会无条件地断言 M.2 插槽的 W_DISABLE 引脚,从而强制调制解调器进入“飞行模式”。使用 AT!PCOFFEN=2 AT 命令配置调制解调器以忽略此引脚。

步骤详解

启动笔记本电脑,安装原装调制解调器,并在 BIOS 设置中启用 WWAN 卡访问。

挂起笔记本电脑(确保将其配置为使用 S3)。

热插拔将原装 Fibocom 调制解调器更换为 Sierra Wireless 调制解调器,然后恢复。S3 恢复时不会查阅白名单。

检查调制解调器是否在 USB 总线上

# lsusb
<...>
Bus 001 Device 004: ID 1199:9071 Sierra Wireless, Inc.
<...>

记住调制解调器的 VID(供应商 ID)(在本例中为 1199)。

停止 ModemManager.service(如果正在运行)。

可选地,使用 qmi-firmware-update 工具更新调制解调器固件

# cd /path/to/extracted/firmware
# qmi-firmware-update -d 1199 -u *.cwe *.nvu
注意: 可能需要先将设备设置为 usb 组合 6。为此,请运行命令以设置 usb 组合并对调制解调器进行电源循环(请参阅后续步骤)。

更改调制解调器的 USB 组合以启用 AT 命令端口

# qmicli -d /dev/cdc-wdm1 --dms-swi-set-usb-composition=8

按照 qmicli 的建议,对调制解调器进行电源循环

# qmicli -d /dev/cdc-wdm1 --dms-set-operating-mode=offline
# qmicli -d /dev/cdc-wdm1 --dms-set-operating-mode=reset

等待调制解调器重新出现,然后验证

# 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

验证三个串行端口 /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

使用您选择的串行终端模拟器(例如 screen)连接到 /dev/ttyUSB2

# screen /dev/ttyUSB2 115200

输入 AT 命令(请注意,您无需键入 OK,此处包含的回复是会话记录的一部分)

启用命令回显(如果最初禁用回显,您将看不到您键入的此命令)

ATE1
OK

解锁工程命令

AT!ENTERCND="A710"
OK

检查自定义选项(这些是作者的选项)

AT!CUSTOM?
!CUSTOM: 
             GPSENABLE          0x01
             GPSSEL             0x01
             IPV6ENABLE         0x01
             SIMLPM             0x01
             SINGLEAPNSWITCH    0x01


OK

配置USB 快速枚举(如果您想安全起见,请将 2 替换为 0

AT!CUSTOM="FASTENUMEN",2
OK

验证,现在应该与其他选项一起显示 FASTENUMEN 选项

AT!CUSTOM?
!CUSTOM: 
             GPSENABLE          0x01
             GPSSEL             0x01
             IPV6ENABLE         0x01
             SIMLPM             0x01
             FASTENUMEN         0x02
             SINGLEAPNSWITCH    0x01


OK

配置调制解调器以忽略 W_DISABLE

AT!PCOFFEN=2
OK

验证

AT!PCOFFEN?
2
   
OK

重置调制解调器

AT!RESET
OK

终端将在一段时间后断开连接。

等待调制解调器重新出现,然后通过重新启动/关机/硬重置笔记本电脑来验证配置。

备注

有关更多信息(包括导致此发现的原始思路),请参阅这些 lenovo 论坛帖子 和这个 reddit 帖子。

您还可以应用 此处 描述的其他有用的配置选项。

故障排除

确保您已在 Windows 上初始化调制解调器。

WWAN/LTE GUI

安装 NetworkManagernetwork-manager-applet,以便更轻松地找到您的 SIM 卡的正确 APN。

无效的转换

如果您在运行 mmcli -m 0 -e 时收到错误 Invalid Transition,则可能是您尚未删除调制解调器上的 fcc-lock。请参阅 #FCC 解锁 Quectel 调制解调器 中的示例命令。

参见