umodem0, Cisco USB serial console, and quirks

Hans Petter Selasky hps at selasky.org
Fri Nov 2 09:12:49 UTC 2018


On 11/2/18 9:53 AM, Andrey V. Elsukov wrote:
> On 02.11.2018 11:45, Hans Petter Selasky wrote:
>>>> And it seems in Linux it is handled by generic CDC ACM driver without
>>>> any quirks. So, I think the problem is with our umodem(4) or ucom(4)
>>>> driver.
>>>>
>>> No, I didn't.
>>>
>>> The usbmon dumps above are still there, and if someone can suggest
>>> anything else I can do to help, lemme know.
>>>
>>
>> Hi,
>>
>> Are there any errors printed in dmesg for this device?
>>
>> What does "usbconfig -d X.Y dump_device_desc dump_curr_config_desc"
>> where X.Y are numbers after ugenX.Y, output?
> 
> Hi,
> 
> no errors, it looks like it should work, but cu(1) doesn't show the
> console output.
> 
> # kldload umodem
> umodem0 on uhub1
> umodem0: <Cisco Cisco USB Console, class 2/0, rev 2.00/0.00, addr 1> on
> usbus0
> umodem0: data interface 1, has no CM over data, has no break
> 
> # usbconfig -d ugen0.2 dump_device_desc dump_curr_config_desc
> ugen0.2: <Cisco Cisco USB Console> at usbus0, cfg=0 md=HOST spd=FULL
> (12Mbps) pwr=ON (100mA)
> 
>    bLength = 0x0012
>    bDescriptorType = 0x0001
>    bcdUSB = 0x0200
>    bDeviceClass = 0x0002  <Communication device>
>    bDeviceSubClass = 0x0000
>    bDeviceProtocol = 0x0000
>    bMaxPacketSize0 = 0x0008
>    idVendor = 0x05a6
>    idProduct = 0x0009
>    bcdDevice = 0x0000
>    iManufacturer = 0x0001  <Cisco>
>    iProduct = 0x0002  <Cisco USB Console>
>    iSerialNumber = 0x0000  <no string>
>    bNumConfigurations = 0x0001
> 
> 
>   Configuration index 0
> 
>      bLength = 0x0009
>      bDescriptorType = 0x0002
>      wTotalLength = 0x0043
>      bNumInterfaces = 0x0002
>      bConfigurationValue = 0x0001
>      iConfiguration = 0x0003  <USB-UART Configuration>
>      bmAttributes = 0x00c0
>      bMaxPower = 0x0032
> 
>      Interface 0
>        bLength = 0x0009
>        bDescriptorType = 0x0004
>        bInterfaceNumber = 0x0000
>        bAlternateSetting = 0x0000
>        bNumEndpoints = 0x0001
>        bInterfaceClass = 0x0002  <Communication device>
>        bInterfaceSubClass = 0x0002
>        bInterfaceProtocol = 0x0001
>        iInterface = 0x0000  <no string>
> 
>        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, 0x02
> 
> 
>        Additional Descriptor
> 
>        bLength = 0x05
>        bDescriptorType = 0x24
>        bDescriptorSubType = 0x06
>         RAW dump:
>         0x00 | 0x05, 0x24, 0x06, 0x00, 0x01
> 
> 
>        Additional Descriptor
> 
>        bLength = 0x05
>        bDescriptorType = 0x24
>        bDescriptorSubType = 0x01
>         RAW dump:
>         0x00 | 0x05, 0x24, 0x01, 0x00, 0x01
> 
> 
>       Endpoint 0
>          bLength = 0x0007
>          bDescriptorType = 0x0005
>          bEndpointAddress = 0x0081  <IN>
>          bmAttributes = 0x0003  <INTERRUPT>
>          wMaxPacketSize = 0x0008
>          bInterval = 0x0002
>          bRefresh = 0x0000
>          bSynchAddress = 0x0000
> 
> 
>      Interface 1
>        bLength = 0x0009
>        bDescriptorType = 0x0004
>        bInterfaceNumber = 0x0001
>        bAlternateSetting = 0x0000
>        bNumEndpoints = 0x0002
>        bInterfaceClass = 0x000a  <CDC-data>
>        bInterfaceSubClass = 0x0000
>        bInterfaceProtocol = 0x0000
>        iInterface = 0x0000  <no string>
> 
>       Endpoint 0
>          bLength = 0x0007
>          bDescriptorType = 0x0005
>          bEndpointAddress = 0x0082  <IN>
>          bmAttributes = 0x0002  <BULK>
>          wMaxPacketSize = 0x0040
>          bInterval = 0x0000
>          bRefresh = 0x0000
>          bSynchAddress = 0x0000
> 
>       Endpoint 1
>          bLength = 0x0007
>          bDescriptorType = 0x0005
>          bEndpointAddress = 0x0003  <OUT>
>          bmAttributes = 0x0002  <BULK>
>          wMaxPacketSize = 0x0020
>          bInterval = 0x0000
>          bRefresh = 0x0000
>          bSynchAddress = 0x0000
> 
> 
> # cu -l /dev/cuaU0
> Connected
> 
> <nothing here>
> 

Did you try "-s" option to set another baudrate?

--HPS


More information about the freebsd-usb mailing list