![未检测到华为 USB 4G 调制解调器](https://linux22.com/image/1055993/%E6%9C%AA%E6%A3%80%E6%B5%8B%E5%88%B0%E5%8D%8E%E4%B8%BA%20USB%204G%20%E8%B0%83%E5%88%B6%E8%A7%A3%E8%B0%83%E5%99%A8.png)
我的华为调制解调器有问题。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
$
你知道我能做什么吗?
我收到以下错误:
$ 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
的输出lsusb | grep Huawei
为:
Bus 002 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
答案1
从您的lsusb
输出来看,我猜您说的是 T-Mobile NL 提供的华为 E352 USB 3G/4G 调制解调器。这很可能是 Windows 引起的问题。Windows 首先需要安装 USB 调制解调器驱动程序才能安装该设备。华为(和其他公司)没有随 USB 调制解调器一起提供带有驱动程序的迷你 CD,而是在其设备上安装了一些闪存。因此,该设备最初将作为闪存安装。然后,在 Windows 计算机上,安装程序将安装调制解调器驱动程序,最后更改设备设置,以便下次将其识别为调制解调器。
对于 Linux 用户来说,这很令人困惑,因为他们的系统也会首先识别闪存,而不是调制解调器。而且由于 Linux 内核已经具备所有必要的驱动程序,因此不需要闪存。我认为您不需要安装任何驱动程序。
您需要的是usb-modeswitch
工具。从 Ubuntu 存储库安装它:
sudo apt-get install usb-modeswitch
以下命令需要以 root 身份运行。因此,请特别注意您正在执行的操作!
连接您的调制解调器并找到您的华为的供应商 ID 和产品 ID:
lsusb | grep Huawei
你会发现你已经知道的内容:
Bus 002 Device 003: ID 12d1:14fe Huawei Technologies Co., Ltd. Modem
供应商 ID 为“12d1”,产品 ID 为“14fe”。
usb-modeswitch
有很多现成的配置文件柏油-archive。首先在档案中找到您设备的配置文件:
grep 12d1 /lib/udev/rules.d/40-usb_modeswitch.rules ATTRS{idVendor}=="12d1", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '%b/%k'"
然后从档案中提取您的配置文件:
tar xf /usr/share/usb_modeswitch/configPack.tar.gz 12d1\:14fe
并提出:
cat 12d1\14fe
它可能会说:
# T-Mobile NL (Huawei E352)
TargetVendor=0x12d1
TargetProductList="1506,150f,151d"
HuaweiNewMode=1
最后更改华为设备上的设置:
usb_modeswitch -v 12d1 -p 14fe -c 12d1\:14fe
现在闪存驱动器驱动程序将被分离,调制解调器驱动器将被激活。要检查一切是否顺利,请lsusb
再次运行:
lsusb | grep Huawei
如果一切顺利,您应该会看到另一个产品 ID。微小的更改会对可用性产生巨大影响。
此后,您可以像往常一样使用网络管理器设置 3G/4G 互联网连接。请确保关闭 WiFi,因为 WiFi 和 GSM 不会同时运行。
如果您想跟踪数据使用情况,请安装该vnstat
软件包。它基于文本,但提供所有信息。如果您更喜欢 GUI,也可以添加该vnstati
软件包。
(非常感谢 Filip Vervloesem 在荷兰 Linux 杂志 2017 年 9 月刊中详细报道了这个主题。)
答案2
答案3
升级到 Debian Stretch(9.0)后我遇到了同样的问题。
修复如下:
提取模式切换配置:
$ sudo tar xf /usr/share/usb_modeswitch/configPack.tar.gz 12d1\:14fe -C /usr/share/usb_modeswitch/
在文件 /lib/udev/rules.d/40-usb_modeswitch.rules 中添加行:
ATTR{idVendor}=="12d1", ATTR{idProduct}=="14fe", RUN+="usb_modeswitch '/%k'"
并到文件 /lib/udev/rules.d/77-mm-usb-device-blacklist.rules:
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1506", ENV{ID_MM_DEVICE_IGNORE}="1"
重新启动并且 dongle0 被 asterisk 检测到
答案4
我使用了回答上面让 ModemManager 找到我的华为 E173 USB 加密狗。这正是我在 CentOS 8 中所做的:
# dnf install ModemManager (+enable the service, reboot)
# mmcli -L
No modems were found
# lsusb | grep Huawei
Bus 003 Device 003: ID 12d1:1446 Huawei Technologies Co., Ltd. HSPA modem
# dnf install usb_modeswitch
# usb_modeswitch -v 12d1 -p 1446 -c "/usr/share/usb_modeswitch/12d1:1446"
# lsusb | grep Huawei
Bus 003 Device 004: ID 12d1:1436 Huawei Technologies Co., Ltd. Broadband stick
# mmcli -L
/org/freedesktop/ModemManager1/Modem/0 [huawei] E173