未检测到华为 USB 4G 调制解调器

Nik*_* R. 4 usb modem usb-modem

我有华为调制解调器的问题。Ubuntu 16 不会将其检测为移动宽带调制解调器。我无法在我的网络连接中选择它。

$ lsusb
5266: executing lsusb
Bus 001 Device 004: ID 1bcf:2b8d Sunplus Innovation Technology Inc. 
Bus 001 Device 003: ID 8087:0a2a Intel Corp. 
Bus 001 Device 002: ID 8087:8001 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0bc2:ab20 Seagate RSS LLC Backup Plus Portable Drive
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 003: ID 12d1:14fe Huawei Technologies Co., Ltd. Modem (Mass Storage Mode)
Bus 002 Device 002: ID 047d:1042 Kensington Ci25m Notebook Optical Mouse [Diamond Eye Precision]
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
5266: executed
$ 
Run Code Online (Sandbox Code Playgroud)

你知道我能做什么吗?

我收到以下错误:

$ sudo grep 12d1 /lib/udev/rules.d/40-usb_modeswitch.rules ATTRS{idVendor}=="12d1", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '%b/%k'"

grep: ATTRS{idVendor}==12d1,: No such file or directory
Run Code Online (Sandbox Code Playgroud)

的输出lsusb | grep Huawei是:

Bus 002 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
Run Code Online (Sandbox Code Playgroud)

小智 5

根据您的lsusb输出,我认为您在谈论由 T-Mobile NL 提供的华为 E352 USB 3G/4G 调制解调器。这很可能是 Windows 引起的问题。Windows 首先需要安装 USB 调制解调器驱动程序才能安装设备。华为(和其他公司)没有提供带有驱动程序的迷你 CD 和 USB 调制解调器,而是在他们的设备上安装了一些闪存。因此,该设备最初将作为闪存安装。然后,在 Windows 机器上,安装程序将安装调制解调器驱动程序并最终更改设备设置,以便下次将其识别为调制解调器。

对于 Linux 用户来说,这是令人困惑的,因为他们的系统也会首先识别闪存,而不是调制解调器。并且不需要闪存存储,因为 Linux 内核已经具有所有必需的驱动程序。我认为您不需要安装任何驱动程序。

你需要的是usb-modeswitch工具。从 Ubuntu 存储库安装它:

sudo apt-get install usb-modeswitch
Run Code Online (Sandbox Code Playgroud)

以下命令需要以 root 身份运行。所以要适当注意你在做什么!

连接调制解调器并找到华为的供应商 ID 和产品 ID:

lsusb | grep Huawei
Run Code Online (Sandbox Code Playgroud)

你会发现你已经知道的:

Bus 002 Device 003: ID 12d1:14fe Huawei Technologies Co., Ltd. Modem
Run Code Online (Sandbox Code Playgroud)

供应商 ID 为“12d1”,产品 ID 为“14fe”。 usb-modeswitchtar存档中有很多现成的配置文件。首先在存档中找到您设备的配置文件:

grep 12d1 /lib/udev/rules.d/40-usb_modeswitch.rules ATTRS{idVendor}=="12d1", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '%b/%k'"
Run Code Online (Sandbox Code Playgroud)

然后从存档中提取您的配置文件:

tar xf /usr/share/usb_modeswitch/configPack.tar.gz 12d1\:14fe
Run Code Online (Sandbox Code Playgroud)

并提出:

cat 12d1\14fe
Run Code Online (Sandbox Code Playgroud)

大概会说:

# T-Mobile NL (Huawei E352)
TargetVendor=0x12d1
TargetProductList="1506,150f,151d"
HuaweiNewMode=1
Run Code Online (Sandbox Code Playgroud)

最后更改华为设备上的设置:

usb_modeswitch -v 12d1 -p 14fe -c 12d1\:14fe
Run Code Online (Sandbox Code Playgroud)

现在闪存驱动程序将被分离并激活调制解调器驱动程序。要检查一切是否顺利再次运行lsusb

lsusb | grep Huawei
Run Code Online (Sandbox Code Playgroud)

如果一切顺利,您应该会看到另一个产品 ID。具有巨大可用性后果的微小更改。

在此之后,您可以像往常一样使用网络管理器设置您的 3G/4G 互联网连接。确保关闭 WiFi,因为 WiFi 和 GSM 不会同时运行。

如果您想跟踪您的数据使用情况,请安装该vnstat软件包。它是基于文本的,但提供了所有信息。您可能更喜欢 GUI,也可以添加vnstati包。

(非常感谢 Filip Vervloesem,他在荷兰 Linux 杂志 09/2017 问题中详细介绍了这个主题。)