Got my hands on a SprintPCS Sierra Wireless AirCard 595 for testing out connectivity under linux (Xubuntu 6.10, to be precise (and now Debian Etch)) – works perfectly 🙂
Plug the card in, and dmesg should show similar to:
[17188167.136000] pccard: CardBus card inserted into slot 0
[17188167.212000] ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
[17188167.216000] PCI: Enabling device 0000:16:00.0 (0000 -> 0002)
[17188167.216000] ACPI: PCI Interrupt 0000:16:00.0[A] -> GSI 16 (level, low) -> IRQ 169
[17188167.216000] PCI: Setting latency timer of device 0000:16:00.0 to 64
[17188167.216000] ohci_hcd 0000:16:00.0: OHCI Host Controller
[17188167.216000] ohci_hcd 0000:16:00.0: new USB bus registered, assigned bus number 6
[17188167.216000] ohci_hcd 0000:16:00.0: irq 169, io mem 0xe6000000
[17188167.300000] usb usb6: configuration #1 chosen from 1 choice
[17188167.300000] hub 6-0:1.0: USB hub found
[17188167.300000] hub 6-0:1.0: 1 port detected
[17188167.404000] PCI: Enabling device 0000:16:00.1 (0000 -> 0002)
[17188167.404000] ACPI: PCI Interrupt 0000:16:00.1[B] -> GSI 16 (level, low) -> IRQ 169
[17188167.404000] PCI: Setting latency timer of device 0000:16:00.1 to 64
[17188167.404000] ohci_hcd 0000:16:00.1: OHCI Host Controller
[17188167.404000] ohci_hcd 0000:16:00.1: new USB bus registered, assigned bus number 7
[17188167.404000] ohci_hcd 0000:16:00.1: irq 169, io mem 0xe6001000
[17188167.488000] usb usb7: configuration #1 chosen from 1 choice
[17188167.488000] hub 7-0:1.0: USB hub found
[17188167.488000] hub 7-0:1.0: 1 port detected
[17188168.532000] ohci_hcd 0000:16:00.0: wakeup
[17188168.916000] usb 6-1: new full speed USB device using ohci_hcd and address 2
[17188169.128000] usb 6-1: configuration #1 chosen from 1 choice
In order to use it as a modem, we need to find the vendor and product ID’s and fire up the USB serial device, as follows:
mshuler@kokopelli:~$ lsusb
Bus 006 Device 002: ID 1199:0019 Sierra Wireless, Inc.
...
mshuler@kokopelli:~$ sudo modprobe usbserial vendor=0x1199 product=0x0019
Another check of dmesg should show:
[17188531.644000] usbcore: registered new driver usbserial
[17188531.648000] drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
[17188531.648000] usbserial_generic 6-1:1.0: generic converter detected
[17188531.648000] usb 6-1: generic converter now attached to ttyUSB0
[17188531.648000] usb 6-1: generic converter now attached to ttyUSB1
[17188531.648000] usb 6-1: generic converter now attached to ttyUSB2
[17188531.648000] usbcore: registered new driver usbserial_generic
[17188531.648000] drivers/usb/serial/usb-serial.c: USB Serial Driver core
In /etc/modprobe.d/options I added the following line so that the module loads up automagically:
options usbserial vendor=0x1199 product=0x0019
Set up peer and chat scripts and start PPP – I have been using the following, flawlessly, this afternoon:
mshuler@kokopelli:~$ cat /etc/ppp/peers/sprint
# You usually need this if there is no PAP authentication
noauth
# The chat script
connect "/usr/sbin/chat -v -f /etc/ppp/peers/sprint_chat"
# Set up routing to go through this PPP link
defaultroute
# Use remote DNS
usepeerdns
# Default modem
/dev/ttyUSB0
# Connect at high speed
230400
local
novj
lcp-echo-failure 4
lcp-echo-interval 65535
mshuler@kokopelli:~$ cat /etc/ppp/peers/sprint_chat
TIMEOUT 5
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
TIMEOUT 12
OK ATD#777
TIMEOUT 60
CONNECT ""
mshuler@kokopelli:~$ pon sprint
/var/log/syslog should show similar to:
Dec 5 17:02:56 kokopelli pppd[7175]: pppd 2.4.4 started by mshuler, uid 1000
Dec 5 17:02:56 kokopelli chat[7177]: timeout set to 5 seconds
Dec 5 17:02:56 kokopelli chat[7177]: abort on (\nBUSY\r)
Dec 5 17:02:56 kokopelli chat[7177]: abort on (\nERROR\r)
Dec 5 17:02:56 kokopelli chat[7177]: abort on (\nNO ANSWER\r)
Dec 5 17:02:56 kokopelli chat[7177]: abort on (\nNO CARRIER\r)
Dec 5 17:02:56 kokopelli chat[7177]: abort on (\nNO DIALTONE\r)
Dec 5 17:02:56 kokopelli chat[7177]: abort on (\nRINGING\r\n\r\nRINGING\r)
Dec 5 17:02:56 kokopelli chat[7177]: send (^MAT^M)
Dec 5 17:02:56 kokopelli chat[7177]: timeout set to 12 seconds
Dec 5 17:02:56 kokopelli chat[7177]: expect (OK)
Dec 5 17:02:56 kokopelli chat[7177]: ^M
Dec 5 17:02:56 kokopelli chat[7177]: OK
Dec 5 17:02:56 kokopelli chat[7177]: -- got it
Dec 5 17:02:56 kokopelli chat[7177]: send (ATD#777^M)
Dec 5 17:02:56 kokopelli chat[7177]: timeout set to 60 seconds
Dec 5 17:02:56 kokopelli chat[7177]: expect (CONNECT)
Dec 5 17:02:56 kokopelli chat[7177]: ^M
Dec 5 17:03:00 kokopelli chat[7177]: ^M
Dec 5 17:03:00 kokopelli chat[7177]: CONNECT
Dec 5 17:03:00 kokopelli chat[7177]: -- got it
Dec 5 17:03:00 kokopelli chat[7177]: send (^M)
Dec 5 17:03:00 kokopelli pppd[7175]: Serial connection established.
Dec 5 17:03:00 kokopelli pppd[7175]: Using interface ppp0
Dec 5 17:03:00 kokopelli pppd[7175]: Connect: ppp0 <--> /dev/ttyUSB0
Dec 5 17:03:01 kokopelli pppd[7175]: Cannot determine ethernet address for proxy ARP
Dec 5 17:03:01 kokopelli pppd[7175]: local IP address 68.241.119.149
Dec 5 17:03:01 kokopelli pppd[7175]: remote IP address 68.28.177.69
Dec 5 17:03:01 kokopelli pppd[7175]: primary DNS address 68.28.178.11
Dec 5 17:03:01 kokopelli pppd[7175]: secondary DNS address 68.28.186.11
Happy roaming!