FreeBSD and Sierra Wireless AirCard 313U
Mike Tancsa
mike at sentex.net
Tue Feb 14 21:21:19 UTC 2012
In case anyone else is looking to get this LTE card working on FreeBSD,
the following simple device patches work for me. I submitted a PR as
well (http://www.freebsd.org/cgi/query-pr.cgi?pr=165154)
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*
# 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),
---Mike
--
-------------------
Mike Tancsa, tel +1 519 651 3400
Sentex Communications, mike at sentex.net
Providing Internet services since 1994 www.sentex.net
Cambridge, Ontario Canada http://www.tancsa.com/
More information about the freebsd-usb
mailing list