Das Modul fcpci für die Fritzcard geht immer schlechter mit neueren Kerneln zu compilieren.
Hier gibt es deshalb eine gepachte Version für Kernel 2.6.22. Natürlich seid Ihr selbst für Eure Kiste verantwortlich, ich übernehme keinen Support, nur das lästige Patchen fällt weg. Getestet mit Kernel 2.6.22-6, es läuft super.
Update und Hinweis: Das folgende hat mit den Sourcen der Herstellerfirma nicht mehr viel gemein, die Quellen sind gepacht. Weder ich noch die Herstellerfirma übernehmen irgendeine Garantie.
Das Modul fcpci funktioniert ohne weiteres nicht mit einem 64-bit Kernel, es erscheint folgende Fehlermeldung:
ld: Relocatable linking with relocations from format elf32-i386 (/var/lib/fritz/fcpci-lib.o) to format elf64-x86-64 (/usr/src/fritz_2.6.25.4/fcpci-3.11.07/fcpci.o) is not supported
oder bei älteren Patchleveln:
fcpci/src/main.c:367: error: implicit declaration of function ?pci_module_init?
Ich habe die Quellen für Kernel 2.6.25.4 gepacht. herunterzuladen ist das hier: belug.de/~lutz/pub/fcpci/
Anleitung:
Bei einem 32-bit System sieht das bsp. so aus:
box:/usr/src/fritz_2.6.25.4/lib# ls -l
insgesamt 1388
-rwx------ 1 root root 581653 2008-04-28 17:14 32_fcpci-lib.o
-rw-r--r-- 1 root root 823752 2008-05-20 14:21 64_fcpci-lib.o
lrwxrwxrwx 1 root root 14 2008-05-20 14:36 fcpci-lib.o -> 32_fcpci-lib.o
Für ein 64-bit System einfach ändern:
ln -s 64_fcpci-lib.o fcpci-lib.o
make clean
make all
Das sollte dann so aussehen:
box:/usr/src/fritz_2.6.25.4/fcpci-3.11.07# make
make -C /lib/modules/2.6.25.4/build SUBDIRS=/usr/src/fritz_2.6.25.4/fcpci-3.11.07 modules
make[1]: Entering directory `/usr/src/linux-2.6.25.4'
LD [M] /usr/src/fritz_2.6.25.4/fcpci-3.11.07/fcpci.o
Building modules, stage 2.
MODPOST 1 modules
CC /usr/src/fritz_2.6.25.4/fcpci-3.11.07/fcpci.mod.o
LD [M] /usr/src/fritz_2.6.25.4/fcpci-3.11.07/fcpci.ko
make[1]: Leaving directory `/usr/src/linux-2.6.25.4'
mkdir /lib/modules/`uname -r`/kernel/extras
cp fcpci.ko /lib/modules/`uname -r`/kernel/extras
depmod -a
box:~# modprobe -r fcpci
box:~# modprobe fcpci
box:~# dmesg
...
fcpci: Driver 'fcpci' detached
fcpci: AVM FRITZ!Card PCI driver, revision 0.7.2
fcpci: (fcpci built on May 20 2008 at 14:25:05)
fcpci: -- 64 bit CAPI driver --
fcpci: AVM FRITZ!Card PCI found: port 0xe880, irq 18
fcpci: Loading...
fcpci: Driver 'fcpci' attached to fcpci-stack. (304)
fcpci: Stack version 3.11-07
kcapi: Controller [001]: fcpci-e880-18 attached
kcapi: card [001] "fcpci-e880-18" ready.
fcpci: Loaded.
Die Karte ist von nun an auch mit neueren Kerneln verwendbar. Bei Fragen oder Anmerkungen schreibt mir bitte eine Mail: lutz.willek(at)belug.de
Letztes Update: 2008-06-24 Lutz
Nachtrag, per Email am 15.08.2008
>>> Leider funktioniert das bei mir unter Lenny nicht so, wie
>>> gehofft, Kernel 2.6.25-2-686:
>>> zeus:/treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07# make clean
>>> rm -f main.o driver.o tools.o tables.o queue.o lib.o
>>> rm -f fcpci.o fcpci.ko
>>> zeus:/treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07# make all
>>> make -C /lib/modules/2.6.25-2-686/build
>>> SUBDIRS=/treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07 modules
>>> make[1]: Entering directory `/usr/src/linux-headers-2.6.25-2-686'
>>> CC [M] /treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07/main.o
>>> CC [M] /treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07/driver.o
>>> CC [M] /treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07/tools.o
>>> CC [M] /treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07/tables.o
>>> CC [M] /treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07/queue.o
>>> CC [M] /treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07/lib.o
>>> LD [M] /treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07/fcpci.o
>>> ld: Relocatable linking with relocations from format elf64-x86-64
>>> (/var/lib/fritz/fcpci-lib.o) to format elf32-i386
>>> (/treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07/fcpci.o) is not supported
>>> make[2]: *** [/treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07/fcpci.o] Fehler 1
>>> make[1]: *** [_module_/treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07] Fehler 2
>>> make[1]: Leaving directory `/usr/src/linux-headers-2.6.25-2-686'
>>> make: *** [fcpci.ko] Fehler 2
>>> zeus:/treiber/capi/v4/fritz_2.6.25.4/fcpci-3.11.07#
>>>
>>> Was habe ich falsch gemacht?
>> Ich glaube Sie haben vergessen, die 32-bit Variante zu linken, siehe Anleitung auf der Webseite:
>> ins verzeichnis fritz_2.6.25.4/lib gehen, je nach Betriebssystem (32 oder 64 bit) die Datei fcpci-lib.o linken.
>>
> Ich habe nochmals alle Schritte nachvollzogen, vom Download, Entpacken usw.. Jedesmal vorher gelöscht. Dabei ist mir aufgefallen, dass im Verzeichnis ....2.6.25.4/lib ein 0-bit-Link fcpci-lib.o mitgeliefert wird.
> Ich habe also vor dem ln -s 32_fcpci-lib.o fcpci-lib.o
> das vorhandene fcpci-lib.o gelöscht und dann erst weiter gemacht. Damit ging es dann nach einem Neustart des Rechners.Super.
Ich stelle das mal mit auf die Hilfeseite.