header image
[ # ] Att få full HSDPA-hastighet med Huawei E220 USB-modem i Ubuntu/Linux
17 maj 2007 under IT

Eftersom vi antar att du inte är urdålig så förutsätter vi att du redan fått igång ditt kort och får sisådär 0,5 mbps hastighet. Om du inte fått igång kortet alls, kolla på denna http://ubuntuforums.org/showthread.php?t=262867.

Vi behöver patcha en fil som heter usb-serial.c och (när du dragit ned källkodsträdet och packat upp det) troligen finns här:

/usr/src/linux-2.6.17.10/drivers/usb/serial/usb-serial.c

Den här filen behöver patchas med följande patchfil:

--- usb-serial.c.old 2006-09-20 05:42:06.000000000 +0200
+++ usb-serial.c 2007-05-16 19:58:44.000000000 +0200
@@ -58,6 +58,7 @@
*/

static int debug;
+static ushort maxSize = 0;
static struct usb_serial *serial_table[SERIAL_TTY_MINORS]; /* initially all NULL */
static LIST_HEAD(usb_serial_driver_list);

@@ -816,6 +817,7 @@
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);
@@ -1190,3 +1192,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");

Den vane C-kodaren ser att vi ändrar 4 rader och anar nog vad vi gör. Ett argument som heter maxSize sparas och den påverkar hur stort varje paket får vara. Patcha filen med kommandot:

patch -p0 < patchfil


Write a comment