AVM FRITZ!Card CAPI-Treiber unter Ubuntu 24.04 LTS

CAPI4Linux Community-Pakete für FRITZ!Card PCI und FRITZ!Card USB v2/v2.1 mit DKMS-Unterstützung
Status: funktionierend getestet

Ubuntu 24.04.4 LTS
Kernel: 6.8.0-138-generic
Architektur: x86_64

Getestete Hardware:
AVM FRITZ!Card PCI v2.0 · PCI-ID 1244:0e00
AVM FRITZ!Card USB v2.1 · USB-ID 057c:1900

CAPI 2.0
AVM Stack: 3.11-07
2 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.deb

README.txt
SHA256SUMS

Installation

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
Hinweis zur PCI-Karte:
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

Getestete Karte:
AVM FRITZ!Card PCI v2.0
PCI-ID: 1244:0e00
Treiber: fcpci
CAPI 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

Getestete Karte:
AVM FRITZ!Card USB v2.1
USB-ID: 057c:1900
Treiber: fcusb2
CAPI 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
Wichtig:
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:

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.

Zur AVM-Übersicht