Re: Module fuer Fritz!Card
Juergen Doenitz wrote:
> Danke fuer den Hinweis, hat das Problem aber leider noch nicht geloest.
> Hat es bei Dir mit der Version funktioniert oder hast Du es nur
> gehoert und noch nicht getestet?
Bei mir ist das Problem gelöst. Allerdings sah die von mir angegebene Seite
zu diesem Zeitpunkt noch ein bisschen anders aus. Damals hatte er noch den
Patch veröffentlicht, die rpms hatte ich mir nicht angeschaut.
>
> Ich liefere mal noch ein paar mehr Information:
>
> ein paar mehr Zeilen zum Fehler:
> LOG(1):make[1]: Entering directory `/usr/src/linux-2.6.18'
> LOG(1):CC [M] /tmp/fritz/1/fritz/src/main.o
> LOG(1):/tmp/fritz/1/fritz/src/main.c:80: error: unknown field 'owner'
> specified in initializer LOG(1):/tmp/fritz/1/fritz/src/main.c:80: warning:
> initialization from incompatible pointer type LOG(1):make[2]: ***
> [/tmp/fritz/1/fritz/src/main.o] Fehler 1
>
>
> ein Ausschnitt aus main.c (ab Zeile 78)
> static struct usb_driver usb_driver = {
>
> .owner = THIS_MODULE,
> .name = TARGET,
> .id_table = usb_id_table,
> .probe = usb_probe,
> .disconnect = usb_disconnect,
> } ;
Es sieht genau so aus wie bei mir, gleiche Fehlermeldung. Du hast IMHO ganz
sicher das gleiche Problem wie ich.
O.k., dann poste ich jetzt mal die diffs, wie sie hier funktionieren, das
musst Du halt anpassen, falls das bei Deiner Version nicht genau passt:
Zuerst die main.c:
+++ main.c 2006-12-27 13:07:26.000000000 +0100
@@ -82,8 +82,14 @@
struct usb_driver usb_driver = {
- .owner = THIS_MODULE,
- .name = TARGET,
+#ifndef OLD_USB_DRIVER
+ .driver = {
+#endif
+ .owner = THIS_MODULE,
+ .name = TARGET,
+#ifndef OLD_USB_DRIVER
+ },
+#endif
.id_table = usb_id_table,
.probe = usb_probe,
.disconnect = usb_disconnect,
Ausserdem habe ich noch die tools.h geändert:
+++ tools.h 2006-12-27 13:07:26.000000000 +0100
@@ -71,13 +71,14 @@
/*---------------------------------------------------------------------------*\
\*---------------------------------------------------------------------------*/
+#ifndef atomic_xchg
static inline unsigned long atomic_xchg (
volatile atomic_t * v,
unsigned value
) {
return __xchg (value, &v->counter, sizeof (unsigned));
} /* atomic_xchg */
-
+#endif
/*---------------------------------------------------------------------------*\
\*---------------------------------------------------------------------------*/
#ifndef NDEBUG
> Soviel ich bisher gelesen habe ist THIS_MODULE eine Konstante um
> Informationen unter /proc zu finden. Muesste eigentlich ja irgendwo im
> Kernel definiert werden.ich habe auch mal in dem C-file module.h
> included (ich meine, dort wird es definiert beim 2.6.18er) hatte aber
> keinen Erfolg und ich auch nicht wirklich Ahnung :)
Ja, es geht um THIS_MODULE. Bevor ich diesen Patch gefunden hatte, hatte ich
es damit gelöst, dass ich THIS_MODULE einfach rausgeschmissen habe, das
kannst Du ja bei Bedarf auch probieren. Bei mir kam jedoch ein zweiter
Fehler, das betraf die Definition atomic_xchg in tools.h, deshalb der
zweite Patch.
Mit obigen Patches sollte es jetzt aber wirklich funktionieren. Wenn nicht,
hast Du einen svn-client zur Verfügung? Wenn ja, kannst Du dir bei mir mit
svn co svn://wieslauf.sub.de/var/lib/repos/fritz/branches/Version.1.1
mal die bei mir funktionierende Version holen und main.c sowie tools.h mit
Deiner Version vergleichen.
Gruss, Emil
Reply to: