EVDO and ubuntu 6.10

Jason Holt jason at lunkwill.org
Thu Jan 4 22:24:53 MST 2007

Wow, this really sucks.  I got my Kyocera kpc650 working somewhat on edgy eft. 
It's an evdo card (cellular broadband, costs around $80/month).  But you have 
to patch the kernel to keep it from dying all the time.  I can't find anybody 
else with this particular variant of the patch; the second hunk tends to 
differ a lot.  Anyway, compiling now; we'll see if it actually works.

Then you have to remember to 
modprobe usbserial vendor=0x0c88 product=0x17da
to load the module (vendor and product come from /proc/bus/usb/devices).

Also note that groups of 8 spaces in the patch should be replaced with a tab; 
that was the other gotcha I found.

I used kppp to configure the connection. It produces:
connect "/usr/sbin/chat -v -f /etc/chatscripts/ppp0"

If it still gets wonky: pccardctl eject ; pccardctl insert to kick it.

Here's the patch to usb-serial.c:

# diff -Naur usb-serial.c usb-serial-v620.c

--- usb-serial.c        2005-03-01 23:38:37.000000000 -0800
+++ usb-serial-v620.c   2005-07-22 10:09:59.000000000 -0700
@@ -361,6 +361,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);
@@ -803,7 +804,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);
@@ -1433,3 +1434,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");

More information about the PLUG mailing list