Answers:
这个命令对我有用。我只需要执行一次。
lsusb
记下供应商和产品ID。就我而言12d1
,1f01
分别是和。
Bus 002 Device 003: ID 05c8:038f Cheng Uei Precision Industry Co., Ltd (Foxlink)
Bus 002 Device 002: ID 0438:7900 Advanced Micro Devices, Inc.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 0bda:b008 Realtek Semiconductor Corp.
Bus 001 Device 003: ID 12d1:14db Huawei Technologies Co., Ltd. E353/E3131
Bus 001 Device 002: ID 0438:7900 Advanced Micro Devices, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
然后执行一次。
sudo usb_modeswitch -v 12d1 -p 1f01 -J
1f01
我在上面的终端摘录中没有看到它
有关如何解决此问题的说明与14.04略有不同。
可能不需要其中一个步骤,但是这是我的工作方式:
vi /lib/udev/rules.d/40-usb_modeswitch.rules
并添加以下行:
ATTR{idVendor}=="12d1", ATTR{idProduct}=="15ca", RUN+="usb_modeswitch '%b/%k'"
然后:
sudo touch /etc/usb_modeswitch.d/12d1:15ca
运行以下命令:
sudo usb_modeswitch -J -v 0x12d1 -p 0x15ca
现在,您应该在可用的网络连接下看到它,而在lsusb下,它显示为另一个产品编号:
Bus 003 Device 008: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
您可能必须重新引导或卸下调制解调器,然后重新插入几次才能使其正常工作。还记得将其添加到编辑连接/添加移动宽带连接中。
sudo usb_modeswitch -J -v 0x12d1 -p 0x15ca
每次连接调制解调器时执行?我记得它曾经在16.04之前自动工作(当然,在应用了类似的修复程序之后)。
我今天有这个问题。我有2台装有Ubuntu 16.04的计算机,12d7:1505
调制解调器工作正常。
我又买了一个,如果没有
sudo usb_modeswitch -v 12d1 -p 1506 -J
命令。
我用另一条udev
规则修复了它。
添加/etc/udev/rules.d/huawei.rules
具有以下内容的文件:
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1505", RUN+="/usr/sbin/usb_modeswitch -v 12d1 -p 1506 -J"
然后重新启动,或运行sudo udevadm control -R
并插入调制解调器。您需要等待大约30秒才能启动调制解调器,然后才能使用它。
这些解决方案均不适用于我的16.04。(udev规则在14.04上运行良好)。
我的意思是,有时候确实可以,但是很少。我测试了这些手动命令
usb_modeswitch -v 12d1 -p 15ca -V 12d1 -P 1506 -M "55534243123456780000000000000011062000000100000000000000000000"
和
/usr/sbin/usb_modeswitch -J -v 0x12d1 -p 0x15ca
而且它们确实可以工作,但即使是手工输入也不是每次都能工作。在超过一半的情况下,该设备仍被列为“大容量存储”。
:(
因此,我不得不使用一种非常肮脏的解决方案:我将后者添加到root的crontab中,以每10秒运行一次。我知道这很荒谬,但是在这种情况下我想不出更好的办法。如果该设备被列为大容量存储,则该命令将起作用(如果该设备已经变成调制解调器,则它将退出,并显示一条消息“未找到默认模式下的设备。无所事事。再见!”),因此该命令不会干扰调制解调器正常工作。
这很愚蠢,但是如果有人要使用它,这是我的crontab条目:
* * * * * /usr/sbin/usb_modeswitch -J -v 0x12d1 -p 0x15ca > /dev/null 2>&1
* * * * * sleep 10; /usr/sbin/usb_modeswitch -J -v 0x12d1 -p 0x15ca > /dev/null 2>&1
* * * * * sleep 20; /usr/sbin/usb_modeswitch -J -v 0x12d1 -p 0x15ca > /dev/null 2>&1
* * * * * sleep 30; /usr/sbin/usb_modeswitch -J -v 0x12d1 -p 0x15ca > /dev/null 2>&1
* * * * * sleep 40; /usr/sbin/usb_modeswitch -J -v 0x12d1 -p 0x15ca > /dev/null 2>&1
* * * * * sleep 50; /usr/sbin/usb_modeswitch -J -v 0x12d1 -p 0x15ca > /dev/null 2>&1
设备会在10或20秒后开始工作(如果命令必须运行两次-大多数情况下)。
我也将此添加到我的/ etc / fstab中,以防止在插入后不久挂载USB大容量存储器的尝试。这样可以防止通常在插入CD时显示“打开文件”窗口。
/dev/sr0 on /media/username/PLAY\ ONLINE iso9660 noauto
(必须在安装设备后根据安装命令显示的内容调整安装位置-我的安装在PLAY ONLINE文件夹中,这是我的移动提供商的名称)。
您要自动化吗?如果您插入调制解调器,则无需重新设置。
第一
sudo nano /etc/usb_modeswitch.conf
复制此代码
# HUAWEI E3131
DefaultVendor=0x12d1
DefaultProduct=0x15ca
TargetVendor=0x12d1
TargetProduct=0x1506
MessageContent="55534243123456780000000000000a11062000000000000100000000000000"
保存并在终端上执行
sudo usb_modeswitch -c /etc/usb_modeswitch.conf
稍等片刻,如果您检测到调制解调器并且可以用来连接到互联网,则此设置有效。
lsusb
终端命令的输出。