Bug 137377 - [usb8] request support for Huawei E180
Summary: [usb8] request support for Huawei E180
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: usb (show other bugs)
Version: unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-usb mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-03 07:50 UTC by Carlo Strub
Modified: 2015-09-20 20:06 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Carlo Strub freebsd_committer 2009-08-03 07:50:01 UTC
Attaching a Huawei E180 3G USB modem yields the following message:

====================
Aug  3 08:26:06 c-st root: Unknown USB device: vendor 0x12d1 product 0x1003 bus uhub2
Aug  3 08:26:06 c-st kernel: ugen2.5: <HUAWEI Technology> at usbus2
Aug  3 08:26:06 c-st kernel: umass0: <HUAWEI Technology HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 5> on usbus2
Aug  3 08:26:06 c-st kernel: umass0:  SCSI over Bulk-Only; quirks = 0x0000
Aug  3 08:26:07 c-st root: Unknown USB device: vendor 0x12d1 product 0x1003 bus uhub2
Aug  3 08:26:07 c-st kernel: umass0:1:0:-1: Attached to scbus1
Aug  3 08:26:07 c-st kernel: umass1: <HUAWEI Technology HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 5> on usbus2
Aug  3 08:26:07 c-st kernel: umass1:  SCSI over Bulk-Only; quirks = 0x0000
Aug  3 08:26:08 c-st kernel: (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
Aug  3 08:26:08 c-st kernel: (probe0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
Aug  3 08:26:08 c-st kernel: (probe0:umass-sim0:0:0:0): SCSI Status: Check Condition
Aug  3 08:26:08 c-st kernel: (probe0:umass-sim0:0:0:0): NOT READY asc:3a,0
Aug  3 08:26:08 c-st kernel: (probe0:umass-sim0:0:0:0): Medium not present
Aug  3 08:26:08 c-st kernel: (probe0:umass-sim0:0:0:0): Unretryable error
Aug  3 08:26:08 c-st kernel: cd0 at umass-sim0 bus 0 target 0 lun 0
====================

Note that this device is not (!) the same as the already patched Huawei E180v.
Comment 1 Hans Petter Selasky 2009-08-03 12:38:56 UTC
Please provide output from:

usbconfig -u XXX -a YYY dump_device_desc dump_curr_config_desc

Where XXX and YYY are the numbers after ugen.

--HPS
Comment 2 Carlo Strub freebsd_committer 2009-08-03 20:37:50 UTC
Sorry, forgot to attach it. Here is the output:

------>
usbconfig -u 2 -a 6 dump_device_desc dump_curr_config_desc                 
                                
ugen2.6: <HUAWEI Mobile HUAWEI Technology> at usbus2, cfg=0 md=HOST
spd=HIGH (480Mbps) pwr=ON                     

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0200          
  bDeviceClass = 0x0000    
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x12d1        
  idProduct = 0x1003       
  bcdDevice = 0x0000       
  iManufacturer = 0x0002  <HUAWEI Technology>
  iProduct = 0x0001  <HUAWEI Mobile>         
  iSerialNumber = 0x0000  <no string>        
  bNumConfigurations = 0x0001                


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x00c4    
    bNumInterfaces = 0x0004  
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00e0               
    bMaxPower = 0x00fa                  

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0003     
      bInterfaceClass = 0x00ff   
      bInterfaceSubClass = 0x00ff 
      bInterfaceProtocol = 0x00ff 
      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 = 0x01
       RAW dump:               
       0x00 | 0x05, 0x24, 0x01, 0x03, 0x00


      Additional Descriptor

      bLength = 0x05
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump:               
       0x00 | 0x05, 0x24, 0x06, 0x00, 0x00


      Additional Descriptor

      bLength = 0x15
      bDescriptorType = 0x24
      bDescriptorSubType = 0x12
       RAW dump:               
       0x00 | 0x15, 0x24, 0x12, 0x20, 0x01, 0x98, 0xb0, 0x6a, 
       0x08 | 0x49, 0xb0, 0x9e, 0x48, 0x96, 0x94, 0x46, 0xd9, 
       0x10 | 0x9a, 0x28, 0xca, 0x4e, 0x5d                    


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x13
       RAW dump:               
       0x00 | 0x06, 0x24, 0x13, 0x00, 0x01, 0x10


     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081 
        bmAttributes = 0x0003     
        wMaxPacketSize = 0x0040   
        bInterval = 0x0005        
        bRefresh = 0x0000         
        bSynchAddress = 0x0000    

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0082 
        bmAttributes = 0x0002     
        wMaxPacketSize = 0x0200   
        bInterval = 0x0020        
        bRefresh = 0x0000         
        bSynchAddress = 0x0000    

     Endpoint 2
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0001 
        bmAttributes = 0x0002     
        wMaxPacketSize = 0x0200   
        bInterval = 0x0020        
        bRefresh = 0x0000         
        bSynchAddress = 0x0000    


    Interface 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0002     
      bInterfaceClass = 0x00ff   
      bInterfaceSubClass = 0x00ff 
      bInterfaceProtocol = 0x00ff 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x05
      bDescriptorType = 0x24
      bDescriptorSubType = 0x00
       RAW dump:               
       0x00 | 0x05, 0x24, 0x00, 0x10, 0x01


      Additional Descriptor

      bLength = 0x05
      bDescriptorType = 0x24
      bDescriptorSubType = 0x15
       RAW dump:               
       0x00 | 0x05, 0x24, 0x15, 0x00, 0x01


      Additional Descriptor

      bLength = 0x05
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump:               
       0x00 | 0x05, 0x24, 0x06, 0x01, 0x01


      Additional Descriptor

      bLength = 0x15
      bDescriptorType = 0x24
      bDescriptorSubType = 0x12
       RAW dump:               
       0x00 | 0x15, 0x24, 0x12, 0x20, 0x01, 0x98, 0xb0, 0x6a, 
       0x08 | 0x49, 0xb0, 0x9e, 0x48, 0x96, 0x94, 0x46, 0xd9, 
       0x10 | 0x9a, 0x28, 0xca, 0x4e, 0x5d                    


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x13
       RAW dump:               
       0x00 | 0x06, 0x24, 0x13, 0x00, 0x01, 0x10


     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0083 
        bmAttributes = 0x0002     
        wMaxPacketSize = 0x0200   
        bInterval = 0x0020        
        bRefresh = 0x0000         
        bSynchAddress = 0x0000    

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0002 
        bmAttributes = 0x0002     
        wMaxPacketSize = 0x0200   
        bInterval = 0x0020        
        bRefresh = 0x0000         
        bSynchAddress = 0x0000    


    Interface 2
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0002 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0002     
      bInterfaceClass = 0x0008   
      bInterfaceSubClass = 0x0006 
      bInterfaceProtocol = 0x0050 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0084 
        bmAttributes = 0x0002     
        wMaxPacketSize = 0x0200   
        bInterval = 0x0000        
        bRefresh = 0x0000         
        bSynchAddress = 0x0000    

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0003 
        bmAttributes = 0x0002     
        wMaxPacketSize = 0x0200   
        bInterval = 0x0000        
        bRefresh = 0x0000         
        bSynchAddress = 0x0000    


    Interface 3
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0003 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0002     
      bInterfaceClass = 0x0008   
      bInterfaceSubClass = 0x0006 
      bInterfaceProtocol = 0x0050 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0004 
        bmAttributes = 0x0002     
        wMaxPacketSize = 0x0200   
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0085
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

-----------
Comment 3 dotyao 2010-02-11 09:17:37 UTC
HUAWEI E180

roy# usbconfig -u 7 -a 2 dump_device_desc dump_curr_config_desc
ugen7.2: <HUAWEI Mobile HUAWEI Technology> at usbus7, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=ON

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0200
  bDeviceClass = 0x0000
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0040
  idVendor = 0x12d1
  idProduct = 0x1001
  bcdDevice = 0x0000
  iManufacturer = 0x0003  <HUAWEI Technology>
  iProduct = 0x0002  <HUAWEI Mobile>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001


 Configuration index 0

    bLength = 0x0009
    bDescriptorType = 0x0002
    wTotalLength = 0x0083
    bNumInterfaces = 0x0005
    bConfigurationValue = 0x0001
    iConfiguration = 0x0001  <Huawei   Configuration>
    bmAttributes = 0x00e0
    bMaxPower = 0x00fa

    Interface 0
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0000
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0003
      bInterfaceClass = 0x00ff
      bInterfaceSubClass = 0x00ff
      bInterfaceProtocol = 0x00ff
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081
        bmAttributes = 0x0003
        wMaxPacketSize = 0x0040
        bInterval = 0x0005
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0082
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0020
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 2
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0001
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0020
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 1
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x00ff
      bInterfaceSubClass = 0x00ff
      bInterfaceProtocol = 0x00ff
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0083
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0020
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0002
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0020
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 2
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0002
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x00ff
      bInterfaceSubClass = 0x00ff
      bInterfaceProtocol = 0x00ff
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0084
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0020
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0003
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0020
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 3
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0003
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0008
      bInterfaceSubClass = 0x0006
      bInterfaceProtocol = 0x0050
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0085
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0004
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 4
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0004
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0008
      bInterfaceSubClass = 0x0006
      bInterfaceProtocol = 0x0050
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0005
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0086
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000