Hilfe Englisch und Kernel

Athur Dent

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.
 
Novell Suse Linux mit KDE Desktop (SUSE-Linux-10.1-GM-DVD-x86_64(2))

...hab ichs erwischt? sag ja habe nicht soviel ahnung.
 
Einfach mit Yast2 den Kernelsource installieren. Außerdem auch noch die Entwicklungstools.
Sich auf der Konsole als root einloggen.
Dann nach /usr/src/linux wechseln und dann dort den Patch auf den Kernel anwenden. Danach dann den Kernel neu kompilieren und installieren.
 
Ein kleiner Blick in die Dokumentation hilft gelegentlich.
 
Kann jemand über den Code schauen?

2x (usb-serial.c:1: error: CPU you selected does not support x86-64 instruction set) bekomme ich durch einsetzen von i686 und wenn ich die -mpreferred-stack-boundary auf irgendeine Zahl z.B. 12 setze, aber welches die richtige ist weiss ich auch nicht.

für die Angabe des Ordners habe ich schon verschiedene Varianten probiert, aber noch nicht die passende gefunden!?

linux-Silberfuchs:/usr/src/linux-2.6.16.21-0.25/drivers/usb/serial #
gcc -D__KERNEL__ -I/usr/src/linux-2.6.16.21-0.25-x86_64/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 usb-serial.c

gcc: unrecognized option '-02'
usb-serial.c:1: error: CPU you selected does not support x86-64 instruction set
usb-serial.c:1: error: CPU you selected does not support x86-64 instruction set
usb-serial.c:1: error: -mpreferred-stack-boundary=2 is not between 4 and 12

linux-Silberfuchs:/usr/src/linux-2.6.16.21-0.25/drivers/usb/serial #
 

Ähnliche Themen

dovecot und postfix Konfiguration Problem

Kernel kompiliert nicht mit usb_wwan Patch

NagiosGrapher 1.7.1 funktioniert nicht

rsnapshot und ein Rechteproblem?

Fehler beim Kompilieren von qcserial

Zurück
Oben