Wed, 17 Dec 2003

Nothing But Net

I've had a Sanyo SCP-4900 for a while now. I originally chose that model from Sprint PCS specifically because of a page I found while searching the web for "Linux" and "cell phone". My dream was to have a laptop, running Linux, and using some sort of no-hotspot-needed wireless.

It took me this long to actually get it working because the data cable I needed is seemingly extremely elusive. I couldn't find the original manufacturer or even most of the knock-offs available online. In the end, I found this. It arrived today, so I went back to Nate Carlson's page, excerpted below for people who don't like to click away from the story so far. You can go to his page for the straight poop.

Nate says:

Background: In my ever-lasting search for high speed wireless internet access, I decided to try out Sprint PCS's new Vision service. They recently dropped their prices. For $40/mo, I'm getting 300 anytime minutes, free long distance, and unlimited 'high speed' (56-144k) data (this is the Vision service). The best part is that the data service is simple to get working with Linux - all you need is the proper USB drivers, and the knowledge to set up a PPP connection. The phone's cost varies from free to $150 (depending on what deal you get). Sprint used to sell the data cable (with Windows software) for $69.99, but it's no longer available from them. You can get it from Sanyo directly for $29.99, from https://store.sanyousa.com/osb/itemdetails.cfm/ID/74. I've also used the setup instructions below with a Samsung A500 phone and the proper USB cable, which worked fine.

I chose Boxwave because it was actually in stock at the time I ordered, but it was possibly a net win additionally because it is retractable and can work as a charger for the phone, which helps someone like me who forgets to plug the phone in to recharge when not in use. But those factors might not matter to you if you chose to reproduce this.

Nate says:

NOTE: There are conflicting reports to what exactly Sprint means by 'unlimited vision'. Apparently, they have told some people that the unlimited vision is for phone use only, and does not apply when you're using the phone with the USB cable. The USB cable solution was actually recommended to me by an employee at a Sprint store to start with, and I checked with two other Sprint reps that it was acceptable use before purchasing. I can also confirm that I have not been charged for any Vision usage, beyond the standard $10/mo, even though I have been using it via the USB cable. But to protect yourself, be sure to check with your Sprint rep, and make sure that this use is acceptable before doing it. If you end up getting billed for the usage, don't say I didn't warn you!

My plan gives me Unlimited Vision for $15/month. Until I score a laptop, I don't anticipate using this enough for it to matter. So even if my Vision isn't genuinely Unlimited, I don't care enough right now to track it down.

Nate says:

Some other sites that have information on Sprint PCS equipment with Linux: http://www.tummy.com/articles/laptops/merlin-c201/ First Step: Make sure your kernel has the right options To use the PCS phone, you'll need to have USB support for the USB card in your computer, and support for USB ACM devices (CONFIG_USB_ACM). The kernel included with recent versions of both Debian and RedHat includes everything you need. Also make sure you have hotplugging enabled, so that the modules will be loaded automatically. Second Step: Plug in the phone, and watch the drivers load All you need to do is plug in your phone, and all the drivers should be loaded automatically. Note that I have had a few cases where I needed to reset the phone to get the USB interface to show up. When I plug my phone in, I see the following: Nov 5 19:35:29 knight kernel: hub.c: new USB device 00:07.2-1, assigned address 2 Nov 5 19:35:29 knight kernel: usb.c: USB device 2 (vend/prod 0x474/0x701) is not claimed by any active driver. Nov 5 19:35:33 knight /etc/hotplug/usb.agent: Setup acm for USB product 474/701/0 Nov 5 19:35:33 knight kernel: usb.c: registered new driver acm Nov 5 19:35:33 knight kernel: ttyACM0: USB ACM device Nov 5 19:35:33 knight kernel: acm.c: v0.21:USB Abstract Control Model driver for USB modems and ISDN adapters

This step worked like a dream. I had built my last kernel with modular support for all kinds of USBisms with the expectation I'd be adding my USB Happy Hacker Keyboard to this system and eventually wanting to test my phone's USBability.

Nate says:

