The how-to has been updated to reflect recent changes. I have added the section on adding the option or airprime module for use with usb-serial and your EVDO devices.

This how-to will discuss how to get EVDO on Gentoo Linux. Specifically Verizon EVDO using the Keyocera KPC650 EVDO PCMCIA card.

Most if not all EVDO PCMCIA cards are just serial modems with usb-serial hardware. So they basically just show up as USB devices. They could have just been serial devices but I guess it's easier in windows to make it a USB device that converts to/from serial, maybe it's easier to write drivers for or easier to work with. But it makes it relatively easy for us to support it in Linux.

On a personal note, I remember being a geek kid around 10 or 12 owning my dad's second hand laptop and thinking I was the coolest! Well I saw in some movie, tv or magazine cellular modems. I thought how cool would that be, to have internet anywhere. Throughout the years anywhere/anytime internet was obtainable for the common man but dialing up via cell cost way too much for me in my teens (I'm 22 now and have a full time job). So when I got my job, and Verizon reduced the price of EVDO from $80 to $60 I instantly went out and bought the service. My childhood dream came true.

Important Notes
Make sure to activate your EVDO PCMCIA card using the included Windows software. It is required! Borrow someone's laptop like I did. Once this is done and tested in Windows, it will be recognized by the EVDO network no matter what OS its in.

Disclaimer
This guide is as complete as I can make it. I will probably add and correct some things as time goes on, or as people add them. If i have made any errors or any mistakes please let me know and feel free to e-mail me/PM me for help. Making how-to's more accurate helps everyone.

Either the airprime or option kernel modules will be used in conjunction with the usb-serial module in order to control your EVDO card. The current trend in the most recent kernel is that most modern devices (including USB devices like the U720/722) are added to the option module while the airprime module seems to be slowly phased out and by default seems to support only the KPC650 PCMCIA card. This is seems to be an uncoordinated effort and things change quickly.

You could technically add both drivers and one of them will have the matching USB vendor ID/Device ID in it for your device and load. You can check the drivers to see which ID's are in which module. Generally speaking it is safe to add both if you want to be lazy. The option module also supports many GSM cards which are not covered in this how-to as I do not have any to test with.

Important Note
ttyUSB0 is the device we put in the PPP scripts. If you have other usb-serial devices this will be different (maybe USB1 or USB2 etc).

6. Calling and connecting
As root just type

Code:

pppd call verizon

and you should connect to the EVDO service.

That should be it!
I expect there to be some error or mistake on my part above. If i have not explained something clearly or left something out, contact me and I will make edits.
Thanks!_________________Nick DePetrillo
Network Security Engineer
OSHEAN

Last edited by nick-oshean on Sun Dec 30, 2007 4:28 am; edited 4 times in total

thanks alot for the guide. also, thanks to the gentoo newsletter pointing me to this howto. I've been running windows on my laptop for a couple of months now since i got VZW evdo, which i really need, and I haven't had the time to really investigate how to get it woking with the kernel. if this works you are my new hero. I feel like a traitor every time i hear the windows start up chimes. I'll edit this when i get it working . . .

on a similar note, has anyone tried the evdo antenna they sell on evdo-coverage.com? does it really make a difference/worth the money?

Next, it seems that this card uses USB OHCI (insert and run lspci -v | grep prog-if) so you need the OHCI module (ohci_usb). I have EHCI and UHCI compiled into my kernel, but here is the relevent part of my /etc/modules.autoload.d/kernel2.6

thanks alot for the guide. also, thanks to the gentoo newsletter pointing me to this howto. I've been running windows on my laptop for a couple of months now since i got VZW evdo, which i really need, and I haven't had the time to really investigate how to get it woking with the kernel. if this works you are my new hero. I feel like a traitor every time i hear the windows start up chimes. I'll edit this when i get it working . . .

on a similar note, has anyone tried the evdo antenna they sell on evdo-coverage.com? does it really make a difference/worth the money?

I haven't tried it, but I'm considering buying one. What's amusing about that site is that they go on and on about how their competitors tend to overprice the products being sold, yet do the same .

Step 3: create scripts. I copied the scripts to the /etc/ppp/peers directory. In the verizon script, I adjusted it to show ttyUSB0 and phonenumber@alltel.net. I tried your verizon-connect and jwoolf's version of it too.

When I issue the command pppd connect verizon, I get the message:
Starting Verizon
Connect script failed

Where are the logs written, so that I can do a post-mortem to see where it dies?

