Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Feb 2012 21:17:02 GMT
From:      mike tancsa <mike@sentex.ca>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   usb/165154: USB patch for new u3g device
Message-ID:  <201202142117.q1ELH2ai003311@red.freebsd.org>
Resent-Message-ID: <201202142120.q1ELK7D6044172@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         165154
>Category:       usb
>Synopsis:       USB patch for new u3g device
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-usb
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Feb 14 21:20:07 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     mike tancsa
>Release:        RELENG_8
>Organization:
Sentex Communications
>Environment:
8.2-STABLE FreeBSD 8.2-STABLE #0: Tue Feb 14 14:24:26 EST 2012  i386
>Description:
Hi,
Sierra has a new air card to do LTE (Aircard 313U). It seems to work well with FreeBSD after the simple patches below.


ugen3.3: <AirCard 313U Sierra Wireless, Incorporated> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0200 
  bDeviceClass = 0x0000 
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x1199 
  idProduct = 0x68aa 
  bcdDevice = 0x0006 
  iManufacturer = 0x0003  <Sierra Wireless, Incorporated>
  iProduct = 0x0002  <AirCard 313U>
  iSerialNumber = 0x0004  <012698000027166>
  bNumConfigurations = 0x0001 




ugen3.3: <AirCard 313U Sierra Wireless, Incorporated> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x00bf 
    bNumInterfaces = 0x0007 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0001  <Sierra Configuration>
    bmAttributes = 0x00a0 
    bMaxPower = 0x00fa 

    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  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0020 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0002  <BULK>
        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  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0020 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0002  <OUT>
        bmAttributes = 0x0002  <BULK>
        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  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0020 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0003  <OUT>
        bmAttributes = 0x0002  <BULK>
        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  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040 
        bInterval = 0x0005 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0085  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0020 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 2
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0004  <OUT>
        bmAttributes = 0x0002  <BULK>
        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  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040 
        bInterval = 0x0005 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0087  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0020 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 2
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0005  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0020 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


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

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0006  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0000 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0088  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0000 
        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 = 0x0089  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040 
        bInterval = 0x0005 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x008a  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0020 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 2
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0007  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0020 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen3.3: <Sierra Wireless, Incorporated> at usbus3
ugen3.3: <Sierra Wireless, Incorporated> at usbus3 (disconnected)
ugen3.3: <Sierra Wireless, Incorporated> at usbus3
umass0: <Sierra Wireless, Incorporated AirCard 313U, class 0/0, rev 2.00/0.06, addr 3> on usbus3
umass0:  SCSI over Bulk-Only; quirks = 0x0000
umass0:2:0:-1: Attached to scbus2
(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)
da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: <SWI SD Card 2.31> Removable Direct Access SCSI-2 device 
da0: 40.000MB/s transfers
da0: Attempt to query device size failed: NOT READY, Medium not present
ipfw2 (+ipv6) initialized, divert loadable, nat loadable, rule-based forwarding disabled, default to accept, logging disabled
u3g0: <Sierra Wireless, Incorporated AirCard 313U, class 0/0, rev 2.00/0.06, addr 3> on usbus3
u3g0: Found 6 ports.




 ls -l /dev/cuaU*
