Vodafone/Huawei K3770 with usb_modeswitch

Ahmed Ossama ahmed at aossama.net
Tue Apr 3 10:22:34 UTC 2012


 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.

 # 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.

 # 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:

 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.

 # 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.

 # 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 Ossama


More information about the freebsd-questions mailing list