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 8.8k 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.
    • 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
                                    • stephenw10S
                                      stephenw10 Netgate Administrator
                                      last edited by

                                      Yes, only interfaces 2 and 3 would otherwise be available if u3g attached to them.

                                      The usbconfig output should show those interfaces though even if no driver does attach.

                                      I have upvoted some of your posts which should stop akismet triggering but it does seem have a mind of it's own. We have almost no control over it.

                                      Steve

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

                                        ugen4.2: <D-Link,Inc D-Link DWM-157> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
                                        
                                        bLength = 0x0012
                                        bDescriptorType = 0x0001
                                        bcdUSB = 0x0200
                                        bDeviceClass = 0x00ef <Miscellaneous device>
                                        bDeviceSubClass = 0x0002
                                        bDeviceProtocol = 0x0001
                                        bMaxPacketSize0 = 0x0040
                                        idVendor = 0x2001
                                        idProduct = 0x7d0e
                                        bcdDevice = 0x0300
                                        iManufacturer = 0x0009 <D-Link,Inc >
                                        iProduct = 0x000a <D-Link DWM-157>
                                        iSerialNumber = 0x0000 <no string>
                                        bNumConfigurations = 0x0001
                                        
                                        Configuration index 0
                                        
                                        bLength = 0x0009
                                        bDescriptorType = 0x0002
                                        wTotalLength = 0x00e4
                                        bNumInterfaces = 0x0007
                                        bConfigurationValue = 0x0001
                                        iConfiguration = 0x0000 <no string>
                                        bmAttributes = 0x00a0
                                        bMaxPower = 0x00fa
                                        
                                        Additional Descriptor
                                        
                                        bLength = 0x08
                                        bDescriptorType = 0x0b
                                        bDescriptorSubType = 0x00
                                        RAW dump:
                                        0x00 | 0x08, 0x0b, 0x00, 0x02, 0x02, 0x0e, 0x00, 0x01
                                        
                                        
                                        Interface 0
                                        bLength = 0x0009
                                        bDescriptorType = 0x0004
                                        bInterfaceNumber = 0x0000
                                        bAlternateSetting = 0x0000
                                        bNumEndpoints = 0x0001
                                        bInterfaceClass = 0x0002 <Communication device>
                                        bInterfaceSubClass = 0x000e
                                        bInterfaceProtocol = 0x0000
                                        iInterface = 0x0001 <COM(comm_if)>
                                        
                                        Additional Descriptor
                                        
                                        bLength = 0x05
                                        bDescriptorType = 0x24
                                        bDescriptorSubType = 0x00
                                        RAW dump:
                                        0x00 | 0x05, 0x24, 0x00, 0x10, 0x01
                                        
                                        
                                        Additional Descriptor
                                        
                                        bLength = 0x05
                                        bDescriptorType = 0x24
                                        bDescriptorSubType = 0x06
                                        RAW dump:
                                        0x00 | 0x05, 0x24, 0x06, 0x00, 0x01
                                        
                                        
                                        Additional Descriptor
                                        
                                        bLength = 0x0c
                                        bDescriptorType = 0x24
                                        bDescriptorSubType = 0x1b
                                        RAW dump:
                                        0x00 | 0x0c, 0x24, 0x1b, 0x00, 0x01, 0x00, 0x02, 0x10,
                                        0x08 | 0x40, 0xdc, 0x05, 0x20
                                        
                                        
                                        Endpoint 0
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0088 <IN>
                                        bmAttributes = 0x0003 <INTERRUPT>
                                        wMaxPacketSize = 0x0040
                                        bInterval = 0x0001
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        
                                        Interface 1
                                        bLength = 0x0009
                                        bDescriptorType = 0x0004
                                        bInterfaceNumber = 0x0001
                                        bAlternateSetting = 0x0000
                                        bNumEndpoints = 0x0000
                                        bInterfaceClass = 0x000a <CDC-data>
                                        bInterfaceSubClass = 0x0000
                                        bInterfaceProtocol = 0x0002
                                        iInterface = 0x0002 <COM(data_if)>
                                        
                                        
                                        Interface 1 Alt 1
                                        bLength = 0x0009
                                        bDescriptorType = 0x0004
                                        bInterfaceNumber = 0x0001
                                        bAlternateSetting = 0x0001
                                        bNumEndpoints = 0x0002
                                        bInterfaceClass = 0x000a <CDC-data>
                                        bInterfaceSubClass = 0x0000
                                        bInterfaceProtocol = 0x0002
                                        iInterface = 0x0000 <no string>
                                        
                                        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
                                        
                                        
                                        Interface 2
                                        bLength = 0x0009
                                        bDescriptorType = 0x0004
                                        bInterfaceNumber = 0x0002
                                        bAlternateSetting = 0x0000
                                        bNumEndpoints = 0x0003
                                        bInterfaceClass = 0x00ff <Vendor specific>
                                        bInterfaceSubClass = 0x0002
                                        bInterfaceProtocol = 0x0001
                                        iInterface = 0x0003 <COM(comm_if)>
                                        
                                        Additional Descriptor
                                        
                                        bLength = 0x05
                                        bDescriptorType = 0x24
                                        bDescriptorSubType = 0x00
                                        RAW dump:
                                        0x00 | 0x05, 0x24, 0x00, 0x10, 0x01
                                        
                                        
                                        Additional Descriptor
                                        
                                        bLength = 0x04
                                        bDescriptorType = 0x24
                                        bDescriptorSubType = 0x02
                                        RAW dump:
                                        0x00 | 0x04, 0x24, 0x02, 0x0f
                                        
                                        
                                        Additional Descriptor
                                        
                                        bLength = 0x05
                                        bDescriptorType = 0x24
                                        bDescriptorSubType = 0x06
                                        RAW dump:
                                        0x00 | 0x05, 0x24, 0x06, 0x02, 0x03
                                        
                                        
                                        Additional Descriptor
                                        
                                        bLength = 0x05
                                        bDescriptorType = 0x24
                                        bDescriptorSubType = 0x01
                                        RAW dump:
                                        0x00 | 0x05, 0x24, 0x01, 0x03, 0x03
                                        
                                        
                                        Endpoint 0
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0087 <IN>
                                        bmAttributes = 0x0003 <INTERRUPT>
                                        wMaxPacketSize = 0x0040
                                        bInterval = 0x0003
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        Endpoint 1
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0082 <IN>
                                        bmAttributes = 0x0002 <BULK>
                                        wMaxPacketSize = 0x0200
                                        bInterval = 0x0000
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        Endpoint 2
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0002 <OUT>
                                        bmAttributes = 0x0002 <BULK>
                                        wMaxPacketSize = 0x0200
                                        bInterval = 0x0000
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        
                                        Interface 3
                                        bLength = 0x0009
                                        bDescriptorType = 0x0004
                                        bInterfaceNumber = 0x0003
                                        bAlternateSetting = 0x0000
                                        bNumEndpoints = 0x0002
                                        bInterfaceClass = 0x00ff <Vendor specific>
                                        bInterfaceSubClass = 0x0000
                                        bInterfaceProtocol = 0x0000
                                        iInterface = 0x0005 <COM(data_if)>
                                        
                                        Endpoint 0
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0083 <IN>
                                        bmAttributes = 0x0002 <BULK>
                                        wMaxPacketSize = 0x0200
                                        bInterval = 0x0000
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        Endpoint 1
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0003 <OUT>
                                        bmAttributes = 0x0002 <BULK>
                                        wMaxPacketSize = 0x0200
                                        bInterval = 0x0000
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        
                                        Interface 4
                                        bLength = 0x0009
                                        bDescriptorType = 0x0004
                                        bInterfaceNumber = 0x0004
                                        bAlternateSetting = 0x0000
                                        bNumEndpoints = 0x0002
                                        bInterfaceClass = 0x00ff <Vendor specific>
                                        bInterfaceSubClass = 0x0000
                                        bInterfaceProtocol = 0x0000
                                        iInterface = 0x0006 <COM(data_if)>
                                        
                                        Endpoint 0
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0084 <IN>
                                        bmAttributes = 0x0002 <BULK>
                                        wMaxPacketSize = 0x0200
                                        bInterval = 0x0000
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        Endpoint 1
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0004 <OUT>
                                        bmAttributes = 0x0002 <BULK>
                                        wMaxPacketSize = 0x0200
                                        bInterval = 0x0000
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        
                                        Interface 5
                                        bLength = 0x0009
                                        bDescriptorType = 0x0004
                                        bInterfaceNumber = 0x0005
                                        bAlternateSetting = 0x0000
                                        bNumEndpoints = 0x0002
                                        bInterfaceClass = 0x00ff <Vendor specific>
                                        bInterfaceSubClass = 0x0000
                                        bInterfaceProtocol = 0x0000
                                        iInterface = 0x0007 <COM(data_if)>
                                        
                                        Endpoint 0
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0085 <IN>
                                        bmAttributes = 0x0002 <BULK>
                                        wMaxPacketSize = 0x0200
                                        bInterval = 0x0000
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        Endpoint 1
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0005 <OUT>
                                        bmAttributes = 0x0002 <BULK>
                                        wMaxPacketSize = 0x0200
                                        bInterval = 0x0000
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        
                                        Interface 6
                                        bLength = 0x0009
                                        bDescriptorType = 0x0004
                                        bInterfaceNumber = 0x0006
                                        bAlternateSetting = 0x0000
                                        bNumEndpoints = 0x0002
                                        bInterfaceClass = 0x0008 <Mass storage>
                                        bInterfaceSubClass = 0x0006
                                        bInterfaceProtocol = 0x0050
                                        iInterface = 0x0008 <Mass Storage >
                                        
                                        Endpoint 0
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0086 <IN>
                                        bmAttributes = 0x0002 <BULK>
                                        wMaxPacketSize = 0x0200
                                        bInterval = 0x0000
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        Endpoint 1
                                        bLength = 0x0007
                                        bDescriptorType = 0x0005
                                        bEndpointAddress = 0x0006 <OUT>
                                        bmAttributes = 0x0002 <BULK>
                                        wMaxPacketSize = 0x0200
                                        bInterval = 0x0000
                                        bRefresh = 0x0000
                                        bSynchAddress = 0x0000
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • C
                                          chedxb @stephenw10
                                          last edited by

                                          @stephenw10 said in D-Link DWM-157 USB Stock not recognized:

                                          Yes, only interfaces 2 and 3 would otherwise be available if u3g attached to them.

                                          The usbconfig output should show those interfaces though even if no driver does attach.

                                          I have upvoted some of your posts which should stop akismet triggering but it does seem have a mind of it's own. We have almost no control over it.

                                          Steve

                                          it worked now, I just posted the log

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

                                            Yep, it really looks like that is a C1 device mislabelled. But that is still not recognised by u3g even is the most recent FreeBSD. https://github.com/freebsd/freebsd/blob/master/sys/dev/usb/usbdevs

                                            It's probably relatively easy to add it. The serial interfaces are there they just need to be attached but that's not something I can do. To add new devices requires rebuilding the kernel and hence it's only really practical to do in FreeBSD rather then in pfSense. Those changes usually happen there first and are brought into pfSense though it does happen the other way on occasion.

                                            It's still easier to use a different modem.

                                            Steve

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