AVM FRITZ!Card CAPI-Treiber unter Ubuntu 24.04 LTS
Ubuntu 24.04.4 LTS
Kernel:
6.8.0-138-genericArchitektur:
x86_64Getestete Hardware:
AVM FRITZ!Card PCI v2.0 · PCI-ID
1244:0e00AVM FRITZ!Card USB v2.1 · USB-ID
057c:1900CAPI 2.0
AVM Stack:
3.11-072 B-Kanäle
automatischer Start nach Reboot getestet
Projekt
Ubuntu 24.04 enthält zwar weiterhin einen Kernel-CAPI-Unterbau, die historischen Schnittstellen für die klassischen AVM-CAPI-Treiber sind jedoch nicht vollständig für externe Treiber verfügbar.
Dieses Projekt stellt deshalb einen eigenen
kernelcapi-Kompatibilitätslayer sowie angepasste Treiber
für die AVM FRITZ!Card PCI und FRITZ!Card USB bereit.
Die Kernelmodule werden mit DKMS verwaltet. Dadurch können sie bei der Installation eines neuen Ubuntu-Kernels automatisch gegen dessen Kernel-Header neu gebaut werden.
Pakete
| Paket | Funktion |
|---|---|
avm-capi-compat-dkms |
Externer CAPI4Linux-Unterbau mit kernelcapi.ko
und den von den historischen AVM-Treibern benötigten
Legacy-Schnittstellen.
|
avm-fritzcard-pci-dkms |
AVM CAPI-Treiber fcpci.ko für FRITZ!Card PCI
und PCI v2.0. Blacklistet den konkurrierenden Ubuntu-mISDN-Treiber
avmfritz.
|
avm-fritzcard-usb2-dkms |
AVM CAPI-Treiber fcusb2.ko für FRITZ!Card USB
v2/v2.1 inklusive Firmware und automatischer Initialisierung.
|
isdn4k-utils-capi |
Moderne Builds der klassischen Werkzeuge
capiinit und capiinfo.
|
Downloads
avm-capi-compat-dkms_0.1.0-1_all.deb avm-fritzcard-pci-dkms_0.7.2-1_all.deb avm-fritzcard-usb2-dkms_0.8.2-1_all.deb isdn4k-utils-capi_2011.8.29-1ubuntu1_amd64.debInstallation
Zunächst werden DKMS und die Header des laufenden Kernels benötigt:
sudo apt update
sudo apt install \
dkms \
build-essential \
linux-headers-$(uname -r)
FRITZ!Card PCI / PCI v2.0
sudo apt install ./avm-capi-compat-dkms_0.1.0-1_all.deb
sudo apt install ./isdn4k-utils-capi_2011.8.29-1ubuntu1_amd64.deb
sudo apt install ./avm-fritzcard-pci-dkms_0.7.2-1_all.deb
sudo reboot
Ubuntu besitzt mit
avmfritz bereits einen mISDN-Treiber
für die FRITZ!Card PCI. Das Paket avm-fritzcard-pci-dkms
blacklistet diesen Treiber, damit der klassische AVM-CAPI-Treiber
fcpci die Karte übernehmen kann.
FRITZ!Card USB v2 / v2.1
sudo apt install ./avm-capi-compat-dkms_0.1.0-1_all.deb
sudo apt install ./isdn4k-utils-capi_2011.8.29-1ubuntu1_amd64.deb
sudo apt install ./avm-fritzcard-usb2-dkms_0.8.2-1_all.deb
sudo reboot
Das USB-Paket enthält zusätzlich:
fcusb2.ko
fus2base.frm
fus3base.frm
/etc/capi.conf
avm-fritzcard-usb2.service
Der systemd-Dienst führt nach dem Laden des Moduls automatisch
capiinit aus und lädt damit die benötigte AVM-Firmware
in den USB-Controller.
Funktionstest
DKMS
dkms status
Beispiel für PCI:
avm-capi-compat/0.1.0, 6.8.0-138-generic, x86_64: installed
avm-fritzcard-pci/0.7.2, 6.8.0-138-generic, x86_64: installed
Beispiel für USB:
avm-capi-compat/0.1.0, 6.8.0-138-generic, x86_64: installed
avm-fritzcard-usb2/0.8.2, 6.8.0-138-generic, x86_64: installed
Geladene Module
PCI:
lsmod | grep -E 'fcpci|kernelcapi|avmfritz|mISDN'
USB:
lsmod | grep -E 'fcusb2|kernelcapi'
Die DKMS-Module sollten unter anderem hier liegen:
/lib/modules/$(uname -r)/updates/dkms/kernelcapi.ko.zst
/lib/modules/$(uname -r)/updates/dkms/fcpci.ko.zst
/lib/modules/$(uname -r)/updates/dkms/fcusb2.ko.zst
CAPI-Controller
sudo capiinit status
FRITZ!Card PCI v2.0:
1 fcpci running fcpci-c000-20 A1 3.11-07 0xc000 20
FRITZ!Card USB v2.1:
1 fcusb2 running fcusb2-0002 A1 3.11-07 2
CAPI-Funktionstest
sudo capiinfo
echo $?
Bei erfolgreicher Kommunikation wird unter anderem ausgegeben:
Number of Controllers : 1
Controller 1:
Manufacturer: AVM GmbH
CAPI Version: 2.0
Manufacturer Version: 3.11-07
BChannels: 2
Der Returncode muss sein:
0
FRITZ!Card PCI
AVM FRITZ!Card PCI v2.0
PCI-ID:
1244:0e00Treiber:
fcpciCAPI Stack:
3.11-07
Ubuntu erkennt diese Karte standardmäßig mit dem mISDN-Treiber
avmfritz. Für klassische CAPI-Anwendungen verwenden
wir stattdessen den historischen AVM-Treiber fcpci.
Der DKMS-Treiber wurde unter Ubuntu 24.04.4 mit Kernel
6.8.0-138-generic erfolgreich gebaut, geladen und
nach einem Neustart getestet.
FRITZ!Card USB
AVM FRITZ!Card USB v2.1
USB-ID:
057c:1900Treiber:
fcusb2CAPI Stack:
3.11-07
Ubuntu bindet an diese USB-Karte standardmäßig keinen konkurrierenden Treiber. Eine zusätzliche Modul-Blacklist ist deshalb nicht erforderlich.
Nach dem Laden von fcusb2 wird die Karte zunächst als
detected erkannt. Erst capiinit lädt die
AVM-Firmware und setzt den Controller auf running.
Diese Initialisierung übernimmt das USB-Paket beim Systemstart automatisch über systemd.
Warum ein eigener kernelcapi?
Ubuntu 24.04 enthält zwar bereits:
/lib/modules/.../kernel/drivers/isdn/capi/kernelcapi.ko.zst
Der historische AVM-Treiber benötigt jedoch zusätzlich klassische CAPI-Kernel-Schnittstellen wie:
attach_capi_ctr
detach_capi_ctr
capi_ctr_ready
capi_ctr_down
capi_ctr_handle_message
Diese stehen dem externen AVM-Treiber im Ubuntu-Standardmodul nicht in der benötigten Form zur Verfügung.
Das Paket avm-capi-compat-dkms stellt deshalb einen
kompatiblen externen kernelcapi-Unterbau bereit.
Kernelupdates und DKMS
Die beiden Treibermodule werden nicht fest für genau einen Kernel installiert, sondern über DKMS verwaltet.
Beim Installieren eines neuen Kernels versucht DKMS automatisch, die Module erneut gegen die Header des neuen Kernels zu bauen.
Der Status kann jederzeit geprüft werden mit:
dkms status
Ein zukünftiger Kernel kann Schnittstellen ändern, die weitere Quellcode-Anpassungen erforderlich machen. DKMS löst den Neubau automatisch aus, kann aber inkompatible Kernel-API-Änderungen nicht selbst reparieren.
Technische Änderungen
Für aktuelle Kernel wurden unter anderem folgende Bereiche angepasst:
- moderner externer Kernel-Build über Kbuild
- DKMS-Unterstützung
- moderne IRQ-Schnittstellen
- Tasklet-API und Scheduler-Verhalten
- sauberer Modul-Unload
- Legacy-CAPI-Kompatibilitätsfunktionen
- Anpassung von
capiinitan moderne Systeme - keine Abhängigkeit mehr von
capifs - Treibererkennung über
/sys/module
Hinweise
Die Pakete sind inoffizielle Community-Builds und keine offiziellen Pakete von AVM oder Canonical.
Die Verwendung erfolgt auf eigene Verantwortung. Die historischen AVM-Treiber, Objektdateien und Firmware-Dateien unterliegen den jeweils zugehörigen Lizenzbedingungen.
Getestet wurde die hier bereitgestellte Version unter Ubuntu 24.04.4 LTS
mit Kernel 6.8.0-138-generic.