1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Vodafone/Huawei K3770 with usb_modeswitch

Discussion in 'Peripheral Hardware' started by Ahmed, Mar 30, 2012.

  1. Ahmed

    Ahmed New Member

    Messages:
    8
    Thanks Received:
    0
    Hi all,

    I am trying to get a "Vodafone/Huawei K3770" working on FreeBSD 8.2.

    When I insert the modem, I find only 2 USB files for it under /dev/usb.

    Code:
    # usbconfig -u 7 -a 2 dump_device_desc
    ugen7.2: <Vodafone Mobile Broadband (Huawei) HUAWEI> 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 = 0x14d1
      bcdDevice = 0x0102 
      iManufacturer = 0x0002  <HUAWEI>
      iProduct = 0x0001  <Vodafone Mobile Broadband (Huawei)>
      iSerialNumber = 0x0000  <no string>
      bNumConfigurations = 0x0001 
    
    # file /dev/usb/7.2*
    /dev/usb/7.2.0:  character special
    /dev/usb/7.2.15: character special
    


    I am using usb_modeswitch to activate the modem.

    Code:
    # usb_modeswitch -v 0x12d1 -p 0x14d1 -c 12d1\:14d1 
    
    Looking for target devices ...
     No devices in target mode or class found
    Looking for default devices ...
       found matching product ID
       adding device
     Found device in default mode, class or configuration (1)
    Accessing device 012 on bus 000 ...
    Getting the current device configuration ...
     OK, got current device configuration (1)
    Using first interface: 0x00
    Using endpoints 0x0f (out) and 0x8f (in)
    Inquiring device details; driver will be detached ...
     Cant't do driver detection and detaching on this platform.
    
    SCSI inquiry data (for identification)
    -------------------------
      Vendor String: Vodafone
       Model String: CD ROM (Huawei) 
    Revision String: 2.31
    -------------------------
    
    USB description data (for identification)
    -------------------------
    Manufacturer: HUAWEI
         Product: Vodafone Mobile Broadband (Huawei)
      Serial No.: not provided
    -------------------------
    Setting up communication with interface 0
    Using endpoint 0x0f for message sending ...
    Trying to send message 1 to endpoint 0x0f ...
     OK, message successfully sent
    Resetting response endpoint 0x8f
    Resetting message endpoint 0x0f
    -> Run lsusb to note any changes. Bye.
    


    The contents of 12d1:14d is:

    Code:
    TargetVendor=0x12d1
    TargetProduct=0x14c9
    
    MessageContent="55534243123456780000000000000011062000000100000000000000000000"
    


    After I issue the command, I could see more devices added to /dev/usb and the Product ID changes accordingly.

    Code:
    # usbconfig -u 7 -a 2 dump_device_desc
    ugen7.2: <Vodafone Mobile Broadband (Huawei) HUAWEI> 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 = 0x14c9 
      bcdDevice = 0x0102 
      iManufacturer = 0x0003  <HUAWEI>
      iProduct = 0x0002  <Vodafone Mobile Broadband (Huawei)>
      iSerialNumber = 0x0000  <no string>
      bNumConfigurations = 0x0001 
    
    # file /dev/usb/7.2*
    /dev/usb/7.2.0:  character special
    /dev/usb/7.2.10: character special
    /dev/usb/7.2.11: character special
    /dev/usb/7.2.12: character special
    /dev/usb/7.2.13: character special
    /dev/usb/7.2.14: character special
    /dev/usb/7.2.15: character special
    /dev/usb/7.2.9:  character special
    


    After that I did dmesg, but I see the device to be detected as a umass storage.

    Code:
    # dmesg | tail
    umass0:  SCSI over Bulk-Only; quirks = 0x0000
    umass0:0:0:-1: Attached to scbus0
    (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
    (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
    (probe0:umass-sim0:0:0:0): SCSI status: Check Condition
    (probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present)
    cd0 at umass-sim0 bus 0 scbus0 target 0 lun 0
    cd0: <Vodafone CD ROM (Huawei) 2.31> Removable CD-ROM SCSI-2 device 
    cd0: 40.000MB/s transfers
    cd0: Attempt to query device size failed: NOT READY, Medium not present
    


    I found out that under linux the "usbserial" module is unloaded then loaded using:

    # modprobe usbserial vendor=0x12d1 product=0x14c9

    But I don't know how to do that under FreeBSD.

    I have no clue what to do, and any help is very much appreciated.

    Best Regards,
    Ahmed