Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    D-Link DWM-157 USB Stock not recognized

    Scheduled Pinned Locked Moved Hardware
    39 Posts 6 Posters 9.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      TheNetStriker
      last edited by

      I have exactly the same problem. My D-Link DWM-157 is also recognized as a CD Drive, but it has another USB ID: 2001:a407 (Europe version?)

      Can you also add this ID to the usb file?

      Edit: I just saw that Tagashy has mentioned this USB ID. I also found out how to switch the device to modem mode. Could you provide a compiled kernel for pfSense 2.2.6-RELEASE (amd64) so I can test the changes?

      1 Reply Last reply Reply Quote 0
      • P
        peoples
        last edited by

        @TheNetStriker:

        I have exactly the same problem. My D-Link DWM-157 is also recognized as a CD Drive, but it has another USB ID: 2001:a407 (Europe version?)

        Can you also add this ID to the usb file?

        Edit: I just saw that Tagashy has mentioned this USB ID. I also found out how to switch the device to modem mode. Could you provide a compiled kernel for pfSense 2.2.6-RELEASE (amd64) so I can test the changes?

        @TheNetStriker … maybe you want to share the information on how to switch the DWM-157 stick to modem mode ?

        @heper ... i run pfsense 2.3 RC1 but my DWM-157 stick doesn't work.

        meanwhile i got the documents (attached) from d-link support. i can confirm that the following MessageContent is switching my stick to modem mode

        usb_modeswitch -v 2001 -p a407 -m 1 -M 555342431234567800000000000003f0010300000000000000000000000000 -R 1
        

        But it's reconized as ethernet UE0 device ? Sime ideas ?

        dwm-157_revc1_1481819.zip

        1 Reply Last reply Reply Quote 0
        • T
          TheNetStriker
          last edited by

          @peoples:

          @TheNetStriker:

          I have exactly the same problem. My D-Link DWM-157 is also recognized as a CD Drive, but it has another USB ID: 2001:a407 (Europe version?)

          Can you also add this ID to the usb file?

          Edit: I just saw that Tagashy has mentioned this USB ID. I also found out how to switch the device to modem mode. Could you provide a compiled kernel for pfSense 2.2.6-RELEASE (amd64) so I can test the changes?

          @TheNetStriker … maybe you want to share the information on how to switch the DWM-157 stick to modem mode ?

          @heper ... i run pfsense 2.3 RC1 but my DWM-157 stick doesn't work.

          meanwhile i got the documents (attached) from d-link support. i can confirm that the following MessageContent is switching my stick to modem mode

          usb_modeswitch -v 2001 -p a407 -m 1 -M 555342431234567800000000000003f0010300000000000000000000000000 -R 1
          

          But it's reconized as ethernet UE0 device ? Sime ideas ?

          My device is now listed as ugen1.2. I think I used the wrong MessageContent. Any idea how I can change the device back? This command doesn't seam to work:

          usb_modeswitch -R -v 2001 -p 7d0e
          
          1 Reply Last reply Reply Quote 0
          • T
            TheNetStriker
            last edited by

            @heper:

            If it works on stock freebsd 10.3 (version for upcomming pfSense 2.3) and/or you know how to make it work: file a bugreport on https://redmine.pfsense.org/projects/pfsense

            post all relevant info & the devs will probably take a look at it when time permits

            I don't think that this will be fixed with FreeBSD 10.3. I've looked at the latest usbdevs file and there is no device with id a407. So I think this should be reported to the FreeBSD project. It seams as there are multiple possible ways to report problems in FreeBSD. Which one would be correct? File a bug report on GitHUB maybe?

            1 Reply Last reply Reply Quote 0
            • C
              chedxb
              last edited by

              hello,

              I am trying to make a D-Link DWM-157 D1 unit work on pfSense 2.4.4 and I have the same problem, pfSense sees it as CD-ROM despite it is shown as a "Known Working 3G-4G Modem" (https://docs.netgate.com/pfsense/en/latest/cellular/known-working-3g-4g-modems.html)

              I followed the steps https://redmine.pfsense.org/issues/6226 and http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=4&t=2687 however it is insisting to be a CD-ROM instead of a modem.

              Question: is it possible to use configuration=2 option instead of MessageContent in pfSense?

              Best,

              Savas

              1 Reply Last reply Reply Quote 1
              • stephenw10S
                stephenw10 Netgate Administrator
                last edited by

                If it has 2 (or more) usb config indexes you can force it to use a different one using a usb quirk option.

                Try running usbconfig dump_all_desc against it.

                Steve

                1 Reply Last reply Reply Quote 0
                • C
                  chedxb
                  last edited by

                  Thanks Steve,

                  In the attached file, you can find the usbconfig dump_all_desc output.

                  How can I use the quirk option?

                  Best,

                  Savas
                  Shell Output.zip

                  1 Reply Last reply Reply Quote 1
                  • stephenw10S
                    stephenw10 Netgate Administrator
                    last edited by

                    Ok, so that device has 3 config indexes:

                    ugen4.2: <D-Link,Inc D-Link DWM-157> at usbus4, cfg=1 md=HOST spd=HIGH
                    (480Mbps) pwr=ON (98mA)
                    bLength = 0x0012
                    bDescriptorType = 0x0001
                    bcdUSB = 0x0200
                    bDeviceClass = 0x0000 <Probed by interface class>
                    bDeviceSubClass = 0x0000
                    bDeviceProtocol = 0x0000
                    bMaxPacketSize0 = 0x0040
                    idVendor = 0x2001
                    idProduct = 0xa407
                    bcdDevice = 0x0300
                    iManufacturer = 0x0002 <D-Link,Inc >
                    iProduct = 0x0003 <D-Link DWM-157>
                    iSerialNumber = 0x0004 <531399703502680>
                    bNumConfigurations = 0x0003
                    Configuration index 0
                    bLength = 0x0009
                    bDescriptorType = 0x0002wTotalLength = 0x0020
                    bNumInterfaces = 0x0001
                    bConfigurationValue = 0x0001
                    iConfiguration = 0x0000 <no string>
                    bmAttributes = 0x00a0
                    bMaxPower = 0x00fa
                    Interface 0
                    bLength = 0x0009
                    bDescriptorType = 0x0004
                    bInterfaceNumber = 0x0000
                    bAlternateSetting = 0x0000
                    bNumEndpoints = 0x0002
                    bInterfaceClass = 0x0008 <Mass storage>
                    bInterfaceSubClass = 0x0006
                    bInterfaceProtocol = 0x0050
                    iInterface = 0x0001 <Mass Storage >
                    Endpoint 0
                    bLength = 0x0007
                    bDescriptorType = 0x0005
                    bEndpointAddress = 0x0081 <IN>
                    bmAttributes = 0x0002 <BULK>
                    wMaxPacketSize = 0x0200
                    bInterval = 0x0000
                    bRefresh = 0x0000
                    bSynchAddress = 0x0000
                    Endpoint 1
                    bLength = 0x0007
                    bDescriptorType = 0x0005
                    bEndpointAddress = 0x0001 <OUT>
                    bmAttributes = 0x0002 <BULK>
                    wMaxPacketSize = 0x0200
                    bInterval = 0x0000
                    bRefresh = 0x0000
                    bSynchAddress = 0x0000
                    Configuration index 1
                    bLength = 0x0009
                    bDescriptorType = 0x0002
                    wTotalLength = 0x0020
                    bNumInterfaces = 0x0001
                    bConfigurationValue = 0x0002
                    iConfiguration = 0x0000 <no string>
                    bmAttributes = 0x00a0
                    bMaxPower = 0x0031
                    Interface 0
                    bLength = 0x0009
                    bDescriptorType = 0x0004
                    bInterfaceNumber = 0x0000
                    bAlternateSetting = 0x0000
                    bNumEndpoints = 0x0002bInterfaceClass = 0x0008 <Mass storage>
                    bInterfaceSubClass = 0x0006
                    bInterfaceProtocol = 0x0050
                    iInterface = 0x0001 <Mass Storage >
                    Endpoint 0
                    bLength = 0x0007
                    bDescriptorType = 0x0005
                    bEndpointAddress = 0x0081 <IN>
                    bmAttributes = 0x0002 <BULK>
                    wMaxPacketSize = 0x0200
                    bInterval = 0x0000
                    bRefresh = 0x0000
                    bSynchAddress = 0x0000
                    Endpoint 1
                    bLength = 0x0007
                    bDescriptorType = 0x0005
                    bEndpointAddress = 0x0001 <OUT>
                    bmAttributes = 0x0002 <BULK>
                    wMaxPacketSize = 0x0200
                    bInterval = 0x0000
                    bRefresh = 0x0000
                    bSynchAddress = 0x0000
                    Configuration index 2
                    bLength = 0x0009
                    bDescriptorType = 0x0002
                    wTotalLength = 0x0020
                    bNumInterfaces = 0x0001
                    bConfigurationValue = 0x0003
                    iConfiguration = 0x0000 <no string>
                    bmAttributes = 0x00e0
                    bMaxPower = 0x0000
                    Interface 0
                    bLength = 0x0009
                    bDescriptorType = 0x0004
                    bInterfaceNumber = 0x0000
                    bAlternateSetting = 0x0000
                    bNumEndpoints = 0x0002
                    bInterfaceClass = 0x0008 <Mass storage>
                    bInterfaceSubClass = 0x0006
                    bInterfaceProtocol = 0x0050
                    iInterface = 0x0001 <Mass Storage >
                    Endpoint 0
                    bLength = 0x0007
                    bDescriptorType = 0x0005
                    bEndpointAddress = 0x0081 <IN>
                    bmAttributes = 0x0002 <BULK>
                    wMaxPacketSize = 0x0200
                    bInterval = 0x0000
                    bRefresh = 0x0000bSynchAddress = 0x0000
                    Endpoint 1
                    bLength = 0x0007
                    bDescriptorType = 0x0005
                    bEndpointAddress = 0x0001 <OUT>
                    bmAttributes = 0x0002 <BULK>
                    wMaxPacketSize = 0x0200
                    bInterval = 0x0000
                    bRefresh = 0x0000
                    bSynchAddress = 0x0000
                    

                    All show as mass storage devices though...

                    Try setting it manually first:
                    usbconfig ugen4.2 set_config 2
                    Or 1.

                    Though it looks like you might have the C1 variant from the usbmodeswitch forum discussion.

                    Steve

                    1 Reply Last reply Reply Quote 0
                    • C
                      chedxb
                      last edited by

                      Thanks Steve,

                      when I tried usbconfig ugen4.2 set_config 2, I got the following message;

                      usbconfig - configure the USB subsystem
                      usage: usbconfig -u <busnum> -a <devaddr> -i <ifaceindex> [cmds...]
                      usage: usbconfig -d [ugen]<busnum>.<devaddr> -i <ifaceindex> [cmds...]
                      commands:
                      set_config <cfg_index>
                      .
                      .

                      then I tried the following;

                      usbconfig -d ugen4.2 set_config 0
                      usbconfig -d ugen4.2 set_config 1
                      usbconfig -d ugen4.2 set_config 2

                      however they didn't work, still shows as cd0

                      Best,

                      Savas

                      1 Reply Last reply Reply Quote 1
                      • C
                        chedxb
                        last edited by chedxb

                        btw, when I was searching something useful in the USB stick, this is what I found,

                        intallation config file

                        DefaultVendor= 0x2001
                        DefaultProduct= 0xa407

                        TargetVendor= 0x2001
                        TargetProduct= 0x7d0e

                        MagicId=2ds2dse5w885d5d5we5d2d2d5sd4dgg4fdfd5

                        AutoRun=1

                        I tried to use the MagicId as MessageContent with USB_switch, however it didn't work.

                        Is there a way to convert the MagicId to MessageContent?

                        Best,

                        Savas

                        1 Reply Last reply Reply Quote 1
                        • stephenw10S
                          stephenw10 Netgate Administrator
                          last edited by

                          Ah sorry missed the -d switch. Ok well if you have the C1version you will need to use usb_modeswitch.

                          Is the message content not in it already?

                          It may not help you though because neither of those IDs is known to pfSense/FreeBSD:
                          https://github.com/pfsense/FreeBSD-src/blob/ff7d4801f1b88de656e028209818ff005e8a1353/sys/dev/usb/usbdevs#L1663

                          Steve

                          1 Reply Last reply Reply Quote 0
                          • C
                            chedxb
                            last edited by chedxb

                            Unfortunately there is no message content. I found this cryptic MagicId, however it didn't work.

                            btw, TargetVendor and TargetProduct are there,

                            731 vendor DLINK 0x2001 D-Link
                            813 product ABIT AK_020 0x7d0e 3G modem

                            Best,

                            Savas

                            1 Reply Last reply Reply Quote 1
                            • stephenw10S
                              stephenw10 Netgate Administrator
                              last edited by

                              Mmm, but that product is from a different vendor so it will not match.

                              If you manage to make this work it will be via bunch of workarounds that may fail. I recommend using a different modem if you can.

                              Steve

                              1 Reply Last reply Reply Quote 0
                              • C
                                chedxb
                                last edited by

                                Thanks Steve, I will try with a different modem.

                                Best,

                                Savas

                                1 Reply Last reply Reply Quote 0
                                • stephenw10S
                                  stephenw10 Netgate Administrator
                                  last edited by

                                  If it is the C1 version it just needs to be ejected anyway:
                                  https://github.com/NetworkManager/usb_modeswitch-data/blob/master/usb_modeswitch.d/2001:a407

                                  And then it may appear as a usb Ethernet device which you can use directly. There are issues with that though.

                                  Steve

                                  1 Reply Last reply Reply Quote 0
                                  • C
                                    chedxb
                                    last edited by

                                    I am afraid it is D1
                                    20190415_135623353_iOS.jpg

                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      chedxb
                                      last edited by

                                      I also tried usb_modeswitch -v 2001 -p a407 -K -W, however it didn't generate any verbose output.

                                      and this is what I see on the system log,

                                      Apr 15 18:17:57 kernel da0: quirks=0x2<NO_6_BYTE>
                                      Apr 15 18:17:57 kernel da0: Attempt to query device size failed: ILLEGAL REQUEST, Invalid field in CDB
                                      Apr 15 18:17:57 kernel da0: 40.000MB/s transfers
                                      Apr 15 18:17:57 kernel da0: <HSPA USB SCSI CD-ROM 6225> Removable Direct Access SCSI device
                                      Apr 15 18:17:57 kernel da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
                                      Apr 15 18:17:57 kernel umass0: <Mass Storage > on usbus4
                                      Apr 15 18:17:57 kernel umass0 on uhub1
                                      Apr 15 18:17:57 kernel ugen4.2: <D-Link,Inc D-Link DWM-157> at usbus4
                                      Apr 15 18:17:55 kernel ugen4.2: <D-Link,Inc D-Link DWM-157> at usbus4 (disconnected)
                                      Apr 15 18:17:55 kernel umass0: detached
                                      Apr 15 18:17:55 kernel (cd0:umass-sim0:0:0:0): Periph destroyed
                                      Apr 15 18:17:55 kernel cd0: <HSPA USB SCSI CD-ROM 6225> s/n 531399703502680 detached
                                      Apr 15 18:17:55 kernel cd0 at umass-sim0 bus 0 scbus2 target 0 lun 0
                                      Apr 15 18:17:55 kernel umass0: at uhub1, port 1, addr 2 (disconnected)
                                      Apr 15 18:17:36 kernel cd0: quirks=0x10<10_BYTE_ONLY>
                                      Apr 15 18:17:36 kernel cd0: 14MB (28672 512 byte sectors)
                                      Apr 15 18:17:36 kernel cd0: 40.000MB/s transfers
                                      Apr 15 18:17:36 kernel cd0: Serial Number 531399703502680
                                      Apr 15 18:17:36 kernel cd0: <HSPA USB SCSI CD-ROM 6225> Removable CD-ROM SCSI device
                                      Apr 15 18:17:36 kernel cd0 at umass-sim0 bus 0 scbus2 target 0 lun 0
                                      Apr 15 18:17:36 kernel umass0: <Mass Storage > on usbus4
                                      Apr 15 18:17:36 kernel umass0 on uhub1
                                      Apr 15 18:17:36 kernel ugen4.2: <D-Link,Inc D-Link DWM-157> at usbus4

                                      basically when I run usb_modeswitch -v 2001 -p a407 -K -W, it ejects cd0 and turns into da0, not modem.

                                      Best,

                                      Savas

                                      1 Reply Last reply Reply Quote 0
                                      • stephenw10S
                                        stephenw10 Netgate Administrator
                                        last edited by

                                        Mmm, it sure looks like a C1 version in many ways. You see anything else in the system log after you do that?

                                        Try running usbconfig dump_all_desc against it after you have ejected it to change it's mode like LOM suggested.

                                        Steve

                                        1 Reply Last reply Reply Quote 0
                                        • C
                                          chedxb
                                          last edited by

                                          I cannot post the logs, I am getting SPAM message

                                          "Post content was flagged as spam by Akismet.com"

                                          1 Reply Last reply Reply Quote 0
                                          • C
                                            chedxb
                                            last edited by

                                            so these are the interfaces after the camcontrol eject cd0 command.

                                            MI_00 D-Link Mobile Broadband Device (Network Adapter) (cdc_mbim)
                                            MI_02 D-Link HSPA+DataCard Diagnostics Interface (also ppp dialup modem)
                                            MI_03 D-Link HSPA+DataCard NMEA Device
                                            MI_04 D-Link HSPA+DataCard Speech Port
                                            MI_05 D-Link HSPA+DataCard Debug Port
                                            MI_06 USB Mass Storage Device

                                            So I understand as follows,

                                            Since the drivers are not available in pfSense/BSD for the interfaces from 0 to 5, when I do camcontrol eject cd0, it uses the 6th interface (USB Mass Storage Device)

                                            Thoughts?

                                            Best,

                                            Savas

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.