crw-rw----  1 uucp  dialer  -   0, 106 Feb 14 15:12 /dev/cuaU0.0
crw-rw----  1 uucp  dialer  -   0, 107 Feb 14 15:12 /dev/cuaU0.0.init
crw-rw----  1 uucp  dialer  -   0, 108 Feb 14 15:12 /dev/cuaU0.0.lock
crw-rw----  1 uucp  dialer  -   0, 112 Feb 14 15:12 /dev/cuaU0.1
crw-rw----  1 uucp  dialer  -   0, 113 Feb 14 15:12 /dev/cuaU0.1.init
crw-rw----  1 uucp  dialer  -   0, 114 Feb 14 15:12 /dev/cuaU0.1.lock
crw-rw----  1 uucp  dialer  -   0, 118 Feb 14 15:12 /dev/cuaU0.2
crw-rw----  1 uucp  dialer  -   0, 119 Feb 14 15:12 /dev/cuaU0.2.init
crw-rw----  1 uucp  dialer  -   0, 120 Feb 14 15:12 /dev/cuaU0.2.lock
crw-rw----  1 uucp  dialer  -   0, 124 Feb 14 15:12 /dev/cuaU0.3
crw-rw----  1 uucp  dialer  -   0, 125 Feb 14 15:12 /dev/cuaU0.3.init
crw-rw----  1 uucp  dialer  -   0, 126 Feb 14 15:12 /dev/cuaU0.3.lock
crw-rw----  1 uucp  dialer  -   0, 130 Feb 14 15:12 /dev/cuaU0.4
crw-rw----  1 uucp  dialer  -   0, 131 Feb 14 15:12 /dev/cuaU0.4.init
crw-rw----  1 uucp  dialer  -   0, 132 Feb 14 15:12 /dev/cuaU0.4.lock
crw-rw----  1 uucp  dialer  -   0, 136 Feb 14 15:12 /dev/cuaU0.5
crw-rw----  1 uucp  dialer  -   0, 137 Feb 14 15:12 /dev/cuaU0.5.init
crw-rw----  1 uucp  dialer  -   0, 138 Feb 14 15:12 /dev/cuaU0.5.lock

The following PPP entry works form me


pppgprs:
 set device /dev/cuaU0.3
 set server /var/run/gprs-internet "" 0177
 #set speed 921600
 set timeout 0
 set authname wapuser1
 set authkey wap
 set dial "ABORT BUSY TIMEOUT 2 \
        \"\" \
        AT OK-AT-OK \
        AT+CFUN=1 OK-AT-OK \
        AT+CMEE=2 OK-AT-OK \
        AT+CSQ OK \
        AT+CGDCONT=1,\\\"IP\\\",\\\"internet.com\\\" OK \
        AT+CGACT? OK-AT-OK \
        AT+CGATT? OK \
        AT+CGCLASS? OK \
        AT+COPS? OK \
        AT+CNUM OK \
        AT&v OK \
        ATD*99# CONNECT"
 set crtscts on
 #set mtu maximum 296
 #set mru maximum 296
 disable vjcomp
 disable acfcomp
 disable deflate
 disable deflate24
 disable pred1
 disable protocomp
 disable mppe
 disable ipv6cp
 disable lqr
 disable echo
 nat enable yes 
 enable dns
 resolv writable
 set dns 8.8.8.8
 set ifaddr 10.1.0.2/0 10.1.0.1/0 255.255.255.255 0.0.0.0
 add default HISADDR          # See ppp.link* 






>How-To-Repeat:
attach the card
>Fix:
# diff -u usbdevs.prev usbdevs
--- usbdevs.prev        2012-02-14 15:06:33.000000000 -0500
+++ usbdevs     2012-02-14 15:13:29.000000000 -0500
@@ -2974,6 +2974,7 @@
 product SIERRA MC8790          0x683C  MC8790
 product SIERRA MC8791          0x683D  MC8791
 product SIERRA MC8792          0x683E  MC8792
+product SIERRA AC313U          0x68aa  Sierra Wireless AirCard 313U
 product SIERRA AC880           0x6850  Sierra Wireless AirCard 880
 product SIERRA AC881           0x6851  Sierra Wireless AirCard 881
 product SIERRA AC880E          0x6852  Sierra Wireless AirCard 880E

# diff -u u3g.c.prev u3g.c
--- u3g.c.prev  2012-02-14 15:05:02.000000000 -0500
+++ u3g.c       2012-02-14 15:13:52.000000000 -0500
@@ -432,6 +432,7 @@
        U3G_DEV(QUANTA, Q111, 0),
        U3G_DEV(SIERRA, AC402, 0),
        U3G_DEV(SIERRA, AC595U, 0),
+       U3G_DEV(SIERRA, AC313U, 0),
        U3G_DEV(SIERRA, AC597E, 0),
        U3G_DEV(SIERRA, AC875E, 0),
        U3G_DEV(SIERRA, AC875U, 0),



>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202142117.q1ELH2ai003311>