# ebuild für 2.6.1-mm2 mit mISDN patch für passive Karten

## steveb

Hallo zusammen,

habe mir die Mühe gemacht und ein ebuild für den 2.6.1-mm2 (2.6.0-mm1 und 2.6.1-mm1 habe ich gelöscht. Jetzt ist 2.6.1-mm2 aktuell) mit mISDN gemacht. Den grössten Teil der Infos habe ich von einem Freund und von diesem Beitrag: 2.6.0-test9 und Capi.

Hier das ebuild (mm-sources-isdn-2.6.0-r1.ebuild):

```
Das 2.6.0er eBuild habe ich zugunsten von 2.6.1 gelöscht!
```

Hier das ebuild (mm-sources-isdn-2.6.1-r1.ebuild):

```
Das 2.6.1-r1er eBuild habe ich zugunsten von 2.6.1-r2 gelöscht!
```

Hier das ebuild (mm-sources-isdn-2.6.1-r2.ebuild):

```
# Copyright 1999-2003 Gentoo Technologies, Inc.

# Distributed under the terms of the GNU General Public License v2

# $Header: sys-kernel/mm-sources-isdn/mm-sources-isdn-2.6.1-r2.ebuild, Exp $

#OKV=original kernel version, KV=patched kernel version.  They can be the same.

ETYPE="sources"

inherit kernel

OKV=${PV}

EXTRAVERSION="${PR/r/mm}-isdn"

KV=${OKV}-${EXTRAVERSION}

S=${WORKDIR}/linux-${KV}

inherit eutils

inherit cvs

# What's in this kernel?

# INCLUDED:

# The development branch of the linux kernel with Andrew Morton's patch and mISDN from CVS

DESCRIPTION="Full sources for the development linux kernel with Andrew Morton's patchset with mISDN (from CVS) support"

SRC_URI="mirror://kernel/linux/kernel/v${OKV:0:3}/linux-${OKV}.tar.bz2

        mirror://kernel/linux/kernel/people/akpm/patches/${OKV:0:3}/${OKV}/${KV/-isdn/}/${KV/-isdn/}.bz2

        http://www.mail-archive.com/gentoo-user@gentoo.org/msg28314/i4l-t9bk22.gz

        http://rcum.uni-mb.si/~uvp00845b/i4l-t9bk22.gz"

KEYWORDS="x86 ~*"

RDEPEND="sys-apps/module-init-tools

        sys-apps/findutils

        sys-apps/sed

        sys-apps/coreutils"

SLOT=${KV}

PROVIDE="virtual/linux-sources

        virtual/alsa"

src_unpack() {

        cd ${WORKDIR}

        unpack linux-${OKV}.tar.bz2

        mv linux-${OKV} linux-${KV}

        # Andrew Morton's patchset

        cd ${S}

        epatch ${DISTDIR}/${KV/-isdn/}.bz2 || die "mm patch failed"

        find . -iname "*~" -exec rm {} 2>/dev/null \;

        # Patch for 2.6.x to get mISDN working

        cd ${S}

        epatch ${DISTDIR}/i4l-t9bk22.gz || die "mISDN patch for ${OKV} failed"

        # mISDN CVS install/patch for 2.6.x kernel

        addwrite ${DISTDIR}/cvs-src

        mkdir -p ${DISTDIR}/cvs-src/

        cd ${DISTDIR}/cvs-src/

        cvs -d:pserver:anonymous:readonly@cvs.isdn4linux.de:/i4ldev login 2>/dev/null

        einfo "Checking out latest mISDN from CVS..."

        cvs -z3 -d:pserver:anonymous@cvs.isdn4linux.de:/i4ldev checkout mISDN

        cp -a mISDN ${WORKDIR}

        chown -R root:root ${WORKDIR}/mISDN 2>/dev/null

        einfo "Installing mISDN into kernel ${OKV}..."

        cd "${WORKDIR}/mISDN"

        sh ./std2kern -k ${S} -v || die "mISDN CVS patch failed"

        cd ${WORKDIR}

        rm -fr ${WORKDIR}/mISDN || die "removal of mISDN work files filed"

        # Gentoo Linux uses /boot, so fix 'make install' to work properly

        # also fix the EXTRAVERSION

        cd ${S}

        mv Makefile Makefile.orig

        sed -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' \

                -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" \

                Makefile.orig >Makefile || die # test, remove me if Makefile ok

        rm Makefile.orig

        cd  ${S}/Documentation/DocBook

        sed -e "s:db2:docbook2:g" Makefile > Makefile.new \

                && mv Makefile.new Makefile

        cd ${S}

        # This is needed on > 2.5

        MY_ARCH=${ARCH}

        unset ARCH

        #sometimes we have icky kernel symbols; this seems to get rid of them

        make mrproper || die "make mrproper died"

        ARCH=${MY_ARCH}

        # kernel_universal_unpack used to do this... changes in kconfig make

        # this die now

        #make include/linux/version.h || die "make include/linux/version.h failed"

}

pkg_postinst() {

        if [ ! -e ${ROOT}usr/src/linux-beta ]

        then

                ln -sf linux-${KV} ${ROOT}/usr/src/linux-beta

        fi

        ewarn "Please note that ptyfs support has been removed from devfs"

        ewarn "in the later 2.5.x kernels, and you have to compile it in now,"

        ewarn "or else you will get errors when trying to open a pty."

        ewarn "The option is File systems->Pseudo filesystems->/dev/pts"

        ewarn "filesystem."

        einfo ""

        ewarn "Also, note that you must compile in support for"

        ewarn "input devices (Input device support->Input devices),"

        ewarn "the virtual terminal (Character Devices->Virtual terminal),"

        ewarn "vga_console (Graphics Support->Console...->VGA text console)"

        ewarn "and the vt_console (Character Devices->Support for console...)."

        ewarn "Otherwise, you will get the dreaded \"Uncompressing the Kernel\""

        ewarn "error."

        einfo ""

        einfo "Consult http://www.codemonkey.org.uk/post-halloween-2.5.txt"

        einfo "for more info about the development series."

        einfo ""

        einfo ""

        einfo "For mISDN configure your kernel as usually and enable the following:"

        einfo "  CONFIG_ISDN_BOOL=y"

        einfo "  CONFIG_ISDN_CAPI=m"

        einfo "  CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y"

        einfo "  CONFIG_ISDN_CAPI_MIDDLEWARE=y"

        einfo "  CONFIG_ISDN_CAPI_CAPI20=m"

        einfo "  CONFIG_ISDN_CAPI_CAPIFS_BOOL=y"

        einfo "  CONFIG_ISDN_CAPI_CAPIFS=m"

        einfo "  CONFIG_MISDN_DRV=m"

        einfo "  CONFIG_MISDN_MEMDEBUG=y"

        einfo "  CONFIG_MISDN_AVM_FRITZ=y        # if you have an AVM Fritz card"

        einfo "  CONFIG_MISDN_HFCPCI=y           # if you have a HFPCI card"

        einfo "  CONFIG_MISDN_SPEEDFAX=y         # if you have a SPEEDFAX card"

        einfo "  CONFIG_MISDN_W6692=y            # if you have a W6692 card"

        einfo "  CONFIG_MISDN_DSP=y"

        einfo "  CONFIG_PNP=y                    # you NEED Plug & Play support enabled"

        einfo ""

        einfo ""

        einfo "You will also need to mount the /dev/capi file system in order for this"

        einfo "to work. You can add the following line into your /etc/fstab file after"

        einfo "creating the /dev/capi directory with \"mkdir -p /dev/capi\":"

        einfo "  capifs  /dev/capi  capifs  defaults  0 0"

        einfo ""

        einfo ""

        einfo "You need to create the /dev/mISDN entry by issuing the following command:"

        einfo "  mknod /dev/mISDN c 46 0"

        einfo ""

        einfo ""

        einfo "You will also need to add to /etc/modules.autoload.d/kernel-2.6:"

        einfo "  capi"

        einfo "  mISDN_core debug=0"

        einfo "  mISDN_l1 debug=0"

        einfo "  mISDN_l2 debug=0"

        einfo "  l3udss1 debug=0"

        einfo "  mISDN_capi debug=0"

        einfo "  mISDN_isac"

        einfo "  avmfritz debug=0 protocol=2     # if you have an AVM Fritz card"

        einfo "  hfcpci debug=0 protocol=2       # if you have a HFPCI card"

        einfo "  sedlfax debug=0 protocol=2      # if you have a SPEEDFAX card"

        einfo "  w6692pci debug=0 protocol=2     # if you have a W6692 card"

        einfo ""

        einfo "If you want debug info, then replace \"debug=0\" with \"debug=1\"."

        echo

}
```