Third Step: Create a dialup connection Now that you've got an ACM device, you just need to create a dialup connection. Note that the ACM device name may vary - just search through /dev for the proper device. On my (default) Debian install, it's /dev/ttyACM0. On RedHat 7.3, it's /dev/input/ttyACM0. Once you've found that, the number to dial to get a connection to the Vision network is '#777' (which is #PPP on the keypad). So, use whatever method you prefer to create a dialer that will dial #777. On my Debian box, I'm using the standard 'pon' scripts. Here are the config files I use:

I had to cd to /dev and run ./MAKEDEV usb to get /dev/ttyACM* nodes but that was a no-brainer. My Debian stable chroot shows signs of having had the right devices but not my Debian unstable desktop. No big whoop.

Nate says:

/etc/ppp/peers/sprint:

# You usually need this if there is no PAP authentication
noauth
# The chat script (be sure to edit that file, too!)
connect "/usr/sbin/chat -v -f /etc/chatscripts/sprint"
# Set up routing to go through this PPP link
defaultroute
# Use remote DNS
usepeerdns
# Default modem
/dev/ttyACM0
# Connect at high speed
230400
local
novj
pppconfig added these options for me:
noipdefault
ipparam sprint

and I put in the novj and usepeerdns as suggested in Mr. Carlson's script.

Nate says:

/etc/chatscripts/sprint:
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         22
CONNECT         ""

Mine looks more like this because of pppconfig's output. I ignored the comments about not removing the comments because I don't intend to retune it with pppconfig. Minimalism rules.

# Shannon's chatscript
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' 
ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
'' ATZ
TIMEOUT     12
OK-AT-OK "ATDT#777"
TIMEOUTE    22
CONNECT ''

But other than superficial differences, it seems to be about the same. I added in the TIMEOUTs, because pppconfig didn't.

Nate says:

So, I run the command 'pon sprint' (if you're on RedHat, try running 'pppd call sprint'), wait a few seconds, and then start surfing. If you have problems with the above script not working, please try the script below (Thanks to Matthew Brichacek for the info):
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      "ATZ"
OK      "ATE0V1"
OK      "AT+IFC=2,2"
OK              ATD#777
TIMEOUT         22
CONNECT         ""
Here in Minneapolis, I generally get ping times of 300-500ms, and download speeds of 7-12kbytes/sec. Not bad at all, considering it's a connection I can take with me everywhere I go! Note that Sprint also gives you a (dynamic) public IP address, where the rest of the wireless phone connections I've tried have been NAT translated. This service works beautifully with FreeS/WAN as a VPN Client. Well, hope this has been helpful.. good luck getting your connection up!

My ping times look like this.

binder@fool:~$ ping -v 68.28.33.136
PING 68.28.33.136 (68.28.33.136): 56 data bytes
64 bytes from 68.28.33.136: icmp_seq=0 ttl=251 time=350.5 ms
64 bytes from 68.28.33.136: icmp_seq=1 ttl=251 time=530.0 ms
64 bytes from 68.28.33.136: icmp_seq=2 ttl=251 time=393.9 ms
64 bytes from 68.28.33.136: icmp_seq=3 ttl=251 time=532.7 ms
64 bytes from 68.28.33.136: icmp_seq=4 ttl=251 time=350.6 ms
64 bytes from 68.28.33.136: icmp_seq=5 ttl=251 time=533.2 ms
64 bytes from 68.28.33.136: icmp_seq=6 ttl=251 time=410.1 ms
64 bytes from 68.28.33.136: icmp_seq=7 ttl=251 time=532.3 ms
64 bytes from 68.28.33.136: icmp_seq=8 ttl=251 time=539.8 ms
64 bytes from 68.28.33.136: icmp_seq=9 ttl=251 time=704.5 ms
64 bytes from 68.28.33.136: icmp_seq=10 ttl=251 time=494.5 ms
64 bytes from 68.28.33.136: icmp_seq=11 ttl=251 time=683.2 ms
64 bytes from 68.28.33.136: icmp_seq=12 ttl=251 time=433.0 ms
64 bytes from 68.28.33.136: icmp_seq=13 ttl=251 time=640.6 ms
64 bytes from 68.28.33.136: icmp_seq=14 ttl=251 time=474.7 ms
64 bytes from 68.28.33.136: icmp_seq=15 ttl=251 time=613.5 ms
64 bytes from 68.28.33.136: icmp_seq=16 ttl=251 time=390.3 ms
64 bytes from 68.28.33.136: icmp_seq=17 ttl=251 time=582.1 ms
64 bytes from 68.28.33.136: icmp_seq=18 ttl=251 time=413.0 ms
64 bytes from 68.28.33.136: icmp_seq=19 ttl=251 time=551.9 ms
64 bytes from 68.28.33.136: icmp_seq=20 ttl=251 time=357.3 ms
64 bytes from 68.28.33.136: icmp_seq=21 ttl=251 time=514.2 ms
64 bytes from 68.28.33.136: icmp_seq=22 ttl=251 time=390.3 ms
64 bytes from 68.28.33.136: icmp_seq=23 ttl=251 time=535.0 ms
64 bytes from 68.28.33.136: icmp_seq=24 ttl=251 time=333.9 ms
64 bytes from 68.28.33.136: icmp_seq=25 ttl=251 time=450.6 ms

So it looks pretty comparable here in Shoreline.

posted at 19:59 PST (-0800)     (comments disabled)   permanent link  
December
Sun Mon Tue Wed Thu Fri Sat
 
17
     
2003
Months
Dec