这个调制解调器甚至在几个月前与Ubuntu 15.04(64位)一起工作。但是,在Ubuntu 15.10(64位)中无法连接。
我已经设置了一个移动宽带连接。我尝试了各种APN字符串,但以前从未出现过这个问题。
(调制解调器在Windows 10中工作正常,所以这绝对不是硬件问题。此外,Modem Manager GUI可以很好地检测到此设备。短信可以正常发送和接收。)
当我插入调制解调器时,它被正确检测到,Unity中显示一个CD图标并显示调制解调器的名称。几秒钟后, 我会收到一个消息框。
Mobile Broadband Network: you are registered on the home network
在网络图标附近。 当我尝试连接时,网络管理器小程序中的无线图标开始旋转,但最终无法连接,并显示一条消息告诉我我处于离线状态。 我从/var/log/syslog中找到的行是这样的,
NetworkManager[628]: <info> (ttyUSB1): device state change: ip-config
> -> failed (reason 'ip-config-unavailable') [70 120 5]
虽然我不确定这是否是相关的内容。
可以在这里找到更多来自/var/log/syslog的行。
更新1 - 2015年12月06日
正如一位友好的成员所指出的那样,尝试了nf_conntrack_pptp
模块的方法。
执行了以下命令:
$ lsmod | grep nf_conntrack_pptp | wc -l
0
$ sudo modprobe nf_conntrack_pptp
lsmod | grep nf_conntrack_pptp
nf_conntrack_pptp 20480 0
nf_conntrack_proto_gre 16384 1 nf_conntrack_pptp
nf_conntrack 106496 2 nf_conntrack_proto_gre,nf_conntrack_pptp
然后尝试了我的调制解调器,结果一样失败。日志中也没有明显的变化。
更新2 - 2015年12月06日
以root身份执行,
systemctl restart network-manager.service
屏幕上没有任何输出(终端)。
从上述点到尝试使用调制解调器连接的对应日志可以在这里找到。
更新3 - 2015年12月06日
安装了ofono
,然后再次尝试了调制解调器。
请点击这里查看日志。
更新4 - 2015年12月06日
再次以root身份执行,
systemctl restart network-manager.service
从上述点到尝试使用调制解调器连接的相应日志可以在这里找到。
更新5 - 2015年12月06日
在/etc/dbus-1/system.d/nm-dispatcher.conf
中将所有的"deny"更改为"allow"。
尝试连接。没有成功。
使用以太网连接进行了几次网络连接和断开连接。
然后执行sudo systemctl restart network-manager.service
。
拔出并重新插入调制解调器。
再次尝试连接。无法连接。
日志在这里。
更新6 - 2015年12月06日
已执行
sudo killall ModemManager; sudo ModemManager --debug 2>&1 | tee /tmp/modem.log.txt
并且
export NM_PPP_DEBUG=1
sudo NetworkManager --no-daemon 2>&1 | tee /tmp/nm.log.txt
由于多个错误,无法运行
mm-test.py
。在指定位置找到了该文件。从https://github.com/openshine/ModemManager/blob/master/test/mm-test.py获取。上述命令与Wiki中的命令有些不同。
日志文件在这里。
更新7 - 2015年12月07日
再次执行(在/lib/udev/rules.d/40-usb_modeswitch.rules建议更改并重新启动后)
sudo killall ModemManager; sudo ModemManager --debug 2>&1 | tee /tmp/modem.log.txt
和
sudo NM_PPP_DEBUG=1 /usr/sbin/NetworkManager --log-level=debug --no-daemon > /tmp/nm.log.txt
还包括/var/log/syslog
。
日志文件在这里。
更新8 - 2015年12月08日
最新的日志集在这里。
更新9 - 2015年12月08日
测试1
- 这次从一张Ubuntu 14.04 32位的DVD启动电脑。电脑一启动,就开始记录MM日志。
- 插入调制解调器。运行
lsusb
发现它被识别为一个19d2:1232设备,需要切换到一个19d2:2003设备。由于安装usb-modeswitch需要重新启动机器(因此会丢失DVD运行时的安装),我准备了一个自定义的切换文件,并通过命令行将调制解调器切换了(sudo usb_modeswitch -I -c 19d2:2003
)。 - 切换完成后,我收到通知说我正在使用移动宽带网络,并在网络管理器菜单中出现了一个新的宽带连接。
- 我按照通常的方式设置了上述连接(APN名称没有问题),连接自动建立。
- 我断开并弹出了调制解调器。
- 停止记录MM日志。
您可以在此处找到从会话开始到调制解调器弹出的完整 MM 日志和系统日志。
测试2
使用 Ubuntu 14.04 64 位 DVD 进行相同的测试。
日志可以在此处找到。
更新10 - 2015年12月09日
这次测试了wvdial
,发现如果以root身份运行wvdial
,我们可以建立一个成功的连接。
wvdial
的配置和日志,以及相应的系统日志在这里。
初步推测:该情况可能与相应用户的用户组有关。
但正如在这里所指出的:
使用所有这些工具进行拨号连接时,用户必须是"dip"和"dialout"组的成员,因此将所有需要通过拨号连接的用户添加到这些组中。
但我们可以发现,
$ groups masroor
masroor : masroor adm dialout cdrom sudo dip plugdev lpadmin sambashare family wireshark
所以,用户已经是指定组的成员。
现在,问题可能归结为以下两点之一:
1. 用户需要加入哪个附加组? 2. 我们如何以root身份运行移动宽带连接设置过程?(安全问题?)
更新11 - 2015年12月09日
wvdial
适用于USB3,但不适用于USB1。
请在此处找到syslog here。
还包括dmesg | grep tty > /tmp/dmesg.tty.txt
的输出。但是请注意文件开头附近的那四行?
更新12 - 2015年12月10日
在
/lib/udev/rules.d/77-mm-zte-port-types.rules
中注释掉第4行(SUBSYSTEM!="tty", GOTO="mm_zte_port_types_end"
)。重新启动我的机器。软断开电缆并插入调制解调器。
尝试连接。不成功。
syslog文件在这里。
更新13 - 2015年12月10日
出于绝望,为了看看是否有一些本地的变化影响了连接,我用Ubuntu 15.04和15.10的DVD测试了这台机器。
- 使用Xubuntu 15.04 64位DVD启动机器。连接成功,就像魔法一样。
- 使用Ubuntu 15.10 64位DVD启动机器。连接失败,就像之前一样。
15.04和15.10之间发生了什么?
真是令人沮丧。
更新14 - 2015年12月10日
按照答案的指示创建了一个新文件
/lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules
。重新启动了我的机器(或执行了
sudo udevadm control --reload
,实际上两种方法都尝试了)。插入了调制解调器。调制解调器被识别出来了。
$ lsusb Bus 001 Device 005: ID 19d2:2003 ZTE WCDMA Technologies MSM
软件断开了电缆,并尝试使用调制解调器进行连接。但是没有成功。
弹出了调制解调器。
syslog文件和创建的规则文件在这里。
更新15 - 2015年12月11日
将以下行添加到
/lib/udev/rules.d/40-usb_modeswitch.rules
文件中。# ZTE MF193E ATTR{idVendor}=="19d2", ATTR{idProduct}=="1232", RUN+="usb_modeswitch '%b/%k'"
保持
/lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules
文件不变。重新启动我的机器。插入调制解调器。
调制解调器被识别出来了。
Bus 001 Device 005: ID 19d2:2003 ZTE WCDMA Technologies MSM
软件断开连接并尝试连接。但是没有成功。
弹出调制解调器。
删除
/lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules
文件。重新启动并再次尝试整个过程。但是还是没有成功。
更新16 - 2015年12月11日
- 在
/lib/udev/rules.d/40-usb_modeswitch.rules
中仅保留一个1232规则,删除其他规则。 - 执行
sudo udevadm control --reload
。 - 插入调制解调器。
- 调制解调器被识别了。
总线001 设备005: ID 19d2:2003 ZTE WCDMA Technologies MSM
- 软件断开连接并尝试连接。不成功。
- 弹出调制解调器。
/lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules
留在原位?syslog 文件(完整的,我没有冒险遗漏任何重要部分)和提到的规则文件(40)在这里:here。
更新17 - 2015年12月11日
在
/lib/udev/rules.d/40-usb_modeswitch.rules
中注释掉了1232规则,并添加了一个2003规则。# ZTE MFxxx # 添加于2015年12月11日 ATTR{idVendor}=="19d2", ATTR{idProduct}=="2003", RUN+="usb_modeswitch '%b/%k'"
执行
sudo udevadm control --reload
命令。插入调制解调器。
调制解调器被识别为1232设备。我没有被要求尝试连接(据我所知,除非切换到2003,否则它不会注册到宽带网络)
Bus 001 Device 008: ID 19d2:1232 ZTE WCDMA Technologies MSM
弹出调制解调器。
syslog文件和提到的规则文件(40)在这里
更新18 - 2015年12月11日
将所有规则文件保持原始形式。
使用shell脚本每秒监视
lsusb
的输出,并将输出保存在时间戳文件中。插入调制解调器。(调制解调器首次出现在文件
lssuboutouput.Fri Dec 11 16:56:29 BDT 2015.txt
中)。从捕获的内容可以看出,它从一个1232设备切换到了一个2003设备。尝试连接,但未成功。
弹出调制解调器。
syslog文件、带有时间戳的lsusb
输出以及提到的规则文件可以在这里找到。
现在,您可能想要将syslog输出与时间戳进行匹配。
更新19 - 2015年12月11日
希望通过完全新的方向进行这项测试,以便隔离问题。
1. 保存在便携媒体中的文件 `/lib/udev/rules.d/40-usb-media-players.rules` 和 `/lib/udev/rules.d/77-mm-zte-port-types.rules`(来自Ubuntu 15.10机器)。 2. 使用Xubuntu 15.04 64位DVD启动机器。 3. 执行命令 `diff 77-mm-zte-port-types.rules /lib/udev/rules.d/77-mm-zte-port-types.rules > diff15.10and15.04_77-mm.txt`。第一个文件是从15.10保存的文件。 检查差异文件,没有找到 `idProduct` 1232 或 2003。 4. 执行命令 `diff 40-usb_modeswitch.rules /lib/udev/rules.d/40-usb_modeswitch.rules > diff15.10and15.04_40-usb.txt`。同样,第一个文件是从15.10保存的文件。 再次检查差异文件,没有找到 `idProduct` 1232 或 2003。 5. 插入调制解调器,调制解调器被识别为调制解调器。 `$ lsusb` `Bus 001 Device 008: ID 19d2:2003 ZTE WCDMA Technologies MSM` 6. 在设置移动宽带连接后可以轻松连接。 7. 弹出调制解调器。 8. 安装最新的USB_ModeSwitch。 `diff 40-usb_modeswitch.rules /lib/udev/rules.d/40-usb_modeswitch.rules` 现在返回NULL,如预期所示。 9. 执行命令 `sudo udevadm control --reload-rules`。 10. 插入调制解调器,调制解调器被识别为调制解调器。 `$ lsusb` `Bus 001 Device 008: ID 19d2:2003 ZTE WCDMA Technologies MSM` 11. 可以轻松连接。
我本可以尝试将MM和NM升级到Ubuntu 15.10的版本,只是为了看看会在哪个地方出问题。实际上我尝试过,但由于无休止的依赖问题而放弃了。
以上提到的所有差异文件在这里。
更新20 - 2015年12月12日
测试1
原始状态下的/lib/udev/rules
。
在本次会话中尚未插入调制解调器设备。
设置ModemManager进行调试,并设置udevadm捕获。
sudo udevadm monitor --e |& tee udevadm.update20.WITHOUT78.log
sudo killall ModemManager; sudo ModemManager --debug 2>&1 | tee MM.update20.WITHOUT78.log
将调制解调器插入并等待直到它显示已注册到宽带网络。
尝试连接但未成功。
弹出调制解调器。
整理日志文件。
测试2
使用/lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules
进行了上述测试的重复。
日志文件的名称是自解释的。
所有上述日志文件以及syslog和78规则文件都在这里。
我希望所有的日志文件都带有时间戳,以便更容易匹配。
更新21 - 2015年12月15日
- 根据建议更改了规则文件。
- 重新启动了我的机器。
- 插入调制解调器并尝试连接。但是没有成功。
规则文件和syslog
在这里。
更新22 - 2015年12月16日
如在一条评论中建议的那样,从http://kernel.ubuntu.com/~kernel-ppa/mainline/安装了各种内核,并在每个内核启动后尝试连接使用调制解调器。
4.2.8-040208-generic,失败。
4.1.15-040115-generic,失败。
4.0.9-040009-generic,失败。
因此,也许我们可以排除内核问题。
更新23 - 2016年2月16日
调制解调器在Ubuntu 16.04中开始正常工作。这个版本仍然是Alpha 1,但在我的笔记本电脑上运行良好。
nf_conntrack_pptp
的方法。似乎不起作用。请查看我的更新。 - Masroor