AVM ISDN drivers and Linux 2.6

I had the pleasure of trying to get an AVM Fritz ISA card working under linux 2.6 this week. While drivers for AVM's premium equipment is in Linux mainline, these drivers are not. The used to be obtained from AVM's ftp site, but these days, if you look there, all that you'll find is old 2.4. drivers, and a notice saying future drivers are available in SuSE.

Before I continue, I wish that all hardware vendors that write linux drivers would get them mainlined. I've begged AVM to do this before.

I tried porting the old driver to a modern 2.6 kernel, but while I could get it to compile, I never actually got it to work :-)

For the record, and for googlers, here's how you build these buggers:

  • You read gentoo's ebuild
  • This points you to somewhere on ftp.suse.com where you can download a 2.6 compatible version of the driver. The URL given didn't work for me, but I poked around with similar URLs, and came up with the goods
  • You'll see a sed command that adds some includes to everything. Run this.
  • You'll also find a whole pile of patches, needed for recent kernels.
  • Really old cards might not be actively patched, but many of the changes in other drivers are applicable to all of them, i.e. in the patch for fritz.pcmcia, the entire atomic_xchg function is removed; this must happen for fritz.classic, too.

I got the fritz.classic driver working with Linux 2.6.21.1, thanks to Gentooers :-)