Mas*_*oor 13 network-manager networking modem usb-modem mobile-broadband
我有一个中兴 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
Run Code Online (Sandbox Code Playgroud)
靠近网络图标。
当我尝试连接时,网络管理器小程序中的无线图标启动了这些离心运动,但最终无法连接,并且一条消息告诉我我处于离线状态。
我可以隔离的线路/var/log/syslog是这样的,
NetworkManager[628]: <info> (ttyUSB1): device state change: ip-config
> -> failed (reason 'ip-config-unavailable') [70 120 5]
Run Code Online (Sandbox Code Playgroud)
不过,我不确定这是否相关。
/var/log/syslog可以在此处找到更多行
。
更新 1 - 2015 年 12 月 6 日
正如一位成员所指出的那样,尝试了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
Run Code Online (Sandbox Code Playgroud)
然后尝试了我的调制解调器,同样失败。日志中也没有明显的变化。
更新 2 - 2015 年 12 月 6 日
以root身份执行,
systemctl restart network-manager.service
Run Code Online (Sandbox Code Playgroud)
屏幕(终端)上没有输出。
可以在此处找到从上述点到尝试使用调制解调器连接的相应日志。
更新 3 - 2015 年 12 月 6 日
安装ofono,然后再次尝试调制解调器。
请在此处查看日志。
更新 4 - 2015 年 12 月 6 日
再次以 root 身份执行,
systemctl restart network-manager.service
Run Code Online (Sandbox Code Playgroud)
可以在此处找到从上述点到尝试使用调制解调器连接的相应日志。
更新 5 - 2015 年 12 月 6 日
将所有“拒绝”更改为“允许” /etc/dbus-1/system.d/nm-dispatcher.conf。
尝试连接。没运气。
一些网络连接和断开以太网连接。
紧随其后sudo systemctl restart network-manager.service。
调制解调器拔出并插入。
再次尝试连接。不连接。
日志在这里。
更新 6 - 2015 年 12 月 6 日
已执行
sudo killall ModemManager; sudo ModemManager --debug 2>&1 | tee /tmp/modem.log.txt
Run Code Online (Sandbox Code Playgroud)
和
export NM_PPP_DEBUG=1
sudo NetworkManager --no-daemon 2>&1 | tee /tmp/nm.log.txt
Run Code Online (Sandbox Code Playgroud)
mm-test.py由于多个错误而无法运行。确实在指定的位置找到了文件。从https://github.com/openshine/ModemManager/blob/master/test/mm-test.py得到这个。
以上命令与维基中的命令有些不同。
日志文件在这里。
更新 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
Run Code Online (Sandbox Code Playgroud)
和
sudo NM_PPP_DEBUG=1 /usr/sbin/NetworkManager --log-level=debug --no-daemon > /tmp/nm.log.txt
Run Code Online (Sandbox Code Playgroud)
将/var/log/syslog被包括在内。
日志文件在这里。
更新 8 - 2015 年 12 月 8 日
更新的日志集在这里。
更新 9 - 2015 年 12 月 8 日
测试 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 日志和系统日志。
测试 2
使用 Ubuntu 14.04 64 位 DVD 进行相同测试。
日志可以在这里找到。
更新 10 - 2015 年 12 月 9 日
这次测试wvdial发现,如果wvdial以root身份运行,我们就成功连接了。
在wvdialconf以日志和系统日志对应的是这里
初步猜想:情况可能与对应用户的用户组有关。
但正如这里所指出的,
使用所有这些工具,要建立拨号连接,用户必须是“dip”和“dialout”组的成员,因此将所有应该通过拨号连接的用户放入这些组。
但是我们可以发现,
$ groups masroor
masroor : masroor adm dialout cdrom sudo dip plugdev lpadmin sambashare family wireshark
Run Code Online (Sandbox Code Playgroud)
因此,用户已经是指定组的成员。
现在,也许问题归结为以下任一点,
更新 11 - 2015 年 12 月 9 日
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。
重新启动了我的机器。软断开电缆并插入调制解调器。
尝试连接。不成功。
系统日志文件在这里。
更新 13 - 2015 年 12 月 10 日
出于绝望,为了查看是否有一些本地更改影响了连接,使用 Ubuntu 15.04 和 15.10 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
Run Code Online (Sandbox Code Playgroud)软断开电缆并尝试使用调制解调器连接。不成功。
弹出调制解调器。
机器挂了一次,是随机事件吗?我的机器通常不会一年挂一次。
系统日志文件和创建的规则文件在这里。
更新 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'"
Run Code Online (Sandbox Code Playgroud)/lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules保持文件完好无损。
重新启动了我的机器。插入调制解调器。
调制解调器被识别。
Bus 001 Device 005: ID 19d2:2003 ZTE WCDMA Technologies MSM
Run Code Online (Sandbox Code Playgroud)软断开电缆并尝试连接。不成功。
弹出调制解调器。
已删除/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
Run Code Online (Sandbox Code Playgroud)软断开电缆并尝试连接。不成功。
弹出调制解调器。
但是我们上面不是测试了默认系统吗?你是不是想离开/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'"
Run Code Online (Sandbox Code Playgroud)执行sudo udevadm control --reload。
插入调制解调器。
调制解调器被识别为1232设备。我没有尝试连接(据我所知,除非切换发生在 2003 年,否则它不会注册到宽带网络)
Bus 001 Device 008: ID 19d2:1232 ZTE WCDMA Technologies MSM
Run Code Online (Sandbox Code Playgroud)弹出调制解调器。
syslog 文件和提到的规则文件 (40) 在这里
更新 18 - 2015 年 12 月 11 日
将所有规则文件置于其原始形式。
lsusb使用 shell 脚本每隔一秒观察一次输出。在时间戳文件中捕获的输出。
插入调制解调器。(调制解调器首先出现在文件中
lssuboutouput.Fri Dec 11 16:56:29 BDT 2015.txt)。正如我们从捕获中发现的那样,很明显它从 1232 设备切换到 2003 设备。
尝试连接。不成功。
弹出调制解调器。
系统日志文件、时间戳lsusb输出和提到的规则文件在这里。
现在,您可能希望将 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 文件显示没有idProduct1232 或 2003。
执行diff 40-usb_modeswitch.rules
/lib/udev/rules.d/40-usb_modeswitch.rules >
diff15.10and15.04_40-usb.txt。同样,第一个文件来自 15.10 保存的文件。
同样,对 diff 文件的检查显示没有idProduct1232 或 2003。
插入调制解调器。调制解调器被识别为调制解调器。
$ lsusb
Bus 001 Device 008: ID 19d2:2003 ZTE WCDMA Technologies MSM
Run Code Online (Sandbox Code Playgroud)设置移动宽带连接后可以轻松连接。
弹出调制解调器。
安装了最新的 USB_ModeSwitch。
diff 40-usb_modeswitch.rules /lib/udev/rules.d/40-usb_modeswitch.rules
Run Code Online (Sandbox Code Playgroud)
现在按预期返回 NULL。
执行sudo udevadm control --reload-rules。
插入调制解调器。调制解调器被识别为调制解调器。
$ lsusb
Bus 001 Device 008: ID 19d2:2003 ZTE WCDMA Technologies MSM
Run Code Online (Sandbox Code Playgroud)可以轻松连接。
我可以尝试将 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
Run Code Online (Sandbox Code Playgroud)插入调制解调器并等到它说它已在宽带网络中注册。
尝试连接失败。
弹出调制解调器。
打包日志文件。
测试 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,但在我的笔记本电脑上运行良好。
| 归档时间: |
|
| 查看次数: |
4475 次 |
| 最近记录: |