sudo insmod /lib/modules/2.6.12/kernel/drivers/usb/serial/usbserial.ko vendor=0x0c88 product=0x17da (still don't know what to do about the maxSize parameter).

dmesg shows the card as having ttyUSB0 and ttyUSB1 ports.

I tried using kppp under KDE. I made a symlink to /dev/modem at KNOPPIX => Network/Internet => /dev/modem connection setup.
Next, I went to KPPP and set up an account/modem combo that dials #777 and uses the init string from the script mentioned earlier in this thread. I set up the security as PAP, with the phonenumber@sprintpcs.com and password.
I can dial and connect to the internet quite well, but the dang connection keeps dropping after a few minutes.

sudo insmod /lib/modules/2.6.12/kernel/drivers/usb/serial/usbserial.ko vendor=0x0c88 product=0x17da (still don't know what to do about the maxSize parameter).

dmesg shows the card as having ttyUSB0 and ttyUSB1 ports.

I tried using kppp under KDE. I made a symlink to /dev/modem at KNOPPIX => Network/Internet => /dev/modem connection setup.
Next, I went to KPPP and set up an account/modem combo that dials #777 and uses the init string from the script mentioned earlier in this thread. I set up the security as PAP, with the phonenumber@sprintpcs.com and password.
I can dial and connect to the internet quite well, but the dang connection keeps dropping after a few minutes.

Any ideas?

Thanks
Brian

I had same problems on verizon (with debian distro, but I don't think that matters), you have to add these two lines, they fixed that problem for me:
lcp-echo-failure 4
lcp-echo-interval 65535
add them before connect line

and they inform me that the generic usbserial driver has no flow
control code to deal with large data transfers and that I should
therefore write my own driver if I don't want to crash my system
when performing large data transfers.

Anyhope of Verizon/Kyocera writing linux drivers?
It's really a shame that linux lacks a driver for this card;
it blows away the other pcmcia-modem cards. I had a
Xingular gc83 aircard but had no reception out here in
the countryside. I asked Xingular's technical support if
they had an antennae booster for the card but they informed
me there was no such thing so I had to cancel the service.
When Verizon introduced the EVDO service I signed up and
have always had excellent reception with the big antenna
booster which comes with the kpc650.

#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY_PROC=y
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set

#
# PC-card bridges
#
CONFIG_YENTA=y
CONFIG_YENTA_O2=y
CONFIG_YENTA_RICOH=y
CONFIG_YENTA_TI=y
CONFIG_YENTA_ENE_TUNE=y
CONFIG_YENTA_TOSHIBA=y
# CONFIG_PD6729 is not set
# CONFIG_I82092 is not set
# CONFIG_I82365 is not set
# CONFIG_TCIC is not set
CONFIG_PCMCIA_PROBE=y
CONFIG_PCCARD_NONSTATIC=y

#
# PCI Hotplug Support
#
CONFIG_HOTPLUG_PCI=y
# CONFIG_HOTPLUG_PCI_FAKE is not set
# CONFIG_HOTPLUG_PCI_COMPAQ is not set
# CONFIG_HOTPLUG_PCI_IBM is not set
# CONFIG_HOTPLUG_PCI_ACPI is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set

On the pcmciautils website troubleshooting/FAQ guide there is a
discussion about pci busses and bios. I read it but didn't fully grasp it.
But I had to add the option "pci=assign-busses" to my kernel line in my grub.conf
in order for my Kyocera KPC650 to power up, otherwise the led would not
light up in response to `pccardctl insert`

`pccardctl info` still shows nothing though.
But the card does work so long as you steer clear of large downloads.

The rest is built into the kernel. A friend of mine inserted the card into his system, running 2.6.15 with udev and pcmciautils, and the card received power even without loading usbserial. Once he inserted usbserial with the appropriate flags a device node was built.

Thanks for starting this thread. I'm using different hardware w/ a Dell 5700 Wireless card which I believe is a "Novatel Wireless Merlin XV620" if I peeled the Dell sticker off. I'm not a complete newbie to this as I had a Kyocera card working just fine on my previous PCMCIA latptop.

I have all my ppp kernel modules and usb-serial.c patch installed, compiled, and booted. I use the following:

Quote:

modprobe usbserial vendor=0x413c product=0x8117 maxSize=2048

which results in a device /dev/ttyUSB0 (& 1).

My problem seems to be that my ppp chat doesn't seem to recognize that it has a good IP address and instead just terminates the conversation.

I find it curious that I get an IP addr 66.174.52.4, but ppp seems to think "Could not determine local IP address", and my pppd seems to end the conversation. I'm not very familiar with ppp, but this seems very strange.

I just got hold of a new Canar (Sudan) CDMA2000 card boxed as a Huawei EC500. It detected the card out of the box and within a few minutes I copied the configuration details given by nick-oshean and had it working straight away. I didn't patch the kernel though and haven't experienced any timeouts or disconnects.

I see that the MS Windows software allows you to send SMS (not that I have tried it as I don't have windows). Does anyone know if there is a way to send SMS through Linux using these cards ??

Thanks for the guide. I used it for getting a connection through my Samsung i730 with EVDO service. No deviation from the guide needed either.
Though one question remains: Can I get an internal EVDO card for my Dell M1210 and use the same login info as on my i730 phone without having to purchase another data plan from Verizon for the internal card? If anyone has any info on that a reply would be hot.

dmesg
hub 7-0:1.0: USB hub found
hub 7-0:1.0: 2 ports detected
Device driver usbdev7.1_ep81 lacks bus and class support for being resumed.
usb 6-1: new full speed USB device using ohci_hcd and address 2
Device driver usbdev6.2_ep00 lacks bus and class support for being resumed.
usb 6-1: configuration #1 chosen from 1 choice
Device driver usbdev6.2_ep81 lacks bus and class support for being resumed.
Device driver usbdev6.2_ep82 lacks bus and class support for being resumed.
Device driver usbdev6.2_ep02 lacks bus and class support for being resumed.
Device driver usbdev6.2_ep84 lacks bus and class support for being resumed.
Device driver usbdev6.2_ep04 lacks bus and class support for being resumed.
Device driver usbdev6.2_ep85 lacks bus and class support for being resumed.
Device driver usbdev6.2_ep05 lacks bus and class support for being resumed.
Device driver usbdev6.2_ep86 lacks bus and class support for being resumed.
Device driver usbdev6.2_ep06 lacks bus and class support for being resumed.

I'm not sure what might be keeping this from getting a USB assignment. Any suggestions on what I might try or where to look?

Hey tacmann, I'd double check your kernel config, I found there was a 3rd option under the USB Serial Drivers that I needed to have enabled in order to get the Sprint card to activate properly. I have it "working" but I still haven't figured out the exact steps that I got working with. This was on a fresh install. I've updated the Merlin S620 wiki entry, and fyi I've used it successfully on the S720 and EX720.