我正在运行 Ubuntu 13.10,32 位。
我每次都需要进入终端“弹出” Windows 驱动程序 CD,也不需要进入磁盘并弹出 Windows 驱动程序 CD 来使 d-link dwm-156 gsm 调制解调器通过网络管理器运行。
看来 USB 模式开关不起作用。
但是在我朋友的计算机上安装了 ubuntu 14.04 时,USB 模式开关可以正常工作,我一进去就可以通过网络管理器将 d-link dwm-156 连接到移动宽带。
有什么方法可以让 USB 模式开关在启动时弹出我的 ubuntu 13.10,32 位中的 d-link dwm-156 的 Windows 驱动程序 CD?
lsusb 输出是Bus 002 Device 013: ID 2001:a706 D-Link Corp
在弹出 CD(调制解调器作为 Windows 驱动程序的存储设备)之前。
lsusb 输出是Bus 002 Device 005: ID 2001:7d01 D-Link Corp
在弹出 CD(作为调制解调器)之后。
我不想使用 CD 中的驱动程序,因为我需要发送短信和查找数据使用情况。
答案1
默认 ID 为 2001:a706 且目标 ID 为 2001:7d01 的 GSM 调制解调器
你必须安装 USB 切换模式(每个 Ubuntu 都默认安装)
在终端中输入:
sudo gedit /etc/usb_modeswitch.d/2001:a706
将以下行复制到新打开的文件并保存:
D-Link DWM-156 HSUPA 3.75G USB Modem TargetVendor=0x2001 TargetProduct=0x7d01 MessageContent="555342431234567800000000000003f0010100000000000000000000000000"
在终端中输入:
sudo usb_modeswitch -v 0x2001 -p 0xa706 -c /etc/usb_modeswitch.d/2001:a706
现在必须使用 Ubuntu 的 USB 切换模式将调制解调器切换到调制解调器模式(通常需要 10 秒才能出现在 NetworkManager 中)
现在你可以做到自动切换
在终端中输入:
sudo gedit /lib/udev/rules.d/40-usb_modeswitch.rules
将其中一个 D-link 的默认 ID(供应商和产品)更改为文本编辑器中的 ID,然后按如下所示保存:
D-Link DWM-156 HSUPA 3.75G USB Modem ATTRS{idVendor}=="0791", ATTRS{idProduct}=="a800", RUN+="usb_modeswitch '%b/%k'"
将上面的代码更改为下面的代码:
D-Link DWM-156 HSUPA 3.75G USB Modem ATTRS{idVendor}=="2001", ATTRS{idProduct}=="a706", RUN+="usb_modeswitch '%b/%k'"
注意:如果您的设备名称不在 gedit 列表中,请不要为您的设备创建任何新文件,否则将不起作用,只需在列表中的任何设备名称中添加您的 ID,任何名称实际上都可以,名称无关紧要,只需要默认 ID。现在保存并重新连接您的调制解调器,它将被自动检测为调制解调器。如果您想从终端查看它,请使用它
lsusb
在重新连接之前和之后的显示方式不同。在弹出之前,它看起来像 2001:a706。重新连接后,它看起来像 2001:7d01,这是调制解调器模式。您可以在 /usr/share/usb_modeswitch/configPack.tar.gz 找到消息内容,并按适当的名称找到合适的内容。如果没有正确的消息内容,则无法使用 usb 模式开关,有些可能不合适。所以一般来说,你所做的是:
当您运行该线路时,您正在向 USB 模式开关提供您的设备 ID
sudo gedit /etc/usb_modeswitch.d/2001:a706
。您可以通过在以下位置添加默认 ID 来使其自动运行
sudo gedit /lib/udev rules.d/40-usb_modeswitch.rules
上面未提及的其他调制解调器
您必须安装 USB 切换模式(Ubuntu 中默认安装)。
打开终端并输入以下内容,将默认供应商 ID、默认产品 ID、目标供应商 ID、目标产品 ID 替换为您设备的 ID
sudo gedit /etc/usb_modeswitch.d/default vendor id : default product id
复制以下行并保存:
name of modem TargetVendor=0x???? TargetProduct=0x???? MessageContent="???????????????????????????????????????????????????????????" Type your id's & message content in the **????** above
在终端中输入:
sudo usb_modeswitch -v 0xdefault vendor id -p 0xdefault product id -c /etc/usb_modeswitch.d/defult vendor id:default product id
例如:
sudo usb_modeswitch -v 0x2001 -p 0xa706 -c /etc/usb_modeswitch.d/2001:a706
现在必须使用 USB 切换模式将调制解调器切换到调制解调器模式(大约需要 10 秒才能显示在 NetworkManager 中)。现在将其设置为自动化。
在终端中输入:
sudo gedit /lib/udev/rules.d/40-usb_modeswitch.rules
将其中一个调制解调器的默认 ID(供应商和产品)更改为您自己的 ID 并保存。
D-Link DWM-156 HSUPA 3.75G USB Modem ATTRS{idVendor}=="0791", ATTRS{idProduct}=="a800", RUN+="usb_modeswitch '%b/%k'"
将上面的内容更改为如下所示:
D-Link DWM-156 HSUPA 3.75G USB Modem ATTRS{idVendor}=="your defult vendor id", ATTRS{idProduct}=="your default product id", RUN+="usb_modeswitch '%b/%k'"
正如上面提到的那样,名称并不重要,只需要默认 ID,保存它并重新连接您的调制解调器,它将被自动检测为调制解调器。
如果你运行该lsusb
命令,你会看到如下内容:
ubuntu@ubuntu:~$ lsusb
Bus 002 Device 019: ID 2001:a706 D-Link Corp.
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
其中 2001=供应商 ID;a706=产品 ID。默认供应商:产品 ID 在弹出驱动程序 CD 之前获得。这里,我使用了 2001:a706
目标供应商:弹出驱动程序 CD(作为调制解调器模式)后获得的产品 ID。这里我使用了 2001:7d01
您还可以在 查找消息内容,/usr/share/usb_modeswitch/configPack.tar.gz
并通过匹配名称来找到适合您的,有些可能不合适或在互联网上(困难)。
注意:不同调制解调器的 ID 和消息内容不同。
因此基本上你做了两件事:
通过添加提供您的设备 ID
sudo gedit /etc/usb_modeswitch.d/
通过在 usb 模式切换的 udev 规则中添加默认 id,您可以使其自动运行
请记住,D-link dwm 3.75G usb 适配器的 ID 如下所示:
2001:a706(弹出前)2001:7d01(弹出后),
从 13.10 开始,USB 调制解调器支持 USB 模式开关 1.2.3。在 14.04 中,即 2.1.1,已经有一个更新的 ID 列表。如果您遇到任何问题,请更新到最新的 Ubuntu 版本。