Athur Dent
Handtuchhalter
Ich habe die Vodafone Easybox (1,8Mbit/s) und Linux 2.6.16.21-0.25-default x86_64.
Mein Problem ist, das meine Box auf 64 byte gedrosselt wird, aber es gibt ein Patch.
Jedoch bin ich recht frisch in der Bekanntschaft mit dem Pinguin und das Herstellen des Patches erfordert doch einige Kenntnisse.
Hier die Anleitung von www.junxion.com
INSTRUCTIONS
To apply the patch you need a functional Linux kernel source tree installed . Linux kernel sources can be obtained from www.kernel.org.
The patch was create with the following command from /usr/src/linux-2.4.20/:
diff -Naur drivers/usb/serial/usbserial.c drivers/usb/serial/usbserial_junxion.c
You can apply the patch with:
patch -p0 <patchfile
To compile the module:
cd /usr/src/linux-2.4.20/drivers/usb/serial/
gcc -D__KERNEL__ -I/usr/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -02 \
-fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 \
-march=i386 -DMODULE -nostdinc -iwithprefix include \
-DKBUILD_BASENAME=usbserial -DEXPORT_SYMTAB -c usbserial.c
[start 2.6.x patch]
# 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);
@@ -1060,7 +1061,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");
[end 2.6.x patch]
(Patch 2.4 hab ich raus gelassen) Orginalseite http://www.junxion.com/opensource/linux_highspeed_usbserial.html
Die erste Frage ist der Kernel http://www.de.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.25.tar.gz (ca 50 MB) der richtige? Mein Kernel: Linux 2.6.16.21-0.25-default x86_64
So wie ich das verstehe,
den Patch anwenden mit "patch -p0 <2.6.x patch", aber von wo? - Ordner der usb-serial.c suchen?
Danach gehe ich dann in "Kernelsource" Ordner, wie oben beschrieben, und führe den gcc befehl aus (ist doch einer oder?).
Entwicklertools sind installiert!
Ist dann alles fertig? oder muss ich dann noch etwas tun?
Motherboard Asus A8V Deluxe (Via K8T800Pro - Via VT6307 - Via VT8237)
Wenn ich total auf dem Holzweg bin, vieleicht ne Stichpunktartige Anleitung oder Verweise würden mir weiter helfen, Linux mit beschränkten I-net ist DOOF - last die Windose nicht gewinnen.
Mein Problem ist, das meine Box auf 64 byte gedrosselt wird, aber es gibt ein Patch.
Jedoch bin ich recht frisch in der Bekanntschaft mit dem Pinguin und das Herstellen des Patches erfordert doch einige Kenntnisse.
Hier die Anleitung von www.junxion.com
INSTRUCTIONS
To apply the patch you need a functional Linux kernel source tree installed . Linux kernel sources can be obtained from www.kernel.org.
The patch was create with the following command from /usr/src/linux-2.4.20/:
diff -Naur drivers/usb/serial/usbserial.c drivers/usb/serial/usbserial_junxion.c
You can apply the patch with:
patch -p0 <patchfile
To compile the module:
cd /usr/src/linux-2.4.20/drivers/usb/serial/
gcc -D__KERNEL__ -I/usr/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -02 \
-fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 \
-march=i386 -DMODULE -nostdinc -iwithprefix include \
-DKBUILD_BASENAME=usbserial -DEXPORT_SYMTAB -c usbserial.c
[start 2.6.x patch]
# 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);
@@ -1060,7 +1061,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");
[end 2.6.x patch]
(Patch 2.4 hab ich raus gelassen) Orginalseite http://www.junxion.com/opensource/linux_highspeed_usbserial.html
Die erste Frage ist der Kernel http://www.de.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.25.tar.gz (ca 50 MB) der richtige? Mein Kernel: Linux 2.6.16.21-0.25-default x86_64
So wie ich das verstehe,
den Patch anwenden mit "patch -p0 <2.6.x patch", aber von wo? - Ordner der usb-serial.c suchen?
Danach gehe ich dann in "Kernelsource" Ordner, wie oben beschrieben, und führe den gcc befehl aus (ist doch einer oder?).
Entwicklertools sind installiert!
Ist dann alles fertig? oder muss ich dann noch etwas tun?
Motherboard Asus A8V Deluxe (Via K8T800Pro - Via VT6307 - Via VT8237)
Wenn ich total auf dem Holzweg bin, vieleicht ne Stichpunktartige Anleitung oder Verweise würden mir weiter helfen, Linux mit beschränkten I-net ist DOOF - last die Windose nicht gewinnen.