Fritz Card PCI (fcpci) Linux 2.6 Howto
Das Modul fcpci für die FRITZ!Card PCI(archive.org) FRITZ!Card PCI(Aktuell) geht immer schlechter mit neueren Kerneln zu Compilieren.
Grund dafür ist der ausgelaufene Support des Herstellers, der sich seit einiger Zeit nicht mehr um dieses Produkt kümmert:
This software has reached the "End of maitenance state (EOM)
and will be not longer supported by AVM (End of support state - EOS)
Sehr informativ in diesem Zusammenhang ist auch die Übersicht der unterstützten AVM-Controller von AVM. Als sich Novell 2006 entschloss nur noch freie Treiber in ihre neue Betriebssystemversion zu integrieren war es für AVM unmöglich, direkt mit Suse Linux ausgeliefert zu werden.
Eine Pflege und Anpassung der Treiber auf immer neue Kernelversionen erschien AVM scheinbar als zu aufwendig, was ich ehrlich gesagt verstehe, die Leute wollen ja auch nur Geld verdienen. So eine Pflege bringt keine neuen Nutzer.
Wie auch immer, da der Hersteller keine aktuellen Versionen mehr anbietet, gibt es deshalb hier eine gepachte Version.
Diese gepachte Version arbeitet mit allen Kerneln ab 2.6.18, sehr warscheinlich auch früheren Kerneln zusammen. Ich kann nicht jede mögliche Kernelversion durchtesten, deshalb bin ich auf Deine Rückmeldung angewiesen.
Wenn Du mein Modul einsetzt bitte ich Dich um eine kurze Mail. Bitte schreibe mir ob alles funktioniert, mit Angabe der Kernelversion und einem Auszug von dmesg.
Ich habe fast durchgehend erfolgreiche Rückmeldungen von Kernel 2.6.22 bis zu Kernel 2.6.31, bisher einige erfolgreiche Rückmeldungen mit Kernel 2.6.32. Mit dem Kernel 2.6.34 lassen sich meine Quellen zur Zeit nicht compilieren.
Und weil auch immer öfter im Ton vergriffene Mails nach dem Motto "Hey mach mal endlich xyz fertig!" kommen, ein paar offene Worte dazu: Ich mache das nur und ausschließlich aus Spaß an der Freude in meiner Freizeit.
Wenn Du also etwas von mir in einer bestimmten Zeit erwartest, dann bezahl mich einfach dafür.
Oder noch besser, kaufe bitte nur Hardware für die auch freie Treiber existieren. Ansonsten lebe bitte damit das es fertig ist wenn es fertig ist.
Laut den vielen Mails von Anwendern scheint mein Patch recht gut zu funktionieren, ich habe mehrere Erfolgsberichte von Kernel 2.6.22, 2.6.22-6, 2.6.25-4, 2.6.26, 2.6.27-2, 2.6.28, bis zu Kernel 2.6.31.
Anleitung zum Compilieren des Kernelmoduls fcpci
Quellen findest Du unter https://belug.de/~lutz/pub/fcpci/
Bitte benutze die Version, die am besten zu Deinem Kernel passt. Im Zweifelsfall nimm einfach die neuere Version. Die Anleitung bezieht sich auf Kernel 2.6.25, funktioniert aber immer noch genau so mit neueren Kernelversionen: Passe bitte einfach die Pfade an.
Anleitung:
- tar entpacken
- ins verzeichnis fritz_2.6.25.4/lib gehen, je nach Betriebssystem (32 oder 64 bit) die Datei fcpci-lib.o linken.
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
- dann ins Verzeichnis fritz_2.6.25.4/fcpci-3.11.07 wechseln und:
-
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'
- wenn das Modul sauber gebaut wurde ein extra Verzeichnis anlegen:
-
mkdir /lib/modules/`uname -r`/kernel/extras
cp fcpci.ko /lib/modules/`uname -r`/kernel/extras
depmod -a
- Dann das Modul laden und kontrollieren, ob alles funktioniert:
-
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
Probleme und Lösungen
Du verwendest das originale Kernelmodul, nicht die gepachte Version mit einem 64 bit-Kernel:
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’
Warum steht das hier? Damit Du über Suchmaschinen diese Seite findest. Bitte versuche es noch einmal mit meinen Quellen.
per Email am 15.08.2008:
Leider funktioniert das bei mir unter Lenny nicht so, wie gehofft, Kernel 2.6.25-2-686. Was habe ich falsch gemacht?
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
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.
per Email am xx.xx.2008:
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.
per Mail am 06.01. 2009 von Thomas Westxxxxxx:
Super, danke für Deinen Beitrag!
Das Modul ließ sich anstandslos für den 2.6.28 unter einem 32-Bit System einsetzen und
einbinden.
Kleiner Hinweis:
Als Pfad habe ich cp fcpci.ko /lib/modules/2.6.28/extra verwandt.
Hier die entsprechendes aus dmesg:
[...
fcpci: module license 'Proprietary' taints kernel.
fcpci: AVM FRITZ!Card PCI driver, revision 0.7.2
fcpci: (fcpci built on Jan 6 2009 at 01:53:16)
fcpci: -- 32 bit CAPI driver --
fcpci 0000:00:0d.0: PCI INT A -> Link[LNKD] -> GSI 5 (level, low) -> IRQ 5
fcpci: AVM FRITZ!Card PCI found: port 0x9800, irq 5
fcpci: Loading...
fcpci: Driver 'fcpci' attached to fcpci-stack. (152)
fcpci: Stack version 3.11-07
kcapi: Controller [001]: fcpci-9800-05 attached
kcapi: card [001] "fcpci-9800-05" ready.
fcpci: Loaded.
capidrv: controller 1 up
capidrv-1: now up (2 B channels)
capidrv-1: D2 trace enabled
...]
Schöne Grüße,
Thomas
Links
Mehr zum Thema erfahrt Ihr unter folgenden Links:
Die offiziellen Treiber von AVM (FTP-Link)
Pakete und Forum zu fcpci und Suse Linux
Howto zu fcpci unter Ubuntu (allgemein)