我正在使用 Trisquel 7.0 LTS 和移动宽带 (Net-Setter) 建立连接。
以下状态 (1-4) 显示了不同的条件/情况,以便清楚地理解问题。
状态 1:-
安装 Trisquel 7.0 LTS 后,一切正常。我的调制解调器检测如下(lsusb
输出):
$ lsusb
Bus 001 Device 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)
Bus 001 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 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
并且它也可以通过 nm-applet 检测或使用nmcli
如下方式检测:
$ nmcli dev list
GENERAL.DEVICE: ttyUSB2
GENERAL.TYPE: gsm
GENERAL.VENDOR: HUAWEI Technology
GENERAL.PRODUCT: HUAWEI Mobile
状态 2:-
但我最近跑了一个安装脚本来自 Mobile Partner,它没有正确安装,因此我还运行了卸载脚本不幸的是,尽管卸载了,现在我的调制解调器无法工作(正常检测)。
现在检测和新的(当前)输出发生了变化lsusb
:
$ lsusb
Bus 001 Device 003: ID 12d1:1446 Huawei Technologies Co., Ltd. E1552/E1800/E173 (HSPA modem)
Bus 001 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 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
在这里你可以看到区别是——
早些时候:
Bus 001 Device 004: ID 12d1:1436 华为技术有限公司 E173 3G 调制解调器(调制解调器模式)
现在:
总线 001 设备 003:ID 12d1:1446 华为技术有限公司 1552/E1800/E173(HSPA 调制解调器)
现在 nm-applet 中未检测到调制解调器(nmcli 也未列出)。
那么,如何将设置重置为默认值,因为默认 Trisquel 对我的设备没有问题。换句话说,哪些文件受到此新行为的影响以及如何恢复到之前的情况? (否则我必须重新安装整个操作系统!)
状态3:-
我编写了一个名为 12d1:1446 的文件,/etc/usb_modeswitch.d/
其下面是:
默认供应商= 0x12d1 默认产品=0x1446 MessageContent =“55534243123456780000000000000011062000000100000000000000000000”
我通过命令运行它:
sudo usb_modeswitch -I -W -c /etc/usb_modeswitch.d/12d1\:1446
哪个工作正常并且原因lsusb
改变了
从:
总线 001 设备 003:ID 12d1:1446 华为技术有限公司 E1552/E1800/E173(HSPA 调制解调器)
回到:
Bus 001 Device 004: ID 12d1:1436 华为技术有限公司 E173 3G 调制解调器(调制解调器模式)
因此它将被网络管理器检测到;我将能够连接。
状态 4:(以下这个答案) --
我已经编写了名为99-mymodem.rules
以下内/etc/rules.d
容的文件:
ACTION=="add", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="/home/pandya/usbmode"
并/home/pandya/usbmode
包含:
#!/bin/bash
sudo usb_modeswitch -I -W -c /etc/usb_modeswitch.d/12d1\:1446
因此,当我插入调制解调器时,99-mymodem.rules
运行/home/pandya/usbmode
并设法将我的调制解调器检测为:
Bus 001 Device 004: ID 12d1:1436 华为技术有限公司 E173 3G 调制解调器(调制解调器模式)
最终我可以通过网络管理器( )成功连接调制解调器nm-applet
。
结论:-
然而,目前的情况(状态4) 或者是我正在寻找的东西,但不完全是 (状态1)因为每次插入调制解调器时我们都会通过 udev-rule 和 usb-modeswitch。
换句话说为什么我必须usb_modeswitch
现在?(以前没有必要,另外,如果我从 Live DVD 启动并选择尝试操作系统而不安装,调制解调器无需手动即可正常工作usb_modeswitch
)。
因此(自从我写了这个问题)我的目标是恢复到状态1。
答案1
尝试 udev 规则,每次插入调制解调器时都会启动一个脚本。
ACTION=="add", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="UUUU", RUN+="/home/user/script.sh"
将 XXXX 和 UUUU 替换为供应商和 id 产品,将规则放入 /etc/udev/rules.d/99-yourrule.rules 并重新启动或重新启动 udev。必须工作
答案2
请确保/etc/usb_modeswitch.conf
您已在配置文件中设置
DisableSwitching=0
否则,自动模式切换将被全局禁用。
答案3
最后(最终),我发现了导致 usb_mode 自动切换问题的原因。
文件40-usb_modeswitch.rules
下/lib/udev/rules.d
包含:
# 华为,较新的调制解调器 ATTR{idVendor}=="12d1", ATTR{idProduct}=="1446", RUN+="usb_modeswitch '%b/%k'"
因此,我的调制解调器必须自动usb_modeswitch
由40-usb_modeswitch.rules
.
但问题是/usr/sbin/usb_modeswitch
&/usr/sbin/usb_modeswitch_dispatcher
未设置chmod +x
(允许执行文件)。可能安装脚本(有问题所附)已修改属性。
虽然手动sudo usb_modeswitch -I -W -c /etc/usb_modeswitch.d/12d1\:1446
(有问题解释)我sudo chmod +x /usr/sbin/usb_modeswitch
但/usr/sbin/usb_modeswitch_dispatcher
仍然没有执行权限。
所以现在我sudo chmod +x /usr/sbin/usb_modeswitch_dispatcher
就快完成了!
之后我删除了中所述的所有手动切换过程状态4(参见问题)现在我的调制解调器成功检测为:
Bus 001 Device 004: ID 12d1:1436 华为技术有限公司 E173 3G 调制解调器(调制解调器模式)
换句话说,40-usb_modeswitch.rules
工作正常。
最后我又回到了状态1。 [解决了]
答案4
我处理过同样的问题,并且接受的解决方案对我不起作用。如果您有 Raspbian 发行版,这里讨论了一个已知的错误:https://github.com/RPi-Distro/repo/issues/47。
解决办法是:
- 编辑
/lib/udev/rules.d/40-usb_modeswitch.rules
- 编辑
ATTRS{idVendor}=="12d1", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '%b/%k'"
,更改'%b/%k'
为'%k'
.
在 Raspbian 8 和华为 EC315 上进行测试。