Nach dem Neustart ist bei mir folgendes in dmsg sichtbar:

```
CAPI Subsystem Rev 1.21.6.8

capifs: Rev 1.14.6.8

capi20: Rev 1.1.4.1.2.2: started up with major 68 (middleware+capifs)

Modular ISDN Stack core $Revision: 1.20 $

mISDNd: kernel daemon started

ISDN L1 driver version 1.8

ISDN L2 driver version 1.16

mISDN: DSS1 Rev. 1.19

mISDN Capi 2.0 driver file version 1.11

ISAC module $Revision: 1.13 $

AVM Fritz PCI/PnP driver Rev. 1.19

PCI: Found IRQ 10 for device 0000:00:09.0

mISDN_fcpcipnp: found adapter Fritz!Card PCI at 0000:00:09.0

fritz card 3141e000 dch 3141e094 bch1 3141e210 bch2 3141e39c

AVM PCI: stat 0x3020a

AVM PCI: Class A Rev 2

AVM PnP: HDLC version 1

mISDN: AVM Fritz!PCI config irq:10 base:0xE800

spin_lock_adr=3141e024 now(328b7a18)

busy_lock_adr=3141e024 now(328b7a18)

Fritz1 ISAC STAR 4a

Fritz1 ISAC MODE 0

Fritz1 ISAC ADF2 0

Fritz1 ISAC ISTA 0

Fritz1 ISAC CIR0 7c

ISAC_init: ISAC version (0): 2086/2186 V1.1

Fritz1 HDLC 1 STA 81000000

Fritz1 HDLC 2 STA 0

kcapi: Controller 1: mISDN1 attached

mISDNd: test event done

AVM Fritz!PCI: IRQ 10 count 3

fritz_manager: prim fe580 not handled

kcapi: card 1 "mISDN1" ready.

fritz 1 cards installed

kcapi: notify up contr 1
```

