.titleBar { margin-bottom: 5px!important; }

Kann bristuff nicht kompilieren

Dieses Thema im Forum "Asterisk ISDN mit Bristuff (hfc, zaptel)" wurde erstellt von OttTheTormentor, 15 Nov. 2006.

  1. OttTheTormentor

    OttTheTormentor Neuer User

    Registriert seit:
    29 Sep. 2006
    Beiträge:
    23
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    ich habe zwei Versionen von bristuff probiert, bristuff-0.3.0-PRE-1s und danach bristuff-0.2.0-RC8s. Die erstere Version läuft soweit durch bis zum make für asterisk, dann erhalte ich:

    Code:
    gcc  -pipe  -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g3  -Iinclude -I.
    ./include -D_REENTRANT -D_GNU_SOURCE  -O6 -march=i686 -DZAPTEL_OPTIMIZATIONS         -fomit-frame-po
    inter  -fPIC   -c -o app_capiNoES.o app_capiNoES.c
    In file included from app_capiNoES.c:20:
    /usr/include/linux/capi.h:80: error: variable or field '__user' declared void
    /usr/include/linux/capi.h:80: error: syntax error before '*' token
    /usr/include/linux/capi.h:115: error: syntax error before 'capi_manufacturer_cmd'
    /usr/include/linux/capi.h:117: error: syntax error before '}' token
    make[1]: *** [app_capiNoES.o] Fehler 1
    make[1]: Leaving directory `/usr/src/bristuff-0.3.0-PRE-1s/asterisk-1.2.10/apps'
    make: *** [subdirs] Fehler 1
    
    Nach einiger Zeit Rumsuchen habe ich dann alles gelöscht, was in /etc, /usr/include und /usr/lib neu angelegt wurde und dann die 0.2.0 probiert, da kam dann gleich bei zaptel ein Fehler:

    Code:
      /usr/src/bristuff-0.2.0-RC8s/zaptel-1.0.10/zaptel.c:6520: warning: passing argument 2 of 'class_de
    vice_create' makes pointer from integer without a cast
      /usr/src/bristuff-0.2.0-RC8s/zaptel-1.0.10/zaptel.c:6520: warning: passing argument 3 of 'class_de
    vice_create' makes integer from pointer without a cast
      /usr/src/bristuff-0.2.0-RC8s/zaptel-1.0.10/zaptel.c:6520: warning: passing argument 4 of 'class_de
    vice_create' from incompatible pointer type
      /usr/src/bristuff-0.2.0-RC8s/zaptel-1.0.10/zaptel.c:6520: error: too few arguments to function 'cl
    ass_device_create'
      make[2]: *** [/usr/src/bristuff-0.2.0-RC8s/zaptel-1.0.10/zaptel.o] Fehler 1
      make[1]: *** [_module_/usr/src/bristuff-0.2.0-RC8s/zaptel-1.0.10] Fehler 2
      make[1]: Leaving directory `/usr/src/linux-2.6.18.1'
      make: *** [linux26] Fehler 2
    
    (vorher noch jede Menge Warnungen)

    Fehlt in meinem System noch ein besonderes Paket, das ich *vor* bristuff installieren muss? Laut dem INSTALL sollte alles da sein.
     
  2. kombjuder

    kombjuder IPPF-Promi

    Registriert seit:
    2 Nov. 2004
    Beiträge:
    3,086
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Weil am Rhein
    Schau mal hier http://www.asterisk.li/bristuff.htm

    oder nimm die neuere Version http://www.asterisk.li/asterisk120.htm

    Ist für Suse, aber die angegebenen Pakete brauchst du auch für andere Linux-Versionen.
     
  3. OttTheTormentor

    OttTheTormentor Neuer User

    Registriert seit:
    29 Sep. 2006
    Beiträge:
    23
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo kombjuder,

    es kamen doch mehrere Sachen zusammen, bevor ein Make (s.u.) durchlief:

    1. bison war nicht installiert (apt-get bison)
    2. curl war nich installiert (curl-7.15.5.orig.tar.gz geholt und make install)
    3. dieses '__user declared void' ist wohl neu in 2.6.18, das habe ich mit einem zusätzlichen #include behoben:
    Code:
    --- linux-2.6.18.1/include/linux/capi.h.org     2006-11-16 14:25:23.000000000 +0100
    +++ linux-2.6.18.1/include/linux/capi.h 2006-11-16 14:25:42.000000000 +0100
    @@ -14,6 +14,7 @@
    
     #include <asm/types.h>
     #include <linux/ioctl.h>
    +#include <linux/compiler.h>
     #ifndef __KERNEL__
     #include <linux/kernelcapi.h>
     #endif
    
    Danach ließ es sich ohne Fehler kompilieren.

    Statt dem compile.sh habe ich ein kleines Makefile benutzt:
    Code:
    # main Makefile for bristuff
    #
    
    .EXPORT_ALL_VARIABLES:
    
    DIRS = zaptel libpri libgsmat ztgsm qozap cwain zaphfc asterisk
    
    clean all install:
            @set -e ; for i in $(DIRS) ; do $(MAKE) -C $$i $@ ; done
    
    # eof
    
    
    Damit das für "make install" auch richtig funktioniert, ist in 3 anderen Makefiles jeweils eine kleine Änderung nötig:

    Code:
    --- bristuff-0.3.0-PRE-1s/cwain/Makefile.org    2006-11-16 14:03:06.000000000 +0100
    +++ bristuff-0.3.0-PRE-1s/cwain/Makefile        2006-11-16 14:03:21.000000000 +0100
    @@ -78,7 +78,7 @@
            insmod ./cwain.ko debug=1
            ztcfg -v
    
    -install:       install$(BUILDVER)
    +install:       all install$(BUILDVER)
    
     installlinux26:
            install -D -m 644 cwain.ko $(INSTALL_PREFIX)/lib/modules/`uname -r`/misc/cwain.ko
    --- bristuff-0.3.0-PRE-1s/qozap/Makefile.org    2006-11-16 14:02:10.000000000 +0100
    +++ bristuff-0.3.0-PRE-1s/qozap/Makefile        2006-11-16 14:02:34.000000000 +0100
    @@ -82,7 +82,7 @@
     unload:
            rmmod qozap zaptel
    
    -install:       install$(BUILDVER)
    +install:       all install$(BUILDVER)
    
     installlinux26:
            install -D -m 644 qozap.ko $(INSTALL_PREFIX)/lib/modules/`uname -r`/misc/qozap.ko
    --- bristuff-0.3.0-PRE-1s/zaphfc/Makefile.org   2006-11-16 14:04:01.000000000 +0100
    +++ bristuff-0.3.0-PRE-1s/zaphfc/Makefile       2006-11-16 14:05:55.000000000 +0100
    @@ -108,7 +108,7 @@
            @if ! [ -d $(KSRC) ]; then echo "Link /usr/src/linux-2.6 to your kernel sources first!"; exit 1 ; fi
            make -C $(KSRC) SUBDIRS=$(PWD) ZAP=$(ZAP) modules
    
    -install:       install$(BUILDVER)
    +install:       all install$(BUILDVER)
    
     installlinux26:
            install -D -m 644 zaphfc.ko $(INSTALL_PREFIX)/lib/modules/`uname -r`/misc/zaphfc.ko
    
    
    Jetzt geht es ans Konfigurieren und Testen. :)