问题描述
当我用 12.04 将我的 3G USB 调制解调器连接到我的笔记本电脑时,Network-Manager 中没有任何显示。此调制解调器在 11.10 中工作,调制解调器在 Network-Manager 中显示,但在 12.04 中不显示!
这是 lsusb
和 usb-devices
在两台机器上的输出,一台是 11.10,另一台是 12.04:
Ubuntu-11.10:
$ lsusb
Bus 002 Device 009: ID 1c9e:6061
$ usb-devices
T: Bus=02 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#= 9 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1c9e ProdID=6061 Rev=00.00
S: Manufacturer=3G USB Modem
S: SerialNumber=000000000002
C: #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
Ubuntu-12.04:
$ lsusb
Bus 002 Device 003: ID 1c9e:6061 OMEGA TECHNOLOGY WL-72B 3.5G MODEM
$ usb-devices
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1c9e ProdID=6061 Rev=00.00
S: Manufacturer=Qualcomm, Incorporated
S: Product=USB MMC Storage
S: SerialNumber=000000000002
C: #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
如上述命令的输出所示,该设备在 11.10 中被检测为调制解调器,但在 12.04 中被检测为 USB 存储设备(该设备既是 3G 调制解调器又是 SD-card USB 适配器)。
有什么帮助吗?!
最佳思路
在不同论坛进行大量搜索和阅读后,我找到了解决问题的方法。请注意,虽然其他答案没有解决我的问题,但它们可能对其他面临 3G USB 调制解调器(特别是 sakis-3g 脚本)问题的人有所帮助。
我在 this thread 中找到了我的解决方案,我将在下面详细介绍:
连接我的 USB 调制解调器时,它被检测为 USB 存储器。根据该线程,运行 sudo modprobe option
可以使设备被检测为调制解调器。如果没有,也建议执行以下命令:
sudo su
echo 1c9e 6061 > /sys/bus/usb-serial/drivers/option1/new_id
其中 1c9e 6061
是从 lsusb
命令获得的设备 ID。这适用于我的设备,并在 Network-Manager 中检测到。请注意,您必须使用 sudo su
成为 root,使用 sudo
运行命令将不起作用。
为了使事情自动化,提出了以下步骤:
-
sudo su
-
nano /usr/bin/usbModemScript
并将以下内容放入文件中:\n
#!/bin/bash\n echo 1c9e 6061 > /sys/bus/usb-serial/drivers/option1/new_id\n
\n
然后保存文件 (Ctrl+O) 并退出 nano (Ctrl+X)。
-
chmod +x /usr/bin/usbModemScript
-
nano /etc/udev/rules.d/option.rules
并将以下内容放入文件中:\n
ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6061", RUN+="/usr/bin/usbModemScript"\n ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6061", RUN+="/sbin/modprobe option"\n
\n
然后保存文件 (Ctrl+O) 并退出 nano (Ctrl+X)。
-
reboot
注意:您应该将值 1c9e
和 6061
替换为您自己的调制解调器的相应设备 ID 值。
重新启动后,将调制解调器连接到计算机时应该会检测到它。当然,情况可能并非如此(因为它不适合我)!我的设备在第一次连接到计算机后未被正确检测到。相反,我不得不断开连接然后重新连接,这次它被正确检测为 Network-Manger 中的调制解调器。有些人可能还需要重新启动 network-manager 服务(就像我所做的那样):
sudo service network-manager restart
================================================ ==============================
另一个可能的解决方案是使用 wvdial
。
-
安装:
sudo apt-get install wvdial
-
将调制解调器连接到计算机。
-
运行:
sudo wvdialconf /etc/wvdial.conf
。如果它说“没有找到调制解调器”,那么你就不走运了! -
如果找到调制解调器,请运行:
sudo nano /etc/wvdial.conf
并通过填写您知道的字段在需要的地方输入您的 ISP 信息。在单独的终端中运行man wvdial.conf
以获取有关选项的信息。准备就绪后,保存文件 (Ctrl+O) 并退出 nano (Ctrl+X)。 -
现在尝试连接:
sudo wvdial
有关 wvdial
的更多信息,请阅读手册页(即 man wvdial
)。
希望这有助于 :)
次佳思路
我有华为 E156 HSDPA (3G) USB memory 棒,我做了以下操作,它也适用于我的三星 3g 手机,通过 USB 数据线。
sudo apt-get install wvdial
安装 wvdial 后,在终端中输入以下行以编辑 wvdial.conf
sudo gedit /etc/wvdial.conf
将以下行粘贴到您的编辑器中:
[Dialer name]
Modem Type = Analog Modem
Phone = *99#
ISDN = 0
Baud = 460800
Username = " "
Password = " "
Modem = /dev/ttyUSB0
Init1 = ATZ
Init2 = at+cgdcont=1,"ip","your Access Point Name"
Stupid Mode = 1
每当您需要连接时,只需在您的终端中输入
sudo wvdial name
现在您将以惊人的速度上网。我认为这种方法比其他方法耗时少且速度快。