如何将 D-link dwm-156 添加到 USB 切换模式以自动弹出驱动程序 CD/切换到调制解调器模式?

kit*_* 94 2 usb-modem mobile-broadband 13.10

我正在运行 32 位 Ubuntu 13.10。

我每次都需要去终端“弹出”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 中的驱动程序,因为我需要发送短信并查找数据使用情况。

kit*_* 94 6

默认 ID 为 2001:a706 和目标 ID 为 2001:7d01 的 GSM 调制解调器

您必须安装 USB 开关模式(默认安装在每个 ubuntu 中)

  1. 输入终端:

    sudo gedit /etc/usb_modeswitch.d/2001:a706
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将以下行复制到新打开的文件并保存:

    D-Link DWM-156 HSUPA 3.75G USB Modem 
    TargetVendor=0x2001
    TargetProduct=0x7d01
    MessageContent="555342431234567800000000000003f0010100000000000000000000000000"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 输入终端:

    sudo usb_modeswitch -v 0x2001 -p 0xa706 -c /etc/usb_modeswitch.d/2001:a706
    
    Run Code Online (Sandbox Code Playgroud)

    现在必须使用 Ubuntu 的 usb 切换模式将调制解调器切换到调制解调器模式(通常需要 10 秒才能出现在 NetworkManager 中)

    现在你可以让它自动切换

  4. 输入终端:

    sudo gedit /lib/udev/rules.d/40-usb_modeswitch.rules
    
    Run Code Online (Sandbox Code Playgroud)
  5. 使用文本编辑器中的 ID 更改 D-link 之一的默认 ID(供应商和产品)并将其保存如下:

    D-Link DWM-156 HSUPA 3.75G USB Modem 
    ATTRS{idVendor}=="0791", ATTRS{idProduct}=="a800", RUN+="usb_modeswitch '%b/%k'"
    
    Run Code Online (Sandbox Code Playgroud)

    把上面的代码改成下面的:

    D-Link DWM-156 HSUPA 3.75G USB Modem
    ATTRS{idVendor}=="2001", ATTRS{idProduct}=="a706", RUN+="usb_modeswitch '%b/%k'"
    
    Run Code Online (Sandbox Code Playgroud)

    注意:如果您的设备名称不在 gedit 列表中,请不要为您的设备创建任何新文件,它将不起作用,只需将您的 ID 添加到列表中的任何设备名称中,任何名称实际上都有效,名称没关系,只需要默认 ID。现在保存并重新连接您的调制解调器,它将被自动检测为调制解调器。如果你想从终端使用lsusb它会在重新连接之前和之后显示不同的内容。在弹出之前,它看起来像 2001:a706。重新连接后看起来像 2001:7d01,这是调制解调器模式。

    您可以在 /usr/share/usb_modeswitch/configPack.tar.gz 找到消息内容,并通过适当的名称找到合适的。如果没有正确的消息内容,则无法使用 USB 模式切换,有些可能不合适。所以总的来说,你所做的是:

    1. 运行sudo gedit /etc/usb_modeswitch.d/2001:a706线路时,您将设备 ID 提供给 USB 模式开关。

    2. 您通过添加默认 ID 使其自动工作 sudo gedit /lib/udev rules.d/40-usb_modeswitch.rules

上面没有提到的其他调制解调器

您必须安装 USB 开关模式(在 Ubuntu 中默认安装)。

  1. 打开终端并输入以下内容,将默认供应商 ID、默认产品 ID、目标供应商 ID、目标产品 ID 替换为您设备的 ID

    sudo gedit /etc/usb_modeswitch.d/default vendor id : default product id
    
    Run Code Online (Sandbox Code Playgroud)
  2. 复制以下几行并保存:

    name of modem
    TargetVendor=0x????
    TargetProduct=0x????
    MessageContent="???????????????????????????????????????????????????????????"
    
    Type your id's & message content in the **????** above
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在终端输入:

    sudo usb_modeswitch -v 0xdefault vendor id -p 0xdefault product id -c /etc/usb_modeswitch.d/defult vendor id:default product id
    
    Run Code Online (Sandbox Code Playgroud)

    例如:

    sudo usb_modeswitch -v 0x2001 -p 0xa706 -c /etc/usb_modeswitch.d/2001:a706
    
    Run Code Online (Sandbox Code Playgroud)

    现在您的调制解调器必须使用 USB 切换模式切换到调制解调器模式(大约需要 10 秒才能出现在 NetworkManager 中)。现在让它自动。

  4. 输入终端:

    sudo gedit /lib/udev/rules.d/40-usb_modeswitch.rules
    
    Run Code Online (Sandbox Code Playgroud)

    使用您的调制解调器更改其中一个调制解调器的默认 ID(供应商和产品)并保存。

    D-Link DWM-156 HSUPA 3.75G USB Modem
    ATTRS{idVendor}=="0791", ATTRS{idProduct}=="a800", RUN+="usb_modeswitch '%b/%k'"
    
    Run Code Online (Sandbox Code Playgroud)

    将上面的更改为如下所示:

    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'"
    
    Run Code Online (Sandbox Code Playgroud)

    如上所述,名称无关紧要,只需要默认 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 
Run Code Online (Sandbox Code Playgroud)

其中 2001=供应商 ID;a706=产品编号。默认供应商:产品 ID 在弹出驱动程序 cd 之前获得。在这里,我使用了 - 2001:a706

目标供应商:产品 ID 在弹出驱动程序 cd(作为调制解调器模式)后获得。在这里,我使用了 2001:7d01

您也可以/usr/share/usb_modeswitch/configPack.tar.gz通过匹配名称找到适合您的消息内容,有些可能不合适或在互联网上(困难)。

注意不同调制解调器的 ID 和消息内容是不同的。

所以基本上在这里你做了两件事:

  1. 通过添加它来提供您的设备 ID sudo gedit /etc/usb_modeswitch.d/

  2. 您通过在 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 版本。