如何使用 usb.modeswtich 将我的 4G 加密狗从大容量存储模式转换为调制解调器模式?

如何使用 usb.modeswtich 将我的 4G 加密狗从大容量存储模式转换为调制解调器模式?

运行 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

笔记chmodchown如果需要。

您可能需要重新启动,但如果您只是尝试移除/插入华为设备,它可能会在不重新启动的情况下看到它。您已完成。

笔记:请参阅man usb_modeswitch_dispatcher以了解更多信息。

相关内容