我有一个运行良好的中兴MF-193E调制解调器。一年多以前,当我购买此调制解调器时,它开箱即用。现在,随着Ubuntu版本的发展,对我来说事情变得越来越困难。
这个调制解调器甚至在Ubuntu 15.04(64位)上工作了几个月。现在,在Ubuntu 15.10(64位)中,它无法连接。
我已经建立了移动宽带连接。我已经为APN尝试了各种字符串,但这以前不是问题。
(调制解调器在Windows 10中可以正常工作,因此,这根本不是硬件问题。而且,调制解调器管理器GUI可以很好地检测到此设备。可以毫无问题地发送和接收SMS。)
当我插入调制解调器时,可以正常检测到它,并在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-十二月06 2015
正如一种成员指出的那样,尝试了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-十二月06 2015
以root身份执行,
systemctl restart network-manager.service
屏幕(端子)上无输出。
可以在此处找到从以上几点到尝试使用调制解调器进行连接的相应日志。
更新3-2015年12月6日
安装ofono
,然后再次尝试调制解调器。
请在此处查看日志。
更新4-十二月06 2015
再次以root身份执行,
systemctl restart network-manager.service
可以在此处找到从以上几点到尝试使用调制解调器进行连接的相应日志。
更新5-十二月06 2015
在中将所有“拒绝”更改为“允许” /etc/dbus-1/system.d/nm-dispatcher.conf
。
尝试连接。没运气。
一些网络通过以太网连接进行连接和断开连接。
其次是sudo systemctl restart network-manager.service
。
调制解调器插入并插入。
尝试再次连接。无法连接。
日志在这里。
更新6-十二月06 2015
已执行
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月7日
再次执行(在建议的更改/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-十二月08 2015
更新的日志集在这里。
更新9-十二月08 2015
测试1
这次是从Ubuntu 14.04 32位DVD启动计算机的。一旦计算机启动,就开始捕获MM日志。
插入调制解调器。
lsusb
表示已将其识别为19d2:1232设备,需要将其切换到19d2:2003设备。由于安装usb-modeswitch需要重新启动机器(因此会导致DVD运行丢失安装),因此我准备了一个自定义开关文件,并从命令行(sudo usb_modeswitch -I -c 19d2:2003
)切换了调制解调器。切换完成后,我被告知正在接通电源,
Mobile Broadband Network
并且在网络管理器菜单中看到“新宽带连接”。我以通常的方式设置了上述连接(APN名称不是问题),并自动建立了连接。
我断开连接并弹出了调制解调器。
停止捕获MM日志。
在此处可以找到会话开始到调制解调器弹出的完整MM日志和syslog 。
测试2
与Ubuntu 14.04 64位DVD相同的测试。
日志可以在这里找到。
更新10-十二月09 2015
这次进行了测试,wvdial
发现如果wvdial
以root身份运行,我们将获得成功的连接。
在wvdial
conf以日志和系统日志对应的是这里
主要推测:这种情况可能与相应用户的用户组有关。
但正如这里所指出的,
使用所有这些工具,要建立拨号连接,用户必须是“ dip”和“ dialout”组的成员,因此应将所有应该通过拨号连接的用户置于这些组中。
但正如我们所发现的
$ groups masroor
masroor : masroor adm dialout cdrom sudo dip plugdev lpadmin sambashare family wireshark
因此,用户已经是指定组的成员。
现在,问题可能归结为以上两点,
- 用户需要成为哪个附加组?
- 我们如何以root身份运行移动宽带连接设置过程?(安全问题?)
更新11-十二月09 2015
wvdial
与USB3工作,它不与USB1工作。
请在此处找到系统日志。
还包括的输出dmesg | grep tty > /tmp/dmesg.tty.txt
。但是,看到文件开头附近的那四行吗?
更新12-2015年12月10日
在中注释掉第4行(
SUBSYSTEM!="tty", GOTO="mm_zte_port_types_end"
)/lib/udev/rules.d/77-mm-zte-port-types.rules
。重新启动我的机器。软断开电缆连接,然后插入调制解调器。
试图连接。不成功。
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
。重新启动并再次尝试整个过程。再次失败。
syslog文件(完整,我没有遗漏任何重要部分的风险)和此处提到的规则文件(40)。
更新16-2015年12月11日
只留了一个1232规则
/lib/udev/rules.d/40-usb_modeswitch.rules
,删除了另一个。已执行
sudo udevadm control --reload
。插入调制解调器。
调制解调器被识别。
Bus 001 Device 005: ID 19d2:2003 ZTE WCDMA Technologies MSM
软断开电缆并尝试连接。不成功。
弹出调制解调器。
但是我们是否没有测试上面的默认系统?您是要留/lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules
在原地吗?
syslog文件(完整,我没有承担丢失任何重要部分的风险),此处提到的规则文件(40)
更新17-2015年12月11日
在中注释掉了1232条规则
/lib/udev/rules.d/40-usb_modeswitch.rules
,为2003年添加了一条。# ZTE MFxxx # Added on December 11 2015 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日
将所有规则文件放入其原始形式。
lsusb
使用shell脚本每秒观看一次输出。在时间戳文件中捕获的输出。插入调制解调器。(调制解调器首先出现在文件中
lssuboutouput.Fri Dec 11 16:56:29 BDT 2015.txt
)。从这些捕获中我们可以发现,很明显它是从1232设备切换到2003设备。试图连接。不成功。
弹出调制解调器。
此处lsusb
是syslog文件,带有时间戳的输出和提到的规则文件。
现在,您可能需要将syslog输出与时间戳进行匹配。
更新19-2015年12月11日
希望以我能够隔离问题的全新方向进行此测试。
保存在便携式媒体中(
/lib/udev/rules.d/40-usb-media-players.rules
并/lib/udev/rules.d/77-mm-zte-port-types.rules
从Ubuntu 15.10计算机下载)。使用Xubuntu 15.04 64位DVD引导计算机。
已执行
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中保存的文件。检查diff文件显示没有
idProduct
1232或2003。已执行
diff 40-usb_modeswitch.rules /lib/udev/rules.d/40-usb_modeswitch.rules > diff15.10and15.04_40-usb.txt
。同样,第一个文件来自15.10中保存的文件。同样,检查diff文件显示没有
idProduct
1232或2003。插入调制解调器。调制解调器被识别为调制解调器。
$ lsusb Bus 001 Device 008: ID 19d2:2003 ZTE WCDMA Technologies MSM
建立移动宽带连接后即可轻松连接。
弹出调制解调器。
安装了最新的USB_ModeSwitch。
diff 40-usb_modeswitch.rules /lib/udev/rules.d/40-usb_modeswitch.rules
现在按预期返回NULL。
已执行
sudo udevadm control --reload-rules
。插入调制解调器。调制解调器被识别为调制解调器。
$ lsusb Bus 001 Device 008: ID 19d2:2003 ZTE WCDMA Technologies MSM
可以随时连接。
我本来可以尝试将MM和NM升级到Ubuntu 15.10的,只是看它在哪里损坏。我实际上尝试过,但是由于无尽的依赖问题而放弃了。
上面提到的所有diff文件都在这里。
更新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通用,失败。
4.1.15-040115-通用失败
4.0.9-040009通用,失败。
因此,也许可以排除内核问题。
更新23-2016年2月16日
调制解调器已在Ubuntu 16.04中开始运行。此版本仍在Alpha 1中,但在我的笔记本电脑上可以正常工作。