华为调制解调器不适用于16.04


10

Ubuntu 16.04无法识别我的Huawei 15caUSB调制解调器。

我怎样才能解决这个问题?


1
编辑您的问题并添加lsusb终端命令的输出。
飞行员

2
确实看起来像是一个问题,但是您有什么问题?
大卫·佛斯特

Answers:


11

这个命令对我有用。我只需要执行一次。

lsusb

记下供应商和产品ID。就我而言12d11f01分别是和。

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

3
从哪里来的,1f01我在上面的终端摘录中没有看到它
Kasun Siyambalapitiya,2016年

从lsusb输出。我发布的输出是在执行usb_modeswitch之后,在我的情况下将产品ID更改为14db。
艾美·德斯潘德

2
是的,它可以正常工作,但是我怎么只能一劳永逸地运行它呢?
X09

8

有关如何解决此问题的说明与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之前自动工作(当然,在应用了类似的修复程序之后)。
ov1d1u

是的,有办法。我在写答案。
飞行员

2

我今天有这个问题。我有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秒才能启动调制解调器,然后才能使用它。


永久解决了我的问题
Christopher Kikoti

同样在这里,这是如此容易,我什么也没学。:|
享受

0

这些解决方案均不适用于我的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文件夹中,这是我的移动提供商的名称)。


0

您要自动化吗?如果您插入调制解调器,则无需重新设置。

第一

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

稍等片刻,如果您检测到调制解调器并且可以用来连接到互联网,则此设置有效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.