cdc-acm with incorrect bInterfaceSubClass

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I've got a GW Instek function generator (AFG-2225) that _appears_ like it should be a
CDC-ACM device, but it seems to have a bug in it's descriptor.  The same bug as Steven
Ackerman had in this thread: http://comments.gmane.org/gmane.linux.usb.general/71225
(lsusb -v output at the bottom of this mail)

However, unlike Steven, I can't fix the descriptor. (I guess GW Instek devs copied the same
bad example code from renesas?)  I tried "modprobe cdc-acm  but other than a warning that
the vid/pid args were unused, nothing happened.  I don't have /dev/ttyACM* or
/dev/serial/by-id/*  and dmesg just shows...


Oct 27 14:26:30 pojak kernel: cdc_acm: unknown parameter 'vendor' ignored
Oct 27 14:26:30 pojak kernel: cdc_acm: unknown parameter 'product' ignored
Oct 27 14:26:30 pojak kernel: usbcore: registered new interface driver cdc_acm
Oct 27 14:26:30 pojak kernel: cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
<<< replug device here >>>
Oct 27 14:35:41 pojak kernel: usb 3-4.1: USB disconnect, device number 12
Oct 27 14:35:43 pojak kernel: usb 3-4.1: new full-speed USB device number 13 using xhci_hcd
Oct 27 14:35:44 pojak kernel: usb 3-4.1: New USB device found, idVendor=2184, idProduct=001c
Oct 27 14:35:44 pojak kernel: usb 3-4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Oct 27 14:35:44 pojak kernel: usb 3-4.1: Product: AFG-2225
Oct 27 14:35:44 pojak kernel: usb 3-4.1: Manufacturer: GW IISTEK
Oct 27 14:35:44 pojak kernel: usb 3-4.1: SerialNumber: GEN850317
Oct 27 14:35:44 pojak kernel: usb 3-4.1: ep 0x83 - rounding interval to 1024 microframes, ep desc...rames
Oct 27 14:35:44 pojak mtp-probe[12215]: checking bus 3, device 13: "/sys/devices/pci0000:00/0000:0...4.1"
Oct 27 14:35:44 pojak mtp-probe[12215]: bus: 3, device: 13 was not an MTP device


The device appears as a regular serial port in windows, after installing the
gw instek drivers.  Those drivers are an .INF file only, with the following
lines indicating that at least as far as they're concerned, the new and
old devices are the same. (Old device listed as working here:
http://www.tablix.org/~avian/blog/archives/2013/05/gw_instek_afg_2005/

    %DESCRIPTION1%=DriverInstall, USB\VID_2184&PID_0011
    %DESCRIPTION1%=DriverInstall, USB\VID_2184&PID_001C

Is there anything I can do to get this to turn up as an ACM device in linux?

Sincerely,
Karl Palsson


karlp@pojak:~$ sudo lsusb -v -d 2184:

Bus 003 Device 012: ID 2184:001c GW Instek 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            2 Communications
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x2184 GW Instek
  idProduct          0x001c 
  bcdDevice            1.00
  iManufacturer           1 GW IISTEK
  iProduct                2 AFG-2225
  iSerial                 3 GEN850317
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           67
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
vvv
      bInterfaceSubClass     32 
^^^
      bInterfaceProtocol      0 
      iInterface              0 
      CDC Header:
        bcdCDC               1.10
      CDC ACM:
        bmCapabilities       0x02
          line coding and serial state
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      CDC Call Management:
        bmCapabilities       0x00
        bDataInterface          1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval             255
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)
karlp@pojak:~$ 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux