iowarrio.c und kernel 2.6.15

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
hannes
Posts: 4
Joined: Thu Aug 25, 2005 1:46 pm

iowarrio.c und kernel 2.6.15

Post by hannes »

Moin Moin

ich habe auf mein Linux Kiste (Fedora 4) mal ne Kernel update auf die Version 2.6.15-1.1831_FC4-i586 (laut yum) gemacht.
jetzt habe ich das Problem das sich das IOWarrior Modul nicht mehr erstellen lässt.

yum sagt das Kernel und Kernel-devel installiert sind:
yum list kernel*
...
kernel.i586 2.6.15-1.1831_FC4 installed
kernel-devel.i586 2.6.15-1.1831_FC4 installed
..

Code: Select all

[boss@linuxkiste Driver]# make
make -C /lib/modules/2.6.15-1.1831_FC4/build SUBDIRS=/Hardware/IOWarriorSDK/LinuxSDK/Kernel_2.6/Driver modules
make[1]: Entering directory `/usr/src/kernels/2.6.15-1.1831_FC4-i586'
  CC [M]  /mediaCenter/IOWarriorSDK/LinuxSDK/Kernel_2.6/Driver/iowarrior.o
/mediaCenter/IOWarriorSDK/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:166: error: unknown field 'mode' specified in initializer
/mediaCenter/IOWarriorSDK/LinuxSDK/Kernel_2.6/Driver/iowarrior.c: In function 'iowarrior_ioctl':
/mediaCenter/IOWarriorSDK/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:468: warning: ISO C90 forbids mixed declarations and code
/mediaCenter/IOWarriorSDK/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:492: warning: ignoring return value of 'copy_from_user', declared with attribute warn_unused_result
/mediaCenter/IOWarriorSDK/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:510: warning: ignoring return value of 'copy_to_user', declared with attribute warn_unused_result
/mediaCenter/IOWarriorSDK/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:535: warning: ignoring return value of 'copy_to_user', declared with attribute warn_unused_result
make[2]: *** [/mediaCenter/IOWarriorSDK/LinuxSDK/Kernel_2.6/Driver/iowarrior.o] Error 1
make[1]: *** [_module_/mediaCenter/IOWarriorSDK/LinuxSDK/Kernel_2.6/Driver] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.15-1.1831_FC4-i586'
make: *** [default] Error 2
ist das ein Fehler im Module oder sitzt der Fehler vom PC :)

hannes[/code]
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Das sieht danach aus als ob man mal wieder in den Kernel-Datenstrukturen herumgefummelt hat. Dagegen kann man sich leider nicht wehren.
Ob das eine Fedora-Spezialitaet ist oder eine allgemeine Kernelaenderung kann ich noch nicht sagen.
hannes
Posts: 4
Joined: Thu Aug 25, 2005 1:46 pm

Post by hannes »

danke, dann werde ich halt den 2.6.14x Kernel wieder booten, da geht es ja.

hannes
robs
Posts: 4
Joined: Tue Mar 07, 2006 6:23 pm

Post by robs »

hab bei mir folgende sachen geaendert, dass es auf dem 2.6.15 kernel richtig kompiliert.

schauen die developer eigentlich hier rein? oder muss ich das wo anders posten?

Code: Select all

--- iowarrior-old.c     2006-03-07 17:49:18.000000000 +0100
+++ iowarrior.c 2006-03-07 19:43:26.000000000 +0100
@@ -27,6 +27,7 @@
 #include <linux/slab.h>
 #include <linux/sched.h>
 #include <linux/poll.h>
+#include <linux/version.h>
 #include "iowarrior.h"
 
 /* Use our own dbg macro */
@@ -163,7 +164,9 @@
 static struct usb_class_driver iowarrior_class = {
     .name =            "usb/iowarrior%d",
     .fops =            &iowarrior_fops,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15)
     .mode =            S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH,
+#endif
     .minor_base =      IOWARRIOR_MINOR_BASE,
 };
 
@@ -463,8 +466,7 @@
  */
 static int iowarrior_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg ) 
 {
-    struct iowarrior *dev = NULL;
-    dev = (struct iowarrior *) file->private_data;
+    struct iowarrior *dev = file->private_data;
     __u8 buffer[8];            /* max packet size for iowarrior */
     int retval;


hoffentlich krieg ich bald auch den iowkit zum kompilieren... sonst macht das ganze nicht so spass.. resp kaufe wohl den iowarrior nicht... mal schauen

bb
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Das Thema ist in Arbeit.
wetzel
Posts: 2
Joined: Wed Mar 15, 2006 12:09 pm

Das Thema ist in Arbeit.

Post by wetzel »

Hallo Herr Körber,

ich habe auch das Problem, dass sich die Kernelmodule nicht für den aktuellen 2.6. er-Kernel compilieren lassen.
Können sie eine Prognose geben, wann es dafür eine Lösung geben wird?

Danke im Voraus,
Claus Wetzel
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Wir haben die Meldung das man einfach die .mode Zeile loeschen kann und dann das Kernel-Modul funktioniert.
wayoda
Posts: 362
Joined: Fri Dec 19, 2003 12:00 pm
Location: Wuppertal/Germany

Post by wayoda »

Auf der mailing-list linux-usb-devl@lists.sourceforge.net war am 29.10.2005 folgender Patch zu finden:

Code: Select all

[PATCH] devfs: Remove the mode field from usb_class_driver as it's no longer needed

Also fixes all drivers that set this field, and removes some other devfs
specfic USB logic.


Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Ab Kernel 2.6.15 muss die Zeile .mode in iowarrior-Modul

Code: Select all

 static struct usb_class_driver iowarrior_class = {
    .name =		"usb/iowarrior%d",
    .fops =		&iowarrior_fops,
    .mode =		S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH,
    .minor_base =	IOWARRIOR_MINOR_BASE,
};
entfernt (auskommentiert) werden.

Eberhard
wetzel
Posts: 2
Joined: Wed Mar 15, 2006 12:09 pm

Post by wetzel »

Dear wayoda and Robert,

thanks! It compiles now.
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Wie handhabt man solche Kernel-Aenderungen eigentlich in den Sourcen?
Ich moechte eigentlich nicht je ein Source-Paket pro Kernel-Revision ausliefern muessen.
robs
Posts: 4
Joined: Tue Mar 07, 2006 6:23 pm

Post by robs »

zb wie ich oben beschrieben habe mit:

Code: Select all

#include <linux/version.h>

[...]

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15)
     .mode =            S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH,
#endif

grosse aenderungen sollten sowieso eher selten sein..

btw: hab jetzt uebrigens ein iowarrior bestellt! freue mich schon drauf! :D :D :D
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Danke, das war die Feinheit die ich noch nicht kannte.
Ich bin doch ziemlich rostig in Linux-Programmierung.
Post Reply