![如何使用 usb.modeswtich 将我的 4G 加密狗从大容量存储模式转换为调制解调器模式?](https://linux22.com/image/937264/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20usb.modeswtich%20%E5%B0%86%E6%88%91%E7%9A%84%204G%20%E5%8A%A0%E5%AF%86%E7%8B%97%E4%BB%8E%E5%A4%A7%E5%AE%B9%E9%87%8F%E5%AD%98%E5%82%A8%E6%A8%A1%E5%BC%8F%E8%BD%AC%E6%8D%A2%E4%B8%BA%E8%B0%83%E5%88%B6%E8%A7%A3%E8%B0%83%E5%99%A8%E6%A8%A1%E5%BC%8F%EF%BC%9F.png)
运行 Ubuntu 20.04.2 LTS
我的华为 E3372 4G Dongle 无法与 Ubuntu 正确配合使用。插入后,我可以看到文件driver.exe
可用(我安装了 wine,以便可以运行 .exe 文件),并且它似乎安装正确。
我仍然看不到我的连接,并且使用时lsusb
我注意到该设备已被识别但处于“大容量存储模式”。
我知道 usb.modeswitch 可以帮助我改变这一点,但是在阅读了相互矛盾的信息后,我不明白我该怎么做。
我找不到针对我的 Ubuntu 版本的最新答案
我是 Linux 和 Ubuntu 的菜鸟,但我可以按照说明操作。我在网上找不到解决这个问题的方法。我尝试的所有方法似乎都不起作用。
谢谢
更新 #1
社区成员 @heynnema 非常乐于助人,谢谢你
它是不同的调制解调器,但型号完全相同,华为 E3372h lsusb 输出:
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 004: ID 03f0:3841 HP, Inc
Bus 008 Device 005: ID 1a2c:2124 China Resource Semico Co., Ltd
Bus 008 Device 017: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 008 Device 019: ID 12d1:14db Huawei Technologies Co., Ltd. E353/E3131
Bus 008 Device 016: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 008 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub""
rules.文件仅包含以下内容:
# Huawei E3372
ATTR{idVendor}=="12d1", ATTR{idProduct}=="14db",
RUN+=“usb_modeswitch'/%k'”
更新 #2
# Huawei E3372
ATTR{idVendor}=="12d1", ATTR{idProduct}=="14db", RUN+="usb_modeswitch '/%k'"
答案1
如果我们看看/lib/udev/rules.d/40-usb_modeswitch.rules,我们看到华为通信设备的以下规则......
# Generic entry for most Huawei devices, excluding Android phones
ATTRS{idVendor}=="12d1", ATTRS{manufacturer}!="Android", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '%b/%k'"
# Huawei ME909u-521 (MBIM, dummy config)
ATTR{idVendor}=="12d1", ATTR{idProduct}=="1573", RUN+="usb_modeswitch '/%k'"
# Huawei ME906, ME909 (MBIM, dummy config)
ATTR{idVendor}=="12d1", ATTR{idProduct}=="15c1", RUN+="usb_modeswitch '/%k'"
您的特定华为 E3372 设备未被看到。
将华为设备插入 USB 端口后,执行lsusb | grep -i 12d1
,您将看到包含 的输出12d1:xxxx
,它是xxxxx我们关心的数字。
笔记: 如果xxxxx那么是 1573 或 15c1停止这里。您的系统应该已经识别您的华为设备。
我们需要在以下位置创建一个新的 .rules 文件/etc/udev/rules.d/41-huawei_e3372.rules包含:
# Huawei E3372
ATTR{idVendor}=="12d1", ATTR{idProduct}=="xxxx", RUN+="usb_modeswitch '/%k'"
并将 xxxx 更改为我们从前一个lsusb
命令中获得的数字。
完成后文件应如下所示...
-rw-r--r-- 1 root root 42K Apr 2 15:46 41-huawei_e3372.rules
笔记:chmod
或chown
如果需要。
您可能需要重新启动,但如果您只是尝试移除/插入华为设备,它可能会在不重新启动的情况下看到它。您已完成。
笔记:请参阅man usb_modeswitch_dispatcher
以了解更多信息。