Ich hoffe damit einigen beim Aufsetzen von 2.6.x mit passiven ISDN Karten geholfen zu haben.

Gruss

Steve

---------------------------

edit: 2004 01 09

ich habe den neuen kernel mit mISDN nicht zum laufen gebracht! habe aber dann herumexperimentiert und bringe nun den kernel zum booten mit mISDN, wenn ich folgende einträge nicht in /etc/modules.autoload.d/kernel-2.6 rein nehme:

```
mISDN_dsp debug=0

mISDN_dtmf debug=0
```

wenn ich versuche die module zu lade, bekomme ich segmentation faulsts! aber die karte funktioniert auch ohne diese 2 module:

```
# capiinfo

Number of Controllers : 1

Controller 1:

Manufacturer: mISDN CAPI controller Fritz1

CAPI Version: 2.0

Manufacturer Version: 1.0

Serial Number: 0002

BChannels: 2

Global Options: 0x00000019

   internal controller supported

   DTMF supported

   Supplementary Services supported

B1 protocols support: 0x00000003

   64 kbit/s with HDLC framing

   64 kbit/s bit-transparent operation

B2 protocols support: 0x00000043

   ISO 7776 (X.75 SLP)

   Transparent

   Tranparent (ignoring framing errors of B1 protocol)

B3 protocols support: 0x00000001

   Transparent

  0100

  0200

  19000000

  03000000

  43000000

  01000000

  00000000 00000000 00000000 00000000 00000000 00000000

  00000000 00000000 00000000 00000000 00000000

Supplementary services support: 0x00000012

   Terminal Portability

   Call Forwarding
```

---------------------------

edit: 2004 01 10

Der 2.6.1-mm2-isdn kernel läuft. Man darf einfach wie beim 2.6.1-mm1-isdn, nicht die 2 erwähnten module laden, sonst gibt es schöne Abschiffer  :Wink:  auf der Kiste.

Ein Problem gibt es zwar immernoch, aber das liegt an den mISDN Modulen (net-misc/capi4hylafax-01.02.02, net-dialup/capisuite-0.4.3 und net-dialup/capi4k-utils-20030616 funktionieren aber einwandfrei). Das kommt bei mir in dmesg, wenn ich capiinfo aufrufe:

```
capi20_register: 

Debug: sleeping function called from invalid context at mm/slab.c:1868

in_atomic():1, irqs_disabled():1

Call Trace:

 [<0211da8b>] __might_sleep+0xab/0xd0

 [<02141109>] __kmalloc+0x89/0x90

 [<328ba141>] __mid_kmalloc+0x21/0x90 [mISDN_core]

 [<32910c83>] ApplicationConstr+0x33/0x130 [mISDN_capi]

 [<3290f5b5>] RegisterApplication+0x85/0xe0 [mISDN_capi]

 [<32895065>] register_appl+0x65/0x80 [kernelcapi]

 [<32895d15>] capi20_register+0xd5/0xe0 [kernelcapi]

 [<328905e0>] capi_ioctl+0xf0/0x500 [capi]

 [<02156e7a>] dentry_open+0x15a/0x230

 [<02156d16>] filp_open+0x66/0x70

 [<0216ab84>] sys_ioctl+0xf4/0x280

 [<021571e6>] sys_open+0x76/0x90

kcapi: appl 2 up

capi20_put_message: applid 0x2

capi20_release: applid 0x2

release_appl: applid 0x2

kcapi: appl 2 down
```

---------------------------

Gruss

SteveBLast edited by steveb on Sat Jan 10, 2004 2:22 pm; edited 5 times in total

----------

## ravageNG

Danke. Scheint zu funktionieren  :Smile: 

Die Meldungen kommen auch. Leider gehen die capi-utils nicht. 

 *Quote:*   

> 
> 
> bash-2.05b$ capiinfo
> 
> capi not installed - No such file or directory (2)
> ...

 

Muss /dev/capi nach dem mounten leer sein ? Bei mir isses das :/

----------

## alo-alo

Starte capiinfo als root oder mit sudo.

----------

## ravageNG

Selbige Meldung auch als root :/

Sollte /dev/capi leer sein - glaube nicht oder ?

 *Quote:*   

> 
> 
> mount -->
> 
> capifs on /dev/capi type capifs (rw)
> ...

 

----------

## Remo

 *ravageNG wrote:*   

> Danke. Scheint zu funktionieren 
> 
> Die Meldungen kommen auch. Leider gehen die capi-utils nicht. 
> 
>  *Quote:*   
> ...

 

Dann ist etwas an der Installation schief gelaufen. Die Module müssen geladen sein:

Schau mal mit lsmod.

Dann versuche mal noch folgendes:

mknod /dev/mISDN c 46 0

----------

## ravageNG

 *Quote:*   

> bash-2.05b# lsmod
> 
> Module                  Size  Used by
> 
> mISDN_capi            108032  0
> ...

 

avmfritz mit protocol=2 geladen.

Mknod erledigt. Sollte "cat /dev/mISDN" etwas zeigen (beim Anruf etc.) ?

----------

## tobixx

Nach dem erfolglosen Versuch mISDN unter test11 zu verwenden war ich nun echt froh endlich eine all-in-one Lösung zu erhalten - doch leider startet gentoo nach einem reboot ziemlich unsauber durch.

Die erste Fehlermeldung am Bootpromt lautet da:

Could not create needed directory /var/lib/init.d/ ...

Da ich mich darauf auch nicht anmelden kann, bleibe ich ein Logfile an dieser Stelle schuldig. Hat sonst noch jemand dieses Problem gehabt ? Google schweigt zu dieser Fehlermeldung ...

Unter test11 konnte ich alle Module laden - bis auf das letzte: avmfritz. Hier kann ich nichtmal eine Fehlermeldung nennen - das ganze System bleibt nämlich einfach stehen und nix geht mehr. 

Da ich mir gerade erst eine fritzcard aufgrund eines entsprechenden  Forumsbeitrages gekauft habe, wäre es nett, wenn mir da jemand weiter helfen könnte !

----------

## steveb

 *tobixx wrote:*   

> Nach dem erfolglosen Versuch mISDN unter test11 zu verwenden war ich nun echt froh endlich eine all-in-one Lösung zu erhalten - doch leider startet gentoo nach einem reboot ziemlich unsauber durch.
> 
> Die erste Fehlermeldung am Bootpromt lautet da:
> 
> Could not create needed directory /var/lib/init.d/ ...
> ...

 

das mit dem /var/lib/init.d/ äussert sich meistens bei unsauberem reboot oder fehler auf dem dateisystem. könntest du mal dein system von der gentoo livecd starten und ein dateisystem check machen?

Gruss

SteveB

----------

## tobixx

Das wollte ich machen, ist aber leider daran gescheitert, das ich eine SATA habe und sie nicht zum laufen bringen konnte.

Mittlerweile habe ich die Karte mal einem Freund mitgegeben, mit dem Ergebnis, das sie bei ihm auch nicht funktioniert (unter Linux). Er betreibt problemlos die Karte vom Typ 1.x - sobald er aber mein 2.0 einsetzt scheiterts. 

Scheint also an mangelnden Support für die neuere Hardware zu liegen ? Hat da jemand die selben Erfahrungen ?

----------

## tobixx

Inzwischen habe ich nur noch folgende Aussage gefunden:

Some users with AVM Fritz PCI v2 reported some problems. After insmod avmfritz protocol the computer hung.

So please make backup of your data, otherwise you can  loose your data. 

Leider ohne eine Lösung ....

----------

