u3g? SoftBank C01SW (Sierra Wireless HSDPA modem)

Michael freebsdusb at bindone.de
Sun Jun 14 15:15:30 UTC 2009


Hans Petter Selasky wrote:
> On Sunday 14 June 2009 16:02:24 Norikatsu Shigemura wrote:
>> Hi
>>
>> 	I'm evaluating Softbank C01SW (Sierra Wireless HSDPA modem).
>> 	Maybe, its driver is u3g(4).  But I can't use it.  So I research
>> 	its information, and I found that it was supported on OpenBSD.
>>
>> http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/usb/umsm.c.diff?r1=1.45;r
>> 2=1.46;f=h
>>
>> 	I read u3g.c, I think already supported Tru-install, but no
>> 	information of C01SW.  I don't know that how should I fix.
>> 	So please fix to support, and I can test patch.
>>
>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> - - - - - - - - - - # usbconfig -u 1 -a 2 dump_all_config_desc
>> ugen1.2: <HSPA Modem Sierra Wireless, Incorporated> at usbus1, cfg=0
>> md=HOST spd=HIGH (480Mbps) pwr=ON
>>
>>
>>  Configuration index 0
>>
>>     bLength = 0x0009
>>     bDescriptorType = 0x0002
>>     wTotalLength = 0x00dd
>>     bNumInterfaces = 0x0008
>>     bConfigurationValue = 0x0001
>>     iConfiguration = 0x0003  <4*>
>>     bmAttributes = 0x00e0
>>     bMaxPower = 0x0000
>>
>>     Interface 0
>>       bLength = 0x0009
>>       bDescriptorType = 0x0004
>>       bInterfaceNumber = 0x0000
>>       bAlternateSetting = 0x0000
>>       bNumEndpoints = 0x0002
>>       bInterfaceClass = 0x00ff
>>       bInterfaceSubClass = 0x00ff
>>       bInterfaceProtocol = 0x00ff
>>       iInterface = 0x0000  <no string>
>>
>>      Endpoint 0
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0081
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0020
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>      Endpoint 1
>>         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 = 0x0082
>>         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 = 0x0083
>>         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 = 0x0003
>>       bInterfaceClass = 0x00ff
>>       bInterfaceSubClass = 0x00ff
>>       bInterfaceProtocol = 0x00ff
>>       iInterface = 0x0000  <no string>
>>
>>      Endpoint 0
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0084
>>         bmAttributes = 0x0003
>>         wMaxPacketSize = 0x0040
>>         bInterval = 0x0005
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>      Endpoint 1
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0085
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0020
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>      Endpoint 2
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0004
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0020
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>
>>     Interface 4
>>       bLength = 0x0009
>>       bDescriptorType = 0x0004
>>       bInterfaceNumber = 0x0004
>>       bAlternateSetting = 0x0000
>>       bNumEndpoints = 0x0003
>>       bInterfaceClass = 0x00ff
>>       bInterfaceSubClass = 0x00ff
>>       bInterfaceProtocol = 0x00ff
>>       iInterface = 0x0000  <no string>
>>
>>      Endpoint 0
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0086
>>         bmAttributes = 0x0003
>>         wMaxPacketSize = 0x0040
>>         bInterval = 0x0005
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>      Endpoint 1
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0087
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0020
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>      Endpoint 2
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0005
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0020
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>
>>     Interface 5
>>       bLength = 0x0009
>>       bDescriptorType = 0x0004
>>       bInterfaceNumber = 0x0005
>>       bAlternateSetting = 0x0000
>>       bNumEndpoints = 0x0003
>>       bInterfaceClass = 0x00ff
>>       bInterfaceSubClass = 0x00ff
>>       bInterfaceProtocol = 0x00ff
>>       iInterface = 0x0000  <no string>
>>
>>      Endpoint 0
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0088
>>         bmAttributes = 0x0003
>>         wMaxPacketSize = 0x0040
>>         bInterval = 0x0005
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>      Endpoint 1
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0089
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0020
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>      Endpoint 2
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0006
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0020
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>
>>     Interface 6
>>       bLength = 0x0009
>>       bDescriptorType = 0x0004
>>       bInterfaceNumber = 0x0006
>>       bAlternateSetting = 0x0000
>>       bNumEndpoints = 0x0003
>>       bInterfaceClass = 0x00ff
>>       bInterfaceSubClass = 0x00ff
>>       bInterfaceProtocol = 0x00ff
>>       iInterface = 0x0000  <no string>
>>
>>      Endpoint 0
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x008a
>>         bmAttributes = 0x0003
>>         wMaxPacketSize = 0x0040
>>         bInterval = 0x0005
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>      Endpoint 1
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x008b
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0020
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>      Endpoint 2
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0007
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0020
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>
>>     Interface 7
>>       bLength = 0x0009
>>       bDescriptorType = 0x0004
>>       bInterfaceNumber = 0x0007
>>       bAlternateSetting = 0x0000
>>       bNumEndpoints = 0x0002
>>       bInterfaceClass = 0x0008
>>       bInterfaceSubClass = 0x0006
>>       bInterfaceProtocol = 0x0050
>>       iInterface = 0x0000  <no string>
>>
>>      Endpoint 0
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x0008
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0000
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>>
>>      Endpoint 1
>>         bLength = 0x0007
>>         bDescriptorType = 0x0005
>>         bEndpointAddress = 0x008c
>>         bmAttributes = 0x0002
>>         wMaxPacketSize = 0x0200
>>         bInterval = 0x0000
>>         bRefresh = 0x0000
>>         bSynchAddress = 0x0000
>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> - - - - - - - - - -
>>
>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> - - - - - - - - - - Jun 14 22:24:07 melfina kernel: u3g_sierra_init:233:
>> Jun 14 22:24:08 melfina kernel: usb2_alloc_device:1762: Found Huawei
>> auto-install disk! Jun 14 22:24:08 melfina kernel: ugen1.2: <Sierra
>> Wireless, Incorporated> at usbus1 Jun 14 22:24:08 melfina kernel: ugen1.2:
>> <Sierra Wireless, Incorporated> at usbus1 (disconnected) Jun 14 22:24:08
>> melfina kernel: uhub_reattach_port:416: could not allocate new device! Jun
>> 14 22:24:09 melfina kernel: ugen1.2: <Sierra Wireless, Incorporated> at
>> usbus1 Jun 14 22:24:09 melfina kernel: umass0: <Sierra Wireless,
>> Incorporated HSPA Modem, class 0/0, rev 2.00/0.05, addr 2> on usbus1 Jun 14
>> 22:24:09 melfina kernel: umass0:  SCSI over Bulk-Only; quirks = 0x0000 Jun
>> 14 22:24:09 melfina root: Unknown USB device: vendor 0x1199 product 0x6890
>> bus uhub1 Jun 14 22:24:10 melfina kernel: umass0:0:0:-1: Attached to scbus0
>> Jun 14 22:24:10 melfina kernel: (probe0:umass-sim0:0:0:0): error 22
>> Jun 14 22:24:10 melfina kernel: (probe0:umass-sim0:0:0:0): Unretryable
>> Error Jun 14 22:24:11 melfina kernel: (probe0:umass-sim0:0:0:0): TEST UNIT
>> READY. CDB: 0 0 0 0 0 0 Jun 14 22:24:11 melfina kernel:
>> (probe0:umass-sim0:0:0:0): CAM Status: SCSI Status Error Jun 14 22:24:11
>> melfina kernel: (probe0:umass-sim0:0:0:0): SCSI Status: Check Condition Jun
>> 14 22:24:11 melfina kernel: (probe0:umass-sim0:0:0:0): NOT READY asc:3a,0
>> Jun 14 22:24:11 melfina kernel: (probe0:umass-sim0:0:0:0): Medium not
>> present Jun 14 22:24:11 melfina kernel: (probe0:umass-sim0:0:0:0):
>> (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 Jun 14
>> 22:24:11 melfina kernel: (probe0:umass-sim0:0:0:0): NOT READY asc:3a,0 Jun
>> 14 22:24:11 melfina kernel: (probe0:umass-sim0:0:0:0): Medium not present
>> Jun 14 22:24:11 melfina kernel: Unretryable error
>> Jun 14 22:24:11 melfina kernel: (probe0:umass-sim0:0:0:0): error 6
>> Jun 14 22:24:11 melfina kernel: (probe0:umass-sim0:0:0:0): Unretryable
>> Error Jun 14 22:24:11 melfina kernel: pass0 at umass-sim0 bus 0 target 0
>> lun 0 Jun 14 22:24:11 melfina kernel: pass0: <C01SW SD Card 2.31> Fixed
>> Direct Access SCSI-2 device Jun 14 22:24:11 melfina kernel: pass0:
>> 40.000MB/s transfers
>> Jun 14 22:24:11 melfina kernel: GEOM: new disk da0
>> Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): error 6
>> Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): Unretryable Error
>> Jun 14 22:24:11 melfina kernel: da0 at umass-sim0 bus 0 target 0 lun 0
>> Jun 14 22:24:11 melfina kernel: da0: <C01SW SD Card 2.31> Fixed Direct
>> Access SCSI-2 device Jun 14 22:24:11 melfina kernel: da0: 40.000MB/s
>> transfers
>> Jun 14 22:24:11 melfina kernel: da0: Attempt to query device size failed:
>> NOT READY, Medium not present Jun 14 22:24:11 melfina kernel:
>> (da0:umass-sim0:0:0:0): READ CAPACITY(10). CDB: 25 0 0 0 0 0 0 0 0 0 Jun 14
>> 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): CAM Status: SCSI Status
>> Error Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): SCSI Status:
>> Check Condition Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): NOT
>> READY asc:3a,0 Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0):
>> Medium not present Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0):
>> (da0:umass-sim0:0:0:0): READ CAPACITY(10). CDB: 25 0 0 0 0 0 0 0 0 0 Jun 14
>> 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): NOT READY asc:3a,0 Jun 14
>> 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): Medium not present Jun 14
>> 22:24:11 melfina kernel: Unretryable error
>> Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): error 6
>> Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): Unretryable Error
>> Jun 14 22:24:11 melfina kernel: Opened disk da0 -> 6
>> Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): READ CAPACITY(10).
>> CDB: 25 0 0 0 0 0 0 0 0 0 Jun 14 22:24:11 melfina kernel:
>> (da0:umass-sim0:0:0:0): CAM Status: SCSI Status Error Jun 14 22:24:11
>> melfina kernel: (da0:umass-sim0:0:0:0): SCSI Status: Check Condition Jun 14
>> 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): NOT READY asc:3a,0 Jun 14
>> 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): Medium not present Jun 14
>> 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): (da0:umass-sim0:0:0:0):
>> READ CAPACITY(10). CDB: 25 0 0 0 0 0 0 0 0 0 Jun 14 22:24:11 melfina
>> kernel: (da0:umass-sim0:0:0:0): NOT READY asc:3a,0 Jun 14 22:24:11 melfina
>> kernel: (da0:umass-sim0:0:0:0): Medium not present Jun 14 22:24:11 melfina
>> kernel: Unretryable error
>> Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): error 6
>> Jun 14 22:24:11 melfina kernel: (da0:umass-sim0:0:0:0): Unretryable Error
>> Jun 14 22:24:11 melfina kernel: Opened disk da0 -> 6
> 
> Did you kldload u3g before plugging the device?
> 
> You can use usbconfig -u X -a Y do_request
> 
> to issue the eject control request to the device.
> 
> --HPS
> _______________________________________________
> freebsd-usb at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-usb
> To unsubscribe, send any mail to "freebsd-usb-unsubscribe at freebsd.org"

It's definitely functional (I'm using the same device), search the email
archives for the discussion between HPS and me about getting this
working (usb2 of course).

Also note, that depending on your the machine you're owning you've got
to turn it own separately.

Basic idea is:
kldload usb2_serial_3g
kldload usb2_controller_uhci
(kldload usb2_controller_ehci)

This should give you multiple serial devices in /dev.

regards
michael


More information about the freebsd-usb mailing list