EVDO is like wifi, but works off cell phone towers so you can use it more places. The PC5740 is a card that Verizon Wireless offers for this service. Linux is an operating system. Here are my experiences getting a Verizon Wireless PC5740 ENDOW card working in Linux. It's largely based on a HOWTO for a similar device, the 5220. I had to change lcp-echo settings and also included information on using ifup and ifdown. I also patched usbserial and cdc-acm to get better performance, but that is no longer necessary.
November 19, 2005 (Updated December 09, 2005; February 7, 2006; September 30, 2007)
As of more recent versions of the kernel (2.6.20, possibly earlier), patching no longer seems necessary. If you have a very old kernel, you can read my old version of this document.
Getting A Connection
Before we Begin
About my Computer
All of this was tested on an IBM Thinkpad T41. Linux kernel 2.6.12-9-386 on Kubuntu 5.10 "Breezy Badger". Ubuntu and Debian should be about the same if the versions line up.
Install with Windows
I suspect that you need to get the card working in Windows before Linux. There is an "activation" step and it seems like a good idea from a troubleshooting point of view to make sure it works in Windows. It will ask you to download the latest coverage maps. I'm not sure, but I think when you do that it actually reflashes the card with some information about signals to broadcast. The coverage map update is superstition on my part, but I think you do need to activate the card in Windows before it will even work in Linux. Correct me if I'm wrong (or not) on the requirement of Windows activation and setup.
Getting it Working in Linux
Kernel Modules
First, install the ohci-hcd module with this command:
modprobe ohci-hcd
Now you need usbserial, but to get it to work I had to specify exactly what card I wanted it to find. With my exact model, the vendor id is 0x106c and the product is 0x3701. An easy way to find that out is to look at what devices are installed before you insert the card, and after:
kkinder@garcia:~$ cat /proc/bus/usb/devices > devices
Inserting Card
kkinder@garcia:~$ diff /proc/bus/usb/devices devices | grep Vendor
< P: Vendor=0000 ProdID=0000 Rev= 2.06
< P: Vendor=0000 ProdID=0000 Rev= 2.06
< P: Vendor=106c ProdID=3701 Rev=0.00
kkinder@garcia:~$
So when we inserted the card, the list of devices included one with a vendor ID of 106c and a product ID of 3701. That is my card. If you're using another similar model, your vendor and product ID should be easy to find. Now, insert usbserial, specifying what card we're looking for:
modprobe usbserial vendor=0x106c product=0x3701
If all goes well, you should have a file called /dev/ttyACM0:
kkinder@garcia:~$ ls /dev/ttyACM0 /dev/ttyACM0
ppp script
Create a file called /etc/ppp/peers/1xevdo:
ttyACM0
115200
debug
noauth
defaultroute
usepeerdns
connect-delay 10000
user (Your phone number. No spaces or dashes)@vzw3g.com
show-password
crtscts
lock
lcp-echo-failure 4
lcp-echo-interval 65535
connect '/usr/sbin/chat -v -t3 -f /etc/ppp/peers/1xevdo_chat'
LCP ECHOs: You'll notice the lcp-echo-failure and lcp-echo-interval commands. I found that after a minute or so of connectivity, pppd disconnected after some lcp-echos failed. These solved that problem.
Baud: I set my baud rate to 115200. Others have tried 9600. I don't think it matters for this device, it's just there to make the operating system feel like it's using a modem. (Again, any corrections on that point are welcome.)
ppp chat script
Now create a file called /etc/ppp/peers/1xevdo_chat: (Updated)
# AT$QCMIPGETP "login" name used for MobileIP, which usually matches your MIN. # AT+GSN ESN in hex # AT+GMR firmware revision and build date. # AT+CSQ first number indicates the signal strength above -109 dBm (in # 2 dBm increments). A value of 7 or higher (-95 dBm) can be # considered adequate. 31 is the max. (Possible values in # Audiovox PC5740 are 0, 7, 15, 23, 31.) # AT+CDV=*22899 Update PRL. at+cdv=*22899 | OK | Lost carrier. ABORT 'NO CARRIER' ABORT ERROR ABORT 'NO DIALTONE' ABORT BUSY ABORT 'NO ANSWER' '' 'ATTEV1&F;&D2;&C1;&C2S0;=0S7=60' 'OK-ATTEV1&F;&D2;&C1;&C2S0;=0S7=60-OK-ATTEV1&F;&D2;&C1;&C2S0;=0S7=60-OK' 'AT+CSQ;D#777' TIMEOUT 70 'CONNECT-AT+CSQ;D#777-CONNECT'
My old script was simpler but Ulmo on evdofurms.com provided the above one which actually gets you signal quality. (More on that in a bit.)
Dial PPP
pppd call 1xevdo tail -f /var/log/messages
You should see the ppp chat session and connection established in messages. Included in the output is the number of "cell phone bars" you would get in Windows:
Feb 7 18:58:36 localhost chat[9557]: send (ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M) Feb 7 18:58:36 localhost chat[9557]: expect (OK) Feb 7 18:58:36 localhost chat[9557]: ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M^M Feb 7 18:58:36 localhost chat[9557]: OK Feb 7 18:58:36 localhost chat[9557]: -- got it Feb 7 18:58:36 localhost chat[9557]: send (AT+CSQ;D#777^M) Feb 7 18:58:36 localhost chat[9557]: timeout set to 70 seconds Feb 7 18:58:36 localhost chat[9557]: expect (CONNECT) Feb 7 18:58:36 localhost chat[9557]: ^M Feb 7 18:58:36 localhost chat[9557]: AT+CSQ;D#777^M^M Feb 7 18:58:36 localhost chat[9557]: 15, 99^M Feb 7 18:58:40 localhost chat[9557]: ^M Feb 7 18:58:40 localhost chat[9557]: CONNECT Feb 7 18:58:40 localhost chat[9557]: -- got it Feb 7 18:58:40 localhost pppd[9555]: Serial connection established. Feb 7 18:58:40 localhost pppd[9555]: Using interface ppp0 Feb 7 18:58:40 localhost pppd[9555]: Connect: ppp0 <--> /dev/ttyACM0 Feb 7 18:58:41 localhost pppd[9555]: local IP address Your Local IP Address Feb 7 18:58:41 localhost pppd[9555]: remote IP address Your Internet IP Address Feb 7 18:58:41 localhost pppd[9555]: primary DNS address Verizon's DNS Address Feb 7 18:58:41 localhost pppd[9555]: secondary DNS address Verizon's DNS Address
Note the 15. That indicates my signal strength. You will get one of the following possible values: 0, 7, 15, 23, 31. These numbers basically map to the number of bars you would get in Verizon's connection manager.
Using ifup and ifdown
I haven't quite figured out how to automatically insert the required modules when the card is inserted. If someone else goes through the hassle of adding the hotplug entries, post a comment below.
However, modules aside, just add this line to /etc/network/interfaces (this may vary in your distribution).
iface ppp0 inet ppp
provider 1xevdo
Then you should be able to use ifup ppp0 and ifdown ppp0 to bring up and down this interface.
✔ Get basic configuration working
✔ PPP Configuration
✔ Test your bandwidth
See Also
- Bandwidth Testing
- General EVDO Information
- Verizon's marketing page includes a service map but is mostly useless.
- evdoinfo.com has information on supporting non-Windows operating systems, using evdo cards with multi-user routers, etc.
- evdo-coverage.com is along similar lines and they'll sell you a package they say will give you speeds up to 3000 or 4000mpbs using an external antenna. They also have a blog with generally useful information.
- Wikipedia page on EVDO explains everything you wanted to know.
- EVDO Forums
- Other cards
Thanks for the detailed explanation!
This is working great with my Sprint PC-5740 card and Ubuntu Breezy Badger.
Only difference was the username, for the sprint cards you can get your username out of the diagnostic window of the Sprint Connection Manager right after activating your card on Windows.
Instead of using the lcp-echo options, just use "passive", which tells pppd to transmit but not fail if there is no response. I may be mistaken, but the way you have it setup, you will get dropped after 4 timeouts at a 65535 interval.
That might be a better idea. I set up the interval and timeout because it seemed like the lcp stuff was just flooding the remote server. With this configuration, I've had EVDO up for long time spans without problem.
i tried using both suggestions.
and still could only connect for about 2.5 mins if i wasn't actively surfing i would disconnect.
if i started pinging the dns server i would stay connected for about 180 min...
im using suse 10.0 and the card works beautifully except for the disconnection problem..
still 180 min connect time is plenty to check email and download updates!! thanks
i assume you simply added a new modem in control center then used
"pppd call <something>" or did you add etc/ppp/peers/1xevdo as listed above?
gp
pppd call <something> just looks for the /etc/ppp/peers files -- nothing more should be necessary.
You can also just set "lcp-echo-interval 0" to disable the echo requests altogether.
I also had a 2.5 second problem using a Dell Latitude 820 w/ built-in Sprint EVDO except that pinging dns server did not help. Kept dropping at 2.5 regardless. lcp-echo-interval =0 fixed it. Now working great
Hi,
stumbled upon this tutorial while trying to build a NAT box for an animal shelter - so far out in the boonies that VZW is the only option. I played with gentoo and got it working, then moved to IPCop for ease of administration, in case I will ever hand the project off. Works out of the box, IPCop recognizes the card and provides /dev/ttyACM0, very nice.
concerninng the speed, I have not played around yet (did my testing with a friend's card, going to buy the actual card in 2-3 weeks): wouldnt the speed you talk to the tty cap anything the VZW card delivers? you are setting the connection speed to the "modem" to 115200bps, so even if the card is faster, you should max out at this point, or am I missing something? Have you tried increasing this value? I will play around with it as soon as I have a VZW card again.
Sven
Hi Sven, you should be aware that "the boonies" may not have 1xEVDO, just 1xRTT -- as far as I know, EVDO is only available in major cities.
I'm impressed that IPCop found the card and created the device. Ubuntu didn't. What card do you have?
Conerning speed -- I did try increasing the serial speed, but to no avail. Everyone else is using 115200, so I assume it's either not really used on USB. I didn't try the combination of increasing that number and the usbserial patch however. hmm..
Ok, I tried again with the modem baud speed and it didn't seem to make any difference.
Speed issue solved. See cdc-acm patch in this updated tutorial.
Thanks for the update and testing the speed - the person in the thread even went down to 9600 and it had no effect, so I guess it is meaningless with the USB modem emulation. Those were the days when setting this value to 14400 gave you blazing speeds :)
I will try to buy the PC5740 (the one I used was borrowed) and compile a kernel with the patch for IPCop over Christmas and will report back. If it is relatively easy, I will post the patch here and maybe submit it to the IPCop folks - wonder if they know how easy this is with their distribution :)
Setting baud rate is left over from the serial modem/ Dos days. To the USB, It does not care, baud rate is actually ignored. Usb automaticallygoes at the fastest possible. It is done partially so the OS treats it as a serial device to send the dial information.
Plugging in a regular Modem in the PCMCIA slot show up as a serial port. I think it would be more efficient if modems would just use the USB interface. Instead of emulating the serial interface, but I think they do this to make it as backwards compatible as possible.
Hi, I tried to apply the patch for the usbserial.c problem, but got the following
patch -p0 <patch patching file usb-serial.c
Hunk #1 succeeded at 361 with fuzz 2.
Hunk #2 FAILED at 1061.
1 out of 3 hunks FAILED -- saving rejects to file usb-serial.c.rej
I do some programming but have never really used diff and patch, what should I do?
Stefan
You probably have a diferent version of the life. Look at the diff itself (it's pretty straightforward) and see if you can sort out where the changes should go.
I found your page while searching for Linux EVDO solutions and bought a 5740 from Sprint based on the *possibilty* it would work.
After a lot of head scratching and a certain amount of time wasted researching "serial line is not 8 bit clean" errors I finally added 'connect-delay 30000' to the ppp options and now it starts up reliably. I noticed Sprint took a long time to connect under Windows but it took me a while to realize they were just slow answering the call! It may also be useful to wait for the 'CONNECT' before starting instead of sending protocol while it rings. Other than those changes I'm using your Verizon scripts as is.
I've been writing device drivers for 30+ years but I'm grateful to you that I didn't have to go back and research PPP from scratch just to plug in my modem!!!
Thanks for sharing your solutions!
-mark
Thanks for you help getting my verizon PC5740 up and running, I'm running the same distro as you, and have used your binarys for the patches. Unfortanetly, I am not able to get the high speeds like in windows. I imagine this has some thing to do with it but I am using card on a desktop with a PCMCIA to PCI adapter. Anythoughts if this could be an issue. Thanks
Make sure you're using the patched modules *with* the arguments that configure them. If you boot up with the card inserted, it might already have inserted the kernel modules without the options. Try rmmod'ing them, then re-inserting them.
Thanks, for the help, that finally worked. I guess my only problem now is, If I reboot I go back to slowness, and if that is slow, how can I have my computer boot with the correct module parameters?
got it figured out I just added the module parameters in /etc/modules and on reboot am getting 1015 (135kb/sec) SO NICE!!!!. Thanks for your help and putting together all this info for everyone.
miles
hi this is praneeth,
i am using "PC5740" pc card from verizon.
As you have said i tried to all types of things, but it did not work.
I am using FC4 Linux,
and the thing is i found the PC card in my modem's list (in hardware list) .
And when i tried execute this command "modprobe ohci-hcd", i don't know whether this executed or not. And then i tried to do all the commands as given above it is not working.
Can anyone give me a detail explaination regarding installing this "PC card", and where can i get the drivers for this particular "PC card".
PLZZZZZZZZZZZZ HELP !!!!!!!!!!!!!!1
thankyou
praneeth
Fedora Core 4.0
When I plug in the card I got this:
******************************************************************************************
Feb 25 21:08:20 localhost kernel: pccard: CardBus card inserted into slot 1
Feb 25 21:08:20 localhost kernel: PCI: Enabling device 0000:07:00.0 (0000 -> 0002)
Feb 25 21:08:20 localhost kernel: ACPI: PCI Interrupt 0000:07:00.0[A] -> Link [LNKB] -> GSI 11 (level, low) -> IRQ 11
Feb 25 21:08:20 localhost kernel: ohci_hcd 0000:07:00.0: OHCI Host Controller
Feb 25 21:08:20 localhost kernel: ohci_hcd 0000:07:00.0: new USB bus registered, assigned bus number 4
Feb 25 21:08:20 localhost kernel: ohci_hcd 0000:07:00.0: irq 11, io mem 0xd4000000
Feb 25 21:08:20 localhost kernel: hub 4-0:1.0: USB hub found
Feb 25 21:08:20 localhost kernel: hub 4-0:1.0: 1 port detected
Feb 25 21:08:20 localhost kernel: PCI: Enabling device 0000:07:00.1 (0000 -> 0002)
Feb 25 21:08:20 localhost kernel: ACPI: PCI Interrupt 0000:07:00.1[B] -> Link [LNKB] -> GSI 11 (level, low) -> IRQ 11
Feb 25 21:08:20 localhost kernel: ohci_hcd 0000:07:00.1: OHCI Host Controller
Feb 25 21:08:20 localhost kernel: ohci_hcd 0000:07:00.1: new USB bus registered, assigned bus number 5
Feb 25 21:08:20 localhost kernel: ohci_hcd 0000:07:00.1: irq 11, io mem 0xd4001000
Feb 25 21:08:20 localhost kernel: hub 5-0:1.0: USB hub found
Feb 25 21:08:20 localhost kernel: hub 5-0:1.0: 1 port detected
Feb 25 21:08:22 localhost kernel: usb 4-1: new full speed USB device using ohci_hcd and address 2
Feb 25 21:08:22 localhost kernel: cdc_acm 4-1:1.0: ttyACM0: USB ACM device
Feb 25 21:08:22 localhost kernel: usbserial_generic 4-1:1.2: generic converter detected
Feb 25 21:08:22 localhost kernel: usb 4-1: generic converter now attached to ttyUSB0
So basically the ttyACM0 changed for ttyUSB0 and that is exactly what I did on the file :/etc/ppp/peers/1xevdo
ttyUSB0
115200
debug
noauth
defaultroute
usepeerdns
connect-delay 10000
user 5404716708@vzw3g.com
show-password
crtscts
lock
lcp-echo-failure 4
lcp-echo-interval 65535
connect '/usr/sbin/chat -v -t3 -f /etc/ppp/peers/1xevdo_chat'
************************************************************************************
when I run: /usr/sbin/pppd call 1xevdo
Feb 25 21:13:32 localhost pppd[4952]: pppd 2.4.2 started by root, uid 0
Feb 25 21:13:33 localhost chat[4953]: abort on (NO CARRIER)
Feb 25 21:13:33 localhost chat[4953]: abort on (ERROR)
Feb 25 21:13:33 localhost chat[4953]: abort on (NO DIALTONE)
Feb 25 21:13:33 localhost chat[4953]: abort on (BUSY)
Feb 25 21:13:33 localhost chat[4953]: abort on (NO ANSWER)
Feb 25 21:13:33 localhost chat[4953]: send (ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M)
Feb 25 21:13:33 localhost chat[4953]: expect (OK)
Feb 25 21:13:36 localhost chat[4953]: alarm
Feb 25 21:13:36 localhost chat[4953]: send (ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M)
Feb 25 21:13:37 localhost chat[4953]: expect (OK)
Feb 25 21:13:40 localhost chat[4953]: alarm
Feb 25 21:13:40 localhost chat[4953]: send (ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M)
Feb 25 21:13:40 localhost chat[4953]: expect (OK)
Feb 25 21:13:43 localhost chat[4953]: alarm
Feb 25 21:13:43 localhost chat[4953]: Failed
Feb 25 21:13:43 localhost pppd[4952]: Connect script failed
Feb 25 21:13:44 localhost pppd[4952]: Exit.
I got an alarm: I do not know if this alarm is because the username is not the right one or why.
Can you help me please?
Saul
Could it be that the card was never activated in Windows?
I have been using the card in Windows without a problem.
I really have no idea then. You might check in with EVDOForums.com -- there are a lot of smart people that hang out on that forum.
you said: "Correct me if I'm wrong (or not) on the requirement of Windows activation and setup."
you're DEFINITLY not wrong. I have RH ES4 running on a laptop, and I picked up the Verizon PC5740 card yesterday. It wouldn't work on Linux w/out being first installed on a windows box. Since I don't have one, I had to go to a computer store near my house and ask them to install it on one of their laptops. Anywho, to make a long story short, as soon as it was done, I pluged it back into my laptop and was up and running.
So, you were correct.
Thanks for writing this page, it was a HUGE help.
Best Regards
Biff
Please remember to remove your ID from you @vzw3g.com string. Also, I too am getting the same USB error.
I had the same problem. Your logs show that the modem command that starts ATTEV1 and ends =60 does not cause the modem to say "OK". Something is wrong with that command, at least for the card that I have.
I did several web searches and looked on evdoforums.com, but I could not find anything about where this chat script came from or what the offending command is trying to do. I could experiement with it, but who knows what bad things that might do to the card?
I simplified the chat script to
'' ATDT#777
and was able to connect.
I am now using
ABORT 'NO CARRIER' ABORT ERROR ABORT 'NO DIALTONE' ABORT BUSY ABORT 'NO ANSWER'
TIMEOUT 10
'' AT OK AT+CSQ OK ATDT#777 CONNECT
This also seems to work ok.
b.t.w. Since I got the chat script working, I am now using "passive" in place of the lcp-echo-... settings in the ppp config file. It works well.
Note that the chat script line that starts '' is two single quote characters, not one double quote.
p.s. I found that 10 seconds frequently works, but I eventually changed the timeout to 60 seconds.
The link sometimes shuts down because of an LCP request from the other end, but I never have any trouble bringing it back up as soon as I notice a problem.
Wow, your response really helped me. I was having the same problem. Thanks!
Can some explain how to install the pc5740 in IPCOP 1.4.10? I'm using a PCI to PCMCIA adapter. The card is not detected by IPCOP.
Thanks!
I don't know anything about IPCOP, but you might try using a straigh USB EVDO device -- I know such things exist. That would be a much simpler setup, given that the thing is actually a USB modem anyway.
Hey,
Your article help me out start trying to make it work on Mandriva 10.2 edition. I got stuck trying to create the ttyAMD0 device. Following your steps, when I plug the card in, I got two new devices (ttyUSB0 and ttyUSB1), but not ttyAMD0 is added.
I've tried to use both on the 1exvdo script, but with no success.
Any ideas?
Thanks!
Hmm, not really. I might check with the Mandriva people. Although it also kind of sounds like you're missing a kernel module? Hm..
I'm using Mandriva. Their scripts name the modem /dev/ttyUSB0 and ttyUSB1. The link from /dev/modem should point to /dev/ttyUSB0. If it does not, just use /dev/ttyUSB0 to identify the modem. Using that, I was able to use the Mandriva network configuration tool to set it up as a POTS modem.
I'm not certain what /dev/ttyUSB1 is used for. Perhaps to get additional info from the modem?
THanks for posting this: very helpful. I am using Ubuntu breezy badger on a Toshiba A70 with a Kyocera kpc 650 with Telus Mobility in Canada. Everything noted here was very accurate. I did just edit my existing config files (been using a Sierra Wireless air card 555 for years) so my configs are perhaps a little different. I did apply the usb and cdc patch, but kept getting disconnects every 1.8 or 2 mins, no matter what kind of file transfer was going on. I eventually settled on this, which is working like a champ. 1338 kbps down 100 kbps up.
I don't understand what the lcp-echo stuff is all about, but the lcp-echo-internal setting broke things. The suggested values (lcp-echo-failure 4) did not help at all, and someone suggested that the values reffered to the number of tries. Hence, I just picked the values here which have kept me online as I've traveled around town now for a couple hours.
Some configs also include the option of -t3 in with the chat command. My laptop failed to connect with that option.
If you are using Telus and linux, feel free to email me if you have Telus specific questions: bruce at donorware dot com
/etc/ppp/peers/evdo
hide-password
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/evdo"
debug
/dev/ttyUSB0
115200
defaultroute
noipdefault
user "403xxxxxxx@1x.telusmobility.com"
ipparam evdo
usepeerdns
# added for evdo
#lock
#crtscts
lcp-echo-failure 200
lcp-echo-interval 65535
#lcp-echo-internal 65535
#passive
I just wanted to add some info for everyone here, I was using ppp 2.4.3 in demand and persist mode, and was gettting a tcsetattr: no such device or address error. upgrading to 2.4.4b1 solved this.
Thanks so much for this site. Got it going after inserting
TIMEOUT 30
after the ATDT and before the CONNECT in the 1xevdo_chat script. Works like a charm
Thanks Ken for this helpful web site.
I have successfully implemented these scripts and techniques under PCLinuxOS with throughputs that approximate XP speeds. However, these scripts do not seem to work in a non-EVDO area (equivalent to "National Access" under VZ Acccess Manager in Windows. All I can get is "Connect script failed" when invoking the pppd command.
Does anyone know if the PC 5740 can be used with these scripts in a non-broadband area, i.e., "National Access" zone?
Thanks in advance.
Never mind! The TIMEOUT 30 command fixed my connection failures...
I'm attempting to get this card working with IP-Cop, a linux based router/firewall distribution. (I can't get DSL or Cable in my location.)
It's running a kernel of version 2.4.30. It's IPcop 1.4.10.
So far I've gotten PCMCIA services active and it recognizes the card as a USB modem.
It's created the device /dev/ttyACM0 without the use of the usbserial module. (It doesn't exist in this installation anyhow.)
Here is an excerpt from my /var/log/messages file:
Apr 10 17:03:31 ipcop pppd[350]: pppd 2.4.2 started by root, uid 0
Apr 10 17:03:32 ipcop chat[351]: abort on (NOCARRIER)
Apr 10 17:03:32 ipcop chat[351]: abort on (ERROR)
Apr 10 17:03:32 ipcop chat[351]: abort on (NO DIALTONE)
Apr 10 17:03:32 ipcop chat[351]: abort on (BUSY)
Apr 10 17:03:32 ipcop chat[351]: abort on (NO ANSWER)
Apr 10 17:03:32 ipcop chat[351]: timeout set to 30 seconds
Apr 10 17:03:32 ipcop chat[351]: send (AT^M)
Apr 10 17:03:32 ipcop chat[351]: expect (OK)
Apr 10 17:03:32 ipcop chat[351]: AT^M^M
Apr 10 17:03:32 ipcop chat[351]: OK
Apr 10 17:03:32 ipcop chat[351]: -- got it
Apr 10 17:03:32 ipcop chat[351]: send (AT+CSQ^M)
Apr 10 17:03:32 ipcop chat[351]: expect (OK)
Apr 10 17:03:32 ipcop chat[351]: ^M
Apr 10 17:03:32 ipcop chat[351]: AT+CSQ^M^M
Apr 10 17:03:32 ipcop chat[351]: 23, 99^M
Apr 10 17:03:32 ipcop chat[351]: ^M
Apr 10 17:03:32 ipcop chat[351]: OK
Apr 10 17:03:32 ipcop chat[351]: -- got it
Apr 10 17:03:32 ipcop chat[351]: send (ATDT#777^M)
Apr 10 17:03:33 ipcop chat[351]: expect (CONNECT)
Apr 10 17:03:33 ipcop chat[351]: ^M
Apr 10 17:03:34 ipcop chat[351]: ATDT#777^M^M
Apr 10 17:03:34 ipcop chat[351]: CONNECT
Apr 10 17:03:34 ipcop chat[351]: -- got it
Apr 10 17:03:34 ipcop pppd[350]: Serial connection established.
Apr 10 17:03:35 ipcop pppd[350]: using channel 1
Apr 10 17:03:35 ipcop pppd[350]: Using interface ppp0
Apr 10 17:03:35 ipcop pppd[350]: Connect: ppp0 <--> /dev/ttyACM0
Apr 10 17:04:05 ipcop pppd[350]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xd683eaa6> <pcomp> <accomp>]
Apr 10 17:04:05 ipcop pppd[350]: rcvd [LCP ConfReq id=0x0 <mru 1500> <asyncmap 0x0> <magic 0xfca695d6> <pcomp> <accomp>]
Apr 10 17:04:05 ipcop pppd[350]: sent [LCP ConfAck id=0x0 <mru 1500> <asyncmap 0x0> <magic 0xfca695d6> <pcomp> <accomp>]
Apr 10 17:04:05 ipcop pppd[350]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xd683eaa6> <pcomp> <accomp>]
Apr 10 17:04:05 ipcop pppd[350]: sent [LCP EchoReq id=0x0 magic=0xd683eaa6]
Apr 10 17:04:05 ipcop kernel: PPP BSD Compression module registered
Apr 10 17:04:05 ipcop kernel: PPP Deflate Compression module registered
Apr 10 17:04:05 ipcop pppd[350]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Apr 10 17:04:05 ipcop pppd[350]: sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 192.168.1.1> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
Apr 10 17:04:05 ipcop pppd[350]: rcvd [LCP DiscReq id=0x1 magic=0xfca695d6]
Apr 10 17:04:05 ipcop pppd[350]: rcvd [LCP EchoRep id=0x0 magic=0xfca695d6 d6 83 ea a6]
Apr 10 17:04:05 ipcop pppd[350]: rcvd [IPCP ConfReq id=0x0 <addr 66.174.14.5>]
Apr 10 17:04:05 ipcop pppd[350]: sent [IPCP ConfAck id=0x0 <addr 66.174.14.5>]
Apr 10 17:04:05 ipcop pppd[350]: rcvd [LCP ProtRej id=0x2 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]
Apr 10 17:04:05 ipcop pppd[350]: rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
Apr 10 17:04:05 ipcop pppd[350]: sent [IPCP ConfReq id=0x2 <addr 192.168.1.1> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
Apr 10 17:04:05 ipcop pppd[350]: rcvd [IPCP ConfNak id=0x2 <addr 70.194.136.154> <ms-dns1 66.174.95.44> <ms-dns3 66.174.92.14>]
Apr 10 17:04:05 ipcop pppd[350]: sent [IPCP ConfReq id=0x3 <addr 70.194.136.154> <ms-dns1 66.174.95.44> <ms-dns3 66.174.92.14>]
Apr 10 17:04:05 ipcop pppd[350]: rcvd [IPCP ConfAck id=0x3 <addr 70.194.136.154> <ms-dns1 66.174.95.44> <ms-dns3 66.174.92.14>]
Apr 10 17:04:05 ipcop pppd[350]: local IP address 70.194.136.154
Apr 10 17:04:05 ipcop pppd[350]: remote IP address 66.174.14.5
Apr 10 17:04:05 ipcop pppd[350]: primary DNS address 66.174.95.44
Apr 10 17:04:06 ipcop pppd[350]: secondary DNS address 66.174.92.14
Apr 10 17:04:06 ipcop pppd[350]: Script /etc/ppp/ip-up started (pid 359)
Apr 10 17:04:06 ipcop kernel: usb.c: USB disconnect on device 01:00.0-1 address 2
Apr 10 17:04:06 ipcop pppd[350]: Hangup (SIGHUP)
Apr 10 17:04:06 ipcop pppd[350]: Modem hangup
Apr 10 17:04:06 ipcop pppd[350]: Connection terminated.
Apr 10 17:04:06 ipcop pppd[350]: Connect time 0.6 minutes.
Apr 10 17:04:06 ipcop pppd[350]: Sent 97 bytes, received 64 bytes.
Apr 10 17:04:07 ipcop ipcop: PPP has gone up on ppp0
Apr 10 17:04:07 ipcop rc.updatered: /etc/rc.d/rc.updatered locking for 366
Apr 10 17:04:07 ipcop pppd[350]: Waiting for 1 child processes...
Apr 10 17:04:07 ipcop pppd[350]: script /etc/ppp/ip-up, pid 359
Apr 10 17:04:08 ipcop kernel: hub.c: new USB device 01:00.0-1, assigned address 3
Apr 10 17:04:08 ipcop kernel: ttyACM0: USB ACM device
Apr 10 17:04:08 ipcop dnsmasq[404]: started, version 2.22 cachesize 150
Apr 10 17:04:08 ipcop dnsmasq[404]: read /etc/hosts - 3 addresses
Apr 10 17:04:08 ipcop dnsmasq[404]: reading /var/state/dhcp/dhcpd.leases
Apr 10 17:04:08 ipcop dnsmasq[404]: reading /var/ipcop/red/resolv.conf
Apr 10 17:04:08 ipcop dnsmasq[404]: using nameserver 66.174.92.14#53
Apr 10 17:04:08 ipcop dnsmasq[404]: using nameserver 66.174.95.44#53
Apr 10 17:04:11 ipcop rc.updatered: unlocking from 366
Apr 10 17:04:11 ipcop pppd[350]: Script /etc/ppp/ip-up finished (pid 359), status = 0x0
Apr 10 17:04:11 ipcop pppd[350]: Script /etc/ppp/ip-down started (pid 449)
Apr 10 17:04:13 ipcop ipcop: PPP has gone down on ppp0
Apr 10 17:04:13 ipcop rc.updatered: /etc/rc.d/rc.updatered locking for 451
Apr 10 17:04:15 ipcop dnsmasq[486]: started, version 2.22 cachesize 150
Apr 10 17:04:15 ipcop dnsmasq[486]: read /etc/hosts - 3 addresses
Apr 10 17:04:15 ipcop dnsmasq[486]: reading /var/state/dhcp/dhcpd.leases
Apr 10 17:04:15 ipcop dnsmasq[486]: reading /var/ipcop/red/resolv.conf
Apr 10 17:04:15 ipcop dnsmasq[486]: using nameserver 66.174.92.14#53
Apr 10 17:04:15 ipcop dnsmasq[486]: using nameserver 66.174.95.44#53
Apr 10 17:04:15 ipcop rc.updatered: unlocking from 451
Apr 10 17:04:16 ipcop pppd[350]: Script /etc/ppp/ip-down finished (pid 449), status = 0x0
Apr 10 17:04:16 ipcop pppd[350]: Exit.
Apr 10 17:05:00 ipcop fcron[510]: Job /usr/local/bin/timecheck > /dev/null 2>&1 started for user root (pid 513)
Apr 10 17:05:00 ipcop fcron[511]: Job /usr/local/bin/makegraphs >/dev/null started for user root (pid 514)
Apr 10 17:05:00 ipcop fcron[512]: Job [ -f "/var/ipcop/red/active" ] && /usr/local/bin/setddns.pl started for user root (pid 516)
Apr 10 17:05:00 ipcop fcron[512]: Job [ -f "/var/ipcop/red/active" ] && /usr/local/bin/setddns.pl terminated (exit status: 1)
It appears to connect and receive a DHCP response. However, it appears to disconnect almost immediately afterwards.
I don't know much about *nix, hence the use of the prepackaged distribution. I'd also like to make it recreatable in the even of a crash, as I'm about to hand this project off. (Ditch this for a higher paying gig.)
Can anyone help? Any suggestions would be greatly appreciated.
I'm using the simplified script that "mark s" provided above and everything else is KenKinder's information.
I'll also be contacting the IPcop people for support.
That's sort of outside the scope of my knowledge... Sorry.
Two ideas:
You say "without the usbserial module" - that isn't strictly correct. In linux, some kernel code can be either built-in to the compiled kernel or it can be a run-time loadable module. You DO have usbserial, and if it isn't a module it is compiled into the kernel. If you can program in C, you can probably see what the patch changes (it is very simple) and fix your kernel so that the maxSize parameter is always set. You can't set it at load time (because you don't have a module to load), but you can build the value into the source code. I can't go in to detail about how to compiler a kernel here, but there are numerous references on the web.
The message "usb.c: USB disconnect on device 01:00.0-1 address 2" looks to me a lot like your computer thinks the usb device was unplugged. Later, it looks like it reconnects. You could look in usb.c to see if it gives you any insight into what it thinks is happening. Other things I can suggest: router/firewall variationsof Linux usually involve "interesting" configurations. Does it work in a regular Linux? Does it work in Windows?
It works just fine in Windows.
I'd guess that it'd work fine in Linux. Everyone else is using the card here. I'd assume if I were using Kubuntu Breezy Badger, if I followed these instructions to a "T" it'd work. Same Vendor and product codes and all as well.
As far as my knowledge of C goes, I divided by zero while writing "Hello World" in High School... I think I'll stay away from coding critical drivers. ;)
I've been beating on the box for two days trying to get it to work with IP Cop and SmoothWall... Neither works and the boss already thinks I'm just screwing around. We're probably gonna spring for a Kyocera KR1 router that'll take the card and spit out ethernet... That was the main idea anyhow.
Thanks for your support though.
This is the error I get...
Apr 20 16:59:25 localhost pppd[8218]: pppd 2.4.3 started by norton, uid 1000
Apr 20 16:59:26 localhost chat[8228]: abort on (NO CARRIER)
Apr 20 16:59:26 localhost chat[8228]: abort on (ERROR)
Apr 20 16:59:26 localhost chat[8228]: abort on (NO DIALTONE)
Apr 20 16:59:26 localhost chat[8228]: abort on (BUSY)
Apr 20 16:59:26 localhost chat[8228]: abort on (NO ANSWER)
Apr 20 16:59:26 localhost chat[8228]: send (ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M)
Apr 20 16:59:26 localhost chat[8228]: expect (OK)
Apr 20 16:59:26 localhost chat[8228]: ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M^M
Apr 20 16:59:26 localhost chat[8228]: ERROR
Apr 20 16:59:26 localhost chat[8228]: -- failed
Apr 20 16:59:26 localhost chat[8228]: Failed (ERROR)
Apr 20 16:59:27 localhost pppd[8218]: Exit.
I have the same card, same distro as you.. I copied your config files (just edited in my number)
Weird. It looks like the modem is wigging out. Was it activated in Windows? Does it work in Windows?
Yes, It was activated in Windows and I used it for about two weeks in windows previous to this attempt in ubuntu.
It looks like your modem doesn't like the AT command you sent to it.
I don't believe it's necessary to have such a complicated AT string.
Instead of this::
ABORT 'NO CARRIER' ABORT ERROR ABORT 'NO DIALTONE' ABORT BUSY ABORT 'NO ANSWER'
'' 'ATTEV1&F;&D2;&C1;&C2S0;=0S7=60'
'OK-ATTEV1&F;&D2;&C1;&C2S0;=0S7=60-OK-ATTEV1&F;&D2;&C1;&C2S0;=0S7=60-OK' 'AT+CSQ;D#777'
TIMEOUT 70
'CONNECT-AT+CSQ;D#777-CONNECT'
Try this:::
ABORT 'NO CARRIER' ABORT ERROR ABORT 'NO DIALTONE' ABORT BUSY ABORT 'NO ANSWER'
'' 'ATZ'
'OK' 'ATD#777'
TIMEOUT 70
'CONNECT'
While you don't get the signal strength result, the script is much simpler, which is nice if you are stuck and just want to see if you can get it going at all.
Matt
I am offering $30 (US dollars) to someone (and/or I can happily buy them something from their gift registry like Matt G has) who can interact with me directly (email, phone, IM) to get my EVDO card working on Ubuntu. I can get it to connect; I can not get it to stay connected. Details below.
-Matt
evdolinux [at] mengland.net
My Ubuntu-Dapper-Beta2-based Thinkpad T41 (2378DHU) can connect via Verizon's services with a V620 pcmcia card with the simpler AT string described above, but not with more-complex AT solution found on Ken's original article.
However, in no case can I get the service to stay connected (even though it does stay connected on the same machine with WindowsXP VMware-guest-OS running "inside" my Ubuntu). I have tried various flavors of changes referenced in all the comments in this article without success.
I generally like to know what is going on to help solve my own problems, but despite my deep experience as a sysadmin and programmer, I know little if anything about ppp and modem commands, which is hurting me in this case. Any help for directing me to help me teach myself these things is a plus, but is not required for the $30.
Just an observation. I had problems with the AT string until I removed the ';' (semicolons) from it. Then the modem worked properly and connected flawlessly. YMMV.
I tried this 1xevdo_chat string:
<pre>
ABORT 'NO CARRIER' ABORT ERROR ABORT 'NO DIALTONE' ABORT BUSY ABORT 'NO ANSWER'
'' 'ATTEV1&F&D2&C1&C2S0=0S7=60'
'OK-ATTEV1&F&D2&C1&C2S0=0S7=60-OK-ATTEV1&F&D2&C1&C2S0=0S7=60-OK' 'AT+CSQD#777'
TIMEOUT 70
'CONNECT-AT+CSQD#777-CONNECT'
</pre>
with no success on my Ubuntu-Dapper-Beta2 system:
<pre>
May 11 09:48:09 localhost pppd[28799]: pppd 2.4.4b1 started by root, uid 0
May 11 09:48:10 localhost chat[28800]: abort on (NO CARRIER)
May 11 09:48:10 localhost chat[28800]: abort on (ERROR)
May 11 09:48:10 localhost chat[28800]: abort on (NO DIALTONE)
May 11 09:48:10 localhost chat[28800]: abort on (BUSY)
May 11 09:48:10 localhost chat[28800]: abort on (NO ANSWER)
May 11 09:48:10 localhost chat[28800]: send (ATTEV1&F&D2&C1&C2S0=0S7=60^M)
May 11 09:48:11 localhost chat[28800]: expect (OK)
May 11 09:48:11 localhost chat[28800]: ATTEV1&F&D2&C1&C2S0=0S7=60^M^M
May 11 09:48:11 localhost chat[28800]: OK
May 11 09:48:11 localhost chat[28800]: -- got it
May 11 09:48:11 localhost chat[28800]: send (AT+CSQD#777^M)
May 11 09:48:11 localhost chat[28800]: timeout set to 70 seconds
May 11 09:48:11 localhost chat[28800]: expect (CONNECT)
May 11 09:48:11 localhost chat[28800]: ^M
May 11 09:48:11 localhost chat[28800]: AT+CSQD#777^M^M
May 11 09:48:11 localhost chat[28800]: ERROR
May 11 09:48:11 localhost chat[28800]: -- failed
May 11 09:48:11 localhost chat[28800]: Failed (ERROR)
May 11 09:48:12 localhost pppd[28799]: Exit.
</pre>
My offer of payment for support (above) still stands.
-Matt
Your string 'AT+CSQD#777' needs the ';' between the 'Q' and 'D' like this:
AT+CSQ;D#777.
I should have been more specific in my observation. The string 'ATEV1&F;&D2;&C1;&C2S0;=0S7=60' will not work with the embedded ';''s.
You may need to use an escape before the semicolon.
Try 'AT+CSQ\;D#777'
You may need to use an escape before the semicolon.
Try 'AT+CSQ\;D#777'
I found this article very useful in getting my PC 5740 working, but I had a little different experience that I documented here:
http://www.swflug.org/index.php?option=com_content&task=view&id=54&Itemid=32
As per:
http://www.swflug.org/index.php?option=com_content&task=view&id=54&Itemid=32
How can I run kppp on my brand-new, gnome-based, Ubuntu Dapper? As an ignorant user, I installed kppp on my system (and it's 75MB of dependencies) and tried to run it...and it didn't work (saying it could not connect to x server...presumably because it's not a KDE server?).
Does a corresponding gnome alternative exist? Is there a way to get kppp to run on gnome?
I'm looking for any and all options to get my evdo car working on my Ubuntu system asap.
My offer of cash-for-support still stands.
-Matt
evdolinux [at] mengland.net
First of all, Ken, THANK YOU VERY MUCH. Your article gave me the courage to take the plunge and obtain broadband service through Verizon with the Audiovox PC5740. I'm pleased to say that it worked well from the beginning using SuSE Linux 10.1; the card was auto detected, so I didn't even have to bother with the 'modprobe' (kernel version 2.6.16.13-4).
More recently I obtained a Novatel Merlin S620 from Sprint PCS (same as Verizon's V620). Again the card was auto detected (vendor ID 1410, product ID 1110, configured as /dev/ttyUSB0) and worked from the beginning. Using either card I can maintain an idle connection throughout the day as long as my email client is checking for messages at timed intervals.
Flush with success, I decided to try KPPP as documented by Bert Rapp. It offers a nice graphical interface similar to those provided by Verizon and Sprint for Windows, and it minimizes to the system tray. Here's where I have hit a bump. With both cards, KPPP disconnects after exactly 2:30 minutes. Logs show the call was terminated after 4 unanswered echo requests.
Of course TCP/IP activity is ignored since KPPP is listening for a modem response. Having very little knowledge of modem commands, I've searched various forums for ideas of things I might try. KPPP offers the option of Login Script, and I've tried various settings, but I suspect it never even gets that far since it's probably still waiting for the host to pick up the phone.
I'm hopeful that someone who has used KPPP successfully will happen upon your page and will stumble across this post. With luck I may return in a couple of weeks and find that the magic solution has been posted here. Thanks again for sharing your knowledge with the rest of us, Ken!
Paul Brown
Denver, CO
How does one properly close a connection and disconnect the pcmcia card from the laptop (I have a Thinkpad T41 2378DHU running Ubuntu Dapper Beta2)?
The only thing I know to do is to pull out the pcmcia card (I have a Verizon V620). I am hoping this does on cause significant damage to any part of the system, including the software drivers.
Also: I am increasing my offer of payment for support (see details in my other posts) to $50 USD.
-Matt
evdolinux [at] mengland.net
cardctl eject
will remove the card
cardctl insert will re-insert it.
from a command line you can do
"which cardctl"
and it will tell you something like
/usr/bin/cardctl
Then you would have to do:
/usr/bin/cardctl eject
and
/usr/bin/cardctl insert
there's no need to do /usr/bin/cardctl if which can find it within your path...perhaps you meant locate?
Fantastic! This solved my connection hangs. Note, the linked article with the patch seems to imply this is necessary primarily for EVDO use.. it's not. My area is 1X-only (.. with no concrete plans for EVDO yet.. VZW has only 850mhz here so they might not have the bandwidth for EVDO 8-(. I got connection hangs as described.. with ping running in a window, I saw the hangs are because of periods of 50%+ packet loss... in my case I think heavy hard disk activity would trigger it. I've got an Inpsiron 2200 with Gentoo on it..
Also, yup, the 5740 is a paperweight until VZAccess Manager does some voodoo to it. I could dial #777 but got it gave an instant "NO CARRIER" at that point. I even got desperate and tried to run the VZAccess software under wine.. no go (no, I'm not crazy.. the Samsung phone utils for loading wallpapers, PRLs etc. will run under wine, without having to fight with USB drivers like under Windows.) It was kind of a PITA too.. my 2 friends with windows notebooks, both have slightly newer $400 Dells than me, and the former PCMCIA slot is some funky memory slot instead. I ended up tossing a spare hard drive in my 2200 temporarily, putting on windows and the card software, activating, then tossing my gentoo drive back in 8-). The card then worked like a charm (well, not quite due to the above..). Well, it's REALLY working like a charm now. Thanks!
Oops.. well, it is true the PC5740 is a paperweight without activation. I was wrong about the packet loss though.. per what I'm reading on Howardforums, I just "lucked out" and got my data card right when VZW is doing some behind the scenes data work of some type, causing packet loss this week.. with or without this patch I have been once in a while getting high packet loss. Anyway, speeds are good when it's not taking a breather even in this 1X-only area.. 8-).
Instructions for IPcop 1.4.10
I needed to modify two files in order to get Verizon EVDO working on IPcop.
Please make backups of your original files before changing anything!
In /etc/ppp/dialer somewhere around line 61:
my $com ="/usr/sbin/chat -v -t3 -r /var/log/connect.log \
TIMEOUT 3 \
REPORT CONNECT \
ABORT '\\nBUSY\\r' \
ABORT '\\nNO ANSWER\\r' \
ABORT '\\nRINGING\\r\\n\\r\\nRINGING\\r' \
ABORT '\\nNO CARRIER\\r' \
'' '$modemsettings{'INIT'}' \
OK '$modemsettings{'HANGUP'}' \
OK '$speaker' \
TIMEOUT '$modemsettings{'TIMEOUT'}' \
OK 'ATTEV1&F&D2&C1&C2S0=0S7=60' \
OK 'ATTEV1&F&D2&C1&C2S0=0S7=60' \
OK 'AT+CSQ\;D${telephone}' \
CONNECT '${btfudge}' ";
In /var/rc.d/rc.red somewhere around line 393:
push (@pppcommand, ('passive','lock', 'modem', 'crtscts', $device,
$pppsettings{'DTERATE'}, 'noipdefault',
'defaultroute', 'user', $pppsettings{'USERNAME'},
'maxfail', $pppsettings{'MAXRETRIES'}, 'connect',
'/etc/ppp/dialer'));
To set up your dialup in IPcop's web gui.
Interface: USB Modem on ACM0
Number: #777
Dialing Mode: Tone
Idle Timeout: 0
Computer to moden rate: 115200
Modem speaker on: UNCHECKED
ISP requires Carriage Return: UNCHECKED
Connection debugging: UNCHECKED
User Name: <your_number>@vzw3g.com
Password: (You can put anything here but it must not be blank)
Method: PAP or CHAP
Thanks to Ken for putting this page together. Keep up the excellent work!
Your mileage may vary, but it seems to work for me. If anyone has a more elegant
solution please feel free to post it.
So this might work for my USB720 novetel wireless modem ? got it from Verizon get sometimes close to 2 meg per speeds 1,725,000 BPS only 1 time so far
Finally made the complete break from windoz! Last issue was my Verizon Broadband connection. New laptop did not come with an PCMCI slot! No matter, your fine information here got my brand new Verizon USB720 working perfectly! The only two glitch were the need to remove all the semi-colons from these lines:
'' 'ATTEV1&F;&D2;&C1;&C2S0;=0S7=60'
'OK-ATTEV1&F;&D2;&C1;&C2S0;=0S7=60-OK-ATTEV1&F;&D2;&C1;&C2S0;=0S7=60-OK'
BUT NOT THIS ONE! 'AT+CSQ;D#777'
AND
using /dev/ttyUSB0 (not /dev/ttyACM0)
Thank you!
--RayJ
I have the same model card, but I can't get a connection on Debian with 2.6.16. All modules are cool, and I have tried every version of the 1xevdo_chat that is on this page, but I keep getting alarm and Failed in /var/log/messages. Here is a quick posting of /var/log/messages to see if I am missing something:
May 28 15:15:17 localhost chat[4618]: expect (OK)
May 28 15:15:20 localhost chat[4618]: alarm
May 28 15:15:20 localhost chat[4618]: send (ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M)
May 28 15:15:21 localhost chat[4618]: expect (OK)
May 28 15:15:24 localhost chat[4618]: alarm
May 28 15:15:24 localhost chat[4618]: send (ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M)
May 28 15:15:24 localhost chat[4618]: expect (OK)
May 28 15:15:27 localhost chat[4618]: alarm
May 28 15:15:27 localhost chat[4618]: Failed
May 28 15:15:28 localhost pppd[4617]: Exit.
worklap:/etc/ppp/peers# tail /var/log/messages
May 28 15:11:23 localhost chat[4594]: abort on (BUSY)
May 28 15:11:23 localhost chat[4594]: abort on (NO ANSWER)
May 28 15:11:23 localhost chat[4594]: send (ATZ^M)
May 28 15:11:23 localhost chat[4594]: expect (OK)
May 28 15:11:26 localhost chat[4594]: alarm
May 28 15:11:26 localhost chat[4594]: send (AT^M)
May 28 15:11:26 localhost chat[4594]: expect (OK)
May 28 15:11:29 localhost chat[4594]: alarm
May 28 15:11:29 localhost chat[4594]: Failed
May 28 15:11:30 localhost pppd[4593]: Exit.
worklap:/etc/ppp/peers# tail /var/log/messages
May 28 15:01:00 localhost chat[4564]: abort on (NO CARRIER)
May 28 15:01:00 localhost chat[4564]: abort on (ERROR)
May 28 15:01:00 localhost chat[4564]: abort on (NO DIALTONE)
May 28 15:01:00 localhost chat[4564]: abort on (BUSY)
May 28 15:01:00 localhost chat[4564]: abort on (NO ANSWER)
May 28 15:01:00 localhost chat[4564]: timeout set to 10 seconds
May 28 15:01:00 localhost chat[4564]: send (AT^M)
May 28 15:01:00 localhost chat[4564]: expect (OK)
May 28 15:01:10 localhost chat[4564]: alarm
May 28 15:01:10 localhost chat[4564]: Failed
The card has been registered in Windows, and functions there without a problem. I did notice from other's responces that it usually connects with ATZ^M^M, whereas mine only tries AT^M and ATZ^M. Is there a way to force ATZ^M^M?
Thanks for the helpful page!
Has anyone come up with a patch for cdc-acm or usbserial on the 2.6.15 kernel? I just upgraded from Breezy to Dapper, and now my connection is painfuly slow. I have tried applying the old patch to no avail.
I followed the meaning of the patches and made them myself. I'll post it later today.
Thanks for all the great info. Making this work with a Verizon card goes smooth now for me. However, I am now trying to get this to work on IPCOP with a Cingular wireless card. In fact, I can get the Cingular card to connect up the first time, but when I disconnect, I cannot cleanly connect back again. I have to change out profiles to a serial line, then go back to a modem adapter in IPCOP to get it to work.
If anyone has any info on that, it would be greatly appreciated... thanks!
I'd love to know how you got this working properly on Ubuntu 6.06.
I would love to know what the heck ya'll are talking about. I have a pc5740 card from Verizon and using Win2000 and it never works right and I can never maintain a connection and it tells me I am Dormant even when I am doing something and the signal is strong. Speed is an average of 70 kbps even though it says broadband and most of the time it just times out and won't do anything. Verizon is no help and all be it this forum looks like the best info I have seen. I have no clue what you are talking about.
If you can tell me simply how to get this card to work more consistantly i would really appreciate it.
Thanks if you can
I'm running Ubuntu Dapper 6.06 LTS with a Sprint Merlin S620 EV-DO data card. The installation was a breeze. I was previously using the PPPD method described on this page on Breezy. But after upgrading to Dapper, the connection stopped working altogether.
I tried everything I could from that point. After several weeks of research and trial and error, I was amazed at how simple the answer was.
The solution for me was to use "wvdial" instead of pppd.
Here's is my /etc/wvdial.conf file:
--
[Dialer Defaults]
Stupid Mode = on
Modem = /dev/ttyUSB0
Baud = 921600
Init = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Phone = #777
Username = 1234567890@sprintpcs.com
Password = 123456
Init1 = ATZ
ISDN = 0
Modem Type = Analog Modem
Auto Reconnect = on
Carrier Check = no
[Dialer shh]
Init3 = ATM0
[Dialer pulse]
Dial Command = ATDP
--
It's pretty basic, and I've opted to leave it that way. Then, I added the entry "wvdial" to the startup section of the Sessions menu item. Now, I just turn the notebook on and the connection is up and running in a matter of seconds.
All that was really necessary, was to modify the wvdial.conf file and then use the following commands:
> sudo rmmod usbserial
> sudo modprobe usbserial vendor=0x1410 product=0x1110
> wvdial
And just for good measure I added the "lcp-echo-interval 0" command to /etc/ppp/options file to prevent myself from being disconnected every few minutes. I'd never actually experienced the problem but I thought it better to be safe than sorry.
I've not had any trouble with it since.
A brief note: When I tried to rmmod the usbserial module, Ubuntu complained that it couldn't remove the module due to dependencies between the usbserial and airprime module. I have no use for the airprime module, so I simply "rmmod airprime" and then the commands above.
This configuration is extremely versatile - even moreso than on Windows. I can remove the card and reinsert it at will having only to execute the "wvdial" command once its reinserted. I've also not experienced any problems with hibernation. And like I said, the connection has basically already started before Gnome is completely loaded.
For dapper 6.06 and the verison pc5740, follow Harbingerkun's instructions above, but use ttyACM0 instead of ttyUSB0, change the username to (Your phone number. No spaces or dashes)@vzw3g.com, and modify the global ppp configuration (/etc/ppp/options) to include the lcp options (to avoid a disconnect):
lcp-echo-interval 65535
lcp-echo-failure 4
Thank you Ken Kinder and Harbinger Kun ! The evdochat scripts gave me hope, and I was able to see my server's SSH banner ( only ). After much disappointment, the WVDial utility ( which I'd never heard of ) worked magically! All I had to do was add the DNS servers to /etc/resolv.conf . I'm actually posting via the new connection now!
Ken, small world - I actually joined Rackspace a month before you left! I left late last year after there was a meltdown. Too many customers, not enough techs. Thanks again! -- Mario
Can this be done with windows vista? I am trying to get my pc5740 installed and having some difficulties. Your response is greatly appreciated.
Becky
I got mine working pretty much the same way under Windows Vista Beta 2 (5384) - I have the V620. Setup a dialup connection in Windows just like you are trying to dial up to an old dial-up ISP. For the number to dial, specify "#777", specify your areacode+phone number (no dashes or spaces) for username (i.e. 8005551212@vzw3g.com) and leave the password blank. Windows connects fine.
Even on my XP boxes, I am going to be discarding their VZAccess app (we have several of these for our field service techs) - it takes forever to load, and I've been looking for a way to get rid of it forever.
Thanks to Ken for providing the inspiration and starting point on letting me use Vista on my notebook - I would have had to roll back to XP if this card wouldn't have worked.
Thank you--THANK YOU--for that, Sean. After repeated attempts to get my VZ card to work on my WinVista partition, your advice did the trick. I even uninstalled VZ access manager from my WinXP partition and performed the same trick.
Thank you.
Thank you for this tip, I was getting a little frustrated with disconnects. I am using Vista Beta Two, and the Access Manager from Verizon. This post helped me out alot!
Thanks!
Victor/MIA
YOU ARE THE MAN!!! I have been looking everywhere for a Driver for this devise, but what you wrote works even better, thanks a lot!!!!!!
I've got my WinXP setup like Sean said with the #777 dial number and username. It connects fine but I still have disconnect problems. Are there any XP settings we can do to "Keep Alive"? My router has a Keep Alive ping setting but it doesn't seem to help. Maybe some AT commands we can configure? Also, is there a way to send a reconnect command to a host machine that is on a different subnet? My PC with the aircard is acting as a gateway on the WAN side of my router and the rest of my network is on the WAN side under a different subnet. It would be nice to run a reconnect command from a network computer than have to go into the room where the Aircard is and reconnect there.
Thanks for all the help.
Hi Ken and all,
I've followed the examples in your site, but for some reason I get the following error message after invoking pppd call 1xevdo:
pppd: In file /etc/ppp/peers/1xevdo: unrecognized option 'ttyUSB0'
Any ideas??
Acer 1410/SuSE 10.1
I just have a couple of comments and questions. Yesterday evening I got my Verizon v620 card working on my Debian laptop, and I would like to share my experience.
First, the card was recognised by the stock 2.6.17 (unstable) kernel without any problem. Once I got the pppd scripts working just right, I had no problem connecting to Verizon. It would stay connected for a long time if all I did was ping a remote host. Once I started surfing or downloading, the connection would hang.
Patching usb-serial.c solved that problem. The patch, as posted, does not apply cleanly, but patching by hand worked. My questions are...
Is there any plan to incorporate the patch into the stock kernel?
Is there any reason to set maxSize to anything other than 4096? What have other people tried, and what worked?
Why not make maxSize=4096 the default in the kernel, so I don't have to manually "modprobe usbserial maxsize=4096", or edit a conf file?
The pppd script that worked for me is this:
connect '/usr/sbin/chat -v "" AT OK ATD#777 CONNECT'
/dev/ttyUSB0
defaultroute
usepeerdns
noauth
noccp
novj
lcp-echo-interval 0
lcp-echo-failure 0
These are my comments regarding the script.
First, I don't know what all those fancy AT commands do. If someone can document them for the v620, that would be great. AT+CSQ gives signal strength. That might be useful info if you can't connect.
I use a really simple dialing script. My experience is that it almost always works. If it does not work, the card is hung and you have to eject and reinsert the card.
The speed parameter does not make a difference for me, so I just omitted it. If I am getting 1726kbps (in LA area), I would have to set the speed greater than 1726000!
I use noccp and novj. You can try to negotiate them, but Verizon here does not support them. If you put them in, you are sending four extra packets during negotiation.
I do not need the "user 8005551212@vzw3g.com" parameter. Verizon does not ask for authentication, so it's not used (in LA or St. Louis). YMMV in other markets.
I disable lcp-echo with the two commands. I think it's cleaner than setting a really long timeout. If you do nothing with lcp-echo, your connection will drop after a few minutes.
This is the patch for usb-serial.c that apples cleanly to the 2.6.17 kernel.
--- linux-2.6-2.6.17/drivers/usb/serial/usb-serial.c 2006-06-17 20:49:35.000000000 -0500
+++ /home/marc/usb-serial-patched.c 2006-07-08 08:32:20.000000000 -0500
@@ -56,6 +56,7 @@
drivers depend on it.
*/
+static ushort maxSize = 0;
static int debug;
static struct usb_serial *serial_table[SERIAL_TTY_MINORS]; /* initially all NULL */
static LIST_HEAD(usb_serial_driver_list);
@@ -802,7 +803,7 @@
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
- buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+ buffer_size = (endpoint->wMaxPacketSize > maxSize)?endpoint->wMaxPacketSize:maxSize;
port->bulk_in_size = buffer_size;
port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
port->bulk_in_buffer = kmalloc (buffer_size, GFP_KERNEL);
@@ -1177,3 +1178,5 @@
module_param(debug, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "Debug enabled or not");
+module_param(maxSize, ushort,0);
+MODULE_PARM_DESC(maxSize,"User specified USB endpoint size");
I welcome any comments, questions or suggestions.
marc@mclemente.net
All was fine till I started to run pppd, then I got this
[root@localhost mark]# tail -f /var/log/messages
Jul 26 21:19:02 localhost chat[2842]: abort on (BUSY)
Jul 26 21:19:02 localhost chat[2842]: abort on (NO ANSWER)
Jul 26 21:19:02 localhost chat[2842]: send (ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M)
Jul 26 21:19:03 localhost chat[2842]: expect (OK)
Jul 26 21:19:03 localhost chat[2842]: ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M^M
Jul 26 21:19:03 localhost chat[2842]: ERROR
Jul 26 21:19:03 localhost chat[2842]: -- failed
Jul 26 21:19:03 localhost chat[2842]: Failed (ERROR)
Jul 26 21:19:03 localhost pppd[2841]: Connect script failed
Jul 26 21:19:03 localhost pppd[2841]: Exit.
Any help?
Thank you,
Mark
Go to the top of the page and search for "mark s said on 2006-03-27". That comment explains what I did when I had that problem.
Ken, have you or anyone else attempted your instructions on the PC5750 with REV A?
An update for those with the Rev A. 5750 cards:
I have just put my card through the torture-test and am happy to report that it works very well. I have tried it in Ubuntu, Damn Small Linux and IPCop. Now for a breakdown:
in DSL: my speeds dont go past 20 KB/sec
in Ubuntu: speeds go up to 50 KB/sec
in IPCop: speeds max out at 60 KB/sec
I tried changing the speed setting from 115200 to 230400, but it didn't help. One thing I think it could be is that I am not connecting to a Rev A network, but instead a regular National Broadband Access network.
Using Windows XP, I can get 200 KB/sec down, so there must either be something in the drivers, or the script.
When using IPCop, I don't even use the scripts that Ken has posted. I just setup the modem using the gui, then put in the number and username, and it connects in a snap.
Feel free to add more updates if you work with this card..... thanks!
I will begin working with this card in Linux tomorrow. Would start tonight (first night I decided to inquire if using a 5750 was even possible on Linux), but of course tonight the only internet access I have is via the card, and the only machine I have with me is this dual-boot laptop.
I'll let you guys know about my success/failure/results tomorrow.
-Alex
Great Information!! Thanks.
I thought I would post about getting my SAMSUNG SPH-A920 evdo phone working on the sprint EVDO network.
I basically followed this website with a few minor changes.
I am using a puppy linux Live CD that found the USB (phone as modem) and created the /dev/ttyACM0 device. Then it was a matter of creating the two scripts and entering pppd call sprint
Here is my ppp script
================
# /etc/ppp/peers/sprint
#
noauth
debug
/dev/ttyACM0
115200
defaultroute
user yourusername@sprintpcs.com
show-password
usepeerdns
crtscts
lock
lcp-echo-failure 4
lcp-echo-interval 65535
connect "/usr/sbin/chat -v -f /etc/chatscripts/sprint"
==============
And my ppp chat script
==============
# /etc/chatscripts/sprint
#
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
# modeminit
'' ATZ
OK-AT-OK ATDT#777
TIMEOUT 70
'CONNECT-AT+CSQ;D#777-CONNECT'
==============
with the lcp-echo commands I have stayed connected while idle.
It was actually DSL (Damn Small Linux) that I used, not puppy linux.
It was actually DSL (Damn Small Linux) that I used, not puppy linux.
It was actually DSL (Damn Small Linux) that I used, not puppy linux.
Do you have a image aviable for download of your completed IBM Laptop setup?
An image of what?
Ken. Great of you to do this article. I installed Ubuntu over a month ago (knew nothing of Linux) and just yesterday got the 5740 card to work. I printed out the entire article and it's pretty dogeared today. The script that worked was the ATT without the semi-colons. Speeds are around 20kbps and a lot of the time 0 lol. I have this card (Verizon) in a desktop with a Ricoh cardbus in a pci slot. I dual boot with xp home and in xp the card has speeds of 50 to 150. Funny part is, my other pc I link through a linksys switch and Ubuntu runs at over 200kbps all the time when linked through xp. Blazing fast. I saw your EVDO Forum question and was wondering if you found a patch that has worked for you yet?
Again, a million thanks for writing this article.
Well, I don't have a patch other than the one that's on this article, but it seems to be working great for me. Have you tried the patch?
FWIW, I got speeds of about 150 BEFORE the patch.
Haven't tried the patch yet. Can't stay connected long enough to bring up anything in a browser. I'll keep playing with the different scripts for now. Never know. I could hit the just the right one and get lucky. Thanks Ken.
(Sorry for the duplicate, I posted previously too far up.)
Folks, I'm in real trouble here.
Just upgraded to Ubuntu 6.06 Dapper Drake after my last laptop melted down. Yes, I'm a penguin noob :). I need to get my Verizon-based EVDO KPC-650 card working as it's my sole internet in my live-in motorhome :). I'm a full-time political activist working in electronic voting reform and need to get fully back online like pronto...google my name with "diebold" if you're curious.
In doing the instructions Ken posted, once I do the "diff /proc/bus/usb/devices devices | grep Vendor" routine with the card inserted I get:
---
< P: Vendor=0000 ProdID=0000 Rev= 2.06
< P: Vendor=0000 ProdID=0000 Rev= 2.06
< P: Vendor=0c88 ProdID=17da Rev= 0.00
---
So as near as I can tell my next trick is:
modprobe usbserial vendor=0x0c88 product=0x17da
...and it's producing NOTHING whatsoever in /dev - tried it with and without "sudo", no joy, tried:
modprobe usbserial vendor=0c88 product=17da
... (again, both sudo and plain) and still nothing, I tried "sudo nautilus" to go look for anything smelling even close to a new tty file generated in /dev and there's nothing.
Modprobe isn't doing any errors. The fact that the "diff" process is showing the card means the PCMCIA slot and card are live, right?
Other notes: at this site:
https://forums.gentoo.org/viewtopic-t-427992.html
...somebody running Gentoo used the same vendor/prod numbers and here in another build:
http://www.novell.com/coolsolutions/tip/17600.html
...so I know I'm on the right track.
Why am I stuck?
Heeeelp?
This may be of some help Jim:
http://wildbill.nulldevice.net/wordpress/?p=144
I tried those instructions too, no joy, even without the "maxsize" parameter.
For somebody new to Linux those instructions are rather difficult to deal with. Fr'instance, it says you'll get "new messages" when you "slot the card". Where do these messages appear and where do you read them? There's whole steps missing, basically.
Sigh.
I'm sure this is no help Jim but I too am new to Linux and have yet to get my card to work. I'm in Linux on my pc and my wife's is running xp. I just share her connection. Have you tried to e-mail Ken?
Well I guess worst case, I cough up enough for a Kyocera KR1:
http://booster-antenna.com/index.php?main_page=product_info&cPath=35&products_id=99
...and then just run Ethernet between that and my Ubuntucritter.
Siiigh. I'm kinda broke right now, that *hurts*...:(
Has anyone gotten this to work with the internal EVDO card on a Thinkpad T60? This card is a 5720.
No matter what I try (pppd or wvdial) I continue to get "NO CARRIER" upon the ATDT command. Modem appears to initialize since it returns an OK upon ATZ.
Running Kubuntu 6.06.
Mike D,
I'm having the same problem, i believe it to be due to the fact that the card doesn't power up properly on the T60 (at least in my case). If you would like to work on this some more please contact me.
Just reading through this listing as I am looking at setting up my EVDO connection on FC7 on an IBM ThinkPad T60p. FYI for NEW IBM/Lenovo ThinkPad laptops, the PCMCIA slot is no longer it's own bus. It is now slaved to the USB bus. This is information only and I have no idea how to fix the power problem with it. Let me know if there is any technical information you might need about that IBM/Lenovo ThinkPads.
after trying to connect all my log says is this and then it just stops... any ideas?
Feb 7 18:58:36 localhost chat[9557]: send (ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M)
Feb 7 18:58:36 localhost chat[9557]: expect (OK)
Feb 7 18:58:36 localhost chat[9557]: ATTEV1&F;&D2;&C1;&C2S0;=0S7=60^M^M
Feb 7 18:58:36 localhost chat[9557]: OK
Feb 7 18:58:36 localhost chat[9557]: -- got it
Feb 7 18:58:36 localhost chat[9557]: send (AT+CSQ;D#777^M)
Feb 7 18:58:36 localhost chat[9557]: timeout set to 70 seconds
Feb 7 18:58:36 localhost chat[9557]: expect (CONNECT)
Feb 7 18:58:36 localhost chat[9557]: ^M
Feb 7 18:58:36 localhost chat[9557]: AT+CSQ;D#777^M^M
Feb 7 18:58:36 localhost chat[9557]: 15, 99^M
Feb 7 18:58:40 localhost chat[9557]: ^M
Oh sorry, actually after
"localhost pppd[5004]: ^M" it goes like this...
localhost pppd[5004]: Connect
localhost pppd[5004]: -- got it
localhost pppd[5004]:serial connection established.
localhost pppd[5004]:using interface ppp0
localhost pppd[5004]:connect: ppp0 <--> /dev/ttyACM0
localhost pppd[5004]:Remote message: Authentication Failed
localhost pppd[5004]: Connection terminated.
localhost pppd[5004]:Exit
Oh sorry, actually after
"localhost pppd[5004]: ^M" it goes like this...
localhost pppd[5004]: Connect
localh
I don't have the EVDO card, and everything I know about getting pc cards running in Linux would pretty much cover one small page, but I have one tiny insight: on my Debian notebook, /etc/pcmcia/config has a bunch of entries for cards with manufacturer ids or version strings, and the text 'bind "DRIVER"', which seems to imply it dictates which kernel module it'll load when the device is plugged in.
Interesting. The weird thing about this is that although it is a PC Card (pcmcia), it shows up as a USB device. I'll look into that.
Hi Ken,
The Verizon EvDO cards actually implement a PCMCIA USB Host Adapter, to which a typical serial modem is attached. That's why it shows up as a usbserial device in Linux. They did this to make the device driver a no-brainer, which is why the whole thing works in Linux using typical drivers.
Folks, I'm in real trouble here.
Just upgraded to Ubuntu 6.06 Dapper Drake after my last laptop melted down. Yes, I'm a penguin noob :). I need to get my Verizon-based EVDO KPC-650 card working as it's my sole internet in my live-in motorhome :). I'm a full-time political activist working in electronic voting reform and need to get fully back online like pronto...google my name with "diebold" if you're curious.
In doing the instructions Ken posted, once I do the "diff /proc/bus/usb/devices devices | grep Vendor" routine with the card inserted I get:
---
< P: Vendor=0000 ProdID=0000 Rev= 2.06
< P: Vendor=0000 ProdID=0000 Rev= 2.06
< P: Vendor=0c88 ProdID=17da Rev= 0.00
---
So as near as I can tell my next trick is:
modprobe usbserial vendor=0x0c88 product=0x17da
...and it's producing NOTHING whatsoever in /dev - tried it with and without "sudo", no joy, tried:
modprobe usbserial vendor=0c88 product=17da
... (again, both sudo and plain) and still nothing, I tried "sudo nautilus" to go look for anything smelling even close to a new tty file generated in /dev and there's nothing.
Modprobe isn't doing any errors. The fact that the "diff" process is showing the card means the PCMCIA slot and card are live, right?
Other notes: at this site:
https://forums.gentoo.org/viewtopic-t-427992.html
...somebody running Gentoo used the same vendor/prod numbers and here in another build:
http://www.novell.com/coolsolutions/tip/17600.html
...so I know I'm on the right track.
Why am I stuck?
Heeeelp?