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

Asterisk für Bristuff kompilieren

Dieses Thema im Forum "Asterisk ISDN mit Bristuff (hfc, zaptel)" wurde erstellt von rannseier, 24 Mai 2004.

  1. rannseier

    rannseier Aktives Mitglied

    Registriert seit:
    5 Mai 2004
    Beiträge:
    986
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Moin..

    Wenn ich Asterisk unter Bristuff kompilieren will, bekomme ich beim kompilieren folgende Meldung:

    make[1]: Für das Ziel »all« ist nichts zu tun.
    make[1]: Leaving directory `/usr/src/bri-stuff.0.0.2/asterisk/res'
    make[1]: Entering directory `/usr/src/bri-stuff.0.0.2/asterisk/channels'
    gcc -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g -Iinclude -I../include -D_REENTRANT -D_GNU_SOURCE -O6 -march=i586 -DZAPTEL_OPTIMIZATIONS -DASTERISK_VERSION=\"CVS-05/22/04-22:25:19\" -DINSTALL_PREFIX=\"\" -DASTETCDIR=\"/etc/asterisk\" -DASTLIBDIR=\"/usr/lib/asterisk\" -DASTVARLIBDIR=\"/var/lib/asterisk\" -DASTVARRUNDIR=\"/var/run\" -DASTSPOOLDIR=\"/var/spool/asterisk\" -DASTLOGDIR=\"/var/log/asterisk\" -DASTCONFPATH=\"/etc/asterisk/asterisk.conf\" -DASTMODDIR=\"/usr/lib/asterisk/modules\" -DASTAGIDIR=\"/var/lib/asterisk/agi-bin\" -DBUSYDETECT_MARTIN -DNEW_PRI_HANGUP -Wno-missing-prototypes -Wno-missing-declarations -DZAPATA_PRI -DIAX_TRUNKING -DCRYPTO -fPIC -c -o chan_modem_bestdata.o chan_modem_bestdata.c
    chan_modem_bestdata.c: In function `bestdata_read':
    chan_modem_bestdata.c:373: warning: assignment discards qualifiers from pointer target type
    chan_modem_bestdata.c: In function `bestdata_startrec':
    chan_modem_bestdata.c:62: internal compiler error: in gen_subprogram_die, at dwarf2out.c:10736
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <URL:https://qa.mandrakesoft.com/> for instructions.
    make[1]: *** [chan_modem_bestdata.o] Fehler 1
    make[1]: Leaving directory `/usr/src/bri-stuff.0.0.2/asterisk/channels'
    make: *** [subdirs] Fehler 1

    Kernel ist 2.6.6 (0), GCC 3.4.0

    Hat jemand eine Idee?


    MfG,
    Karl
     
  2. rajo

    rajo Admin-Team

    Registriert seit:
    31 März 2004
    Beiträge:
    1,958
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Wow... das rummst aber schön :)

    Du verwendest CVS-Version vom 22.05. ist wohl etwas zu neu für den bristuff: hier die download.sh aus bristuff:

    Code:
    #!/bin/bash
    export CVSROOT=:pserver:anoncvs@cvs.digium.com:/usr/cvsroot
    echo "Please use anoncvs as password."
    cvs login
    
    cvs co -D 05/10/04 zaptel
    cvs co -D 05/10/04 libpri
    cvs co -D 05/10/04 -r v1-0_stable asterisk
    
    
    cd zaptel
    patch -p1 < ../zaptel.patch
    cd ..
    
    cd libpri
    patch -p1 < ../libpri.patch
    cd ..
    
    cd asterisk
    patch -p1 < ../asterisk.patch
    cd ..
    
    echo "****************************************************"
    echo "         Downloading and patching finished."
    echo "****************************************************"
    

    führe einfach install.sh vom bristuff aus, dann sollte alles funktionieren.

    (Lief das patchen der ganzen Asterisk-Sachen auch ohne Fehler durch?)
     
  3. rannseier

    rannseier Aktives Mitglied

    Registriert seit:
    5 Mai 2004
    Beiträge:
    986
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo..

    Werd ich gleich mal probieren. Momentan versuch ich nochmal asterisk zu compilieren ("meine" alte Version läuft auch nicht durch). Versuche es gerade mal mit dem "alten" GCC 3.3.<vergessen>, weil mit dem der Kernel nicht immer zu kompilieren war.

    Das patchen lief übrigens nicht so richtig (patch auf bereits gepatchte Datei ausführen). Nachdem er sich dann ein paar mal die CVS-Version geholt hat lief es (erstaunlicherweise) durch.

    Mal schauen, wie das mit der Version von dir geht.

    BTW: Ich kriege die Meldung nicht weg, das devfs nur bis Kernel 2.4 geht. Auch wenn ich das make in den compile.sh überall auf "make linux26" anpasse und devfs im Source auskommentiere. Gibts da noch ein trick?


    MfG,
    Karl
     
  4. rannseier

    rannseier Aktives Mitglied

    Registriert seit:
    5 Mai 2004
    Beiträge:
    986
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Moin..

    Mit dem alten GCC gehts, dafür kann der den Kernel 2.6.6 nicht kompilieren.. Argl..

    [root@linux3 bin]# gcc --v
    Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/specs
    Configured with: ../configure --prefix=/usr --libdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --enable-long-long --enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++,ada,f77,objc,java,pascal --host=i586-mandrake-linux-gnu --with-system-zlib
    Thread model: posix
    gcc version 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)

    Hat jemand eine Idee?


    MfG,
    Karl
     
  5. rajo

    rajo Admin-Team

    Registriert seit:
    31 März 2004
    Beiträge:
    1,958
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    wieso kann denn der alte GCC den 2.6.6 nicht kompilieren ?!? *rätsel* make clean vergessen? Also ich hab 2.6er Kernel schon mit 2.95er gcc kompiliert....

    Immer dieses MDK, macht alles anders ;)

    Nein Lösung: Installier doch beide GCC-Versionen und setz beim Kompilieren die entsprechenden CXX / CC-Flags in der shell, damit einfach der passende GCC-verwendet wird. Done.
     
  6. rannseier

    rannseier Aktives Mitglied

    Registriert seit:
    5 Mai 2004
    Beiträge:
    986
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo rajo,

    Der Bug mit dem GCC und dem Kernel-backen ist bekannt. Als Abhilfe wird die neue Version vorgeschlagen. Damit gehts dann auch, ansonsten crasht er immer bei /fs/dingens irgendwo (aber erst bei einer bestimmten Änderung, bei der default-config vom Kernel läuft er durch).

    Im Moment hab ich eh beide drinn. Ich kopier dann jeweils den passenden nach /usr/bin/gcc.

    Code:
    [root@linux3 zaphfc]# ls -l /usr/bin/gcc*
    -rwxr-xr-x  1 root root 84684 Mai 24 15:23 /usr/bin/gcc*
    -rwxr-xr-x  1 root root 84684 Feb 13 15:49 /usr/bin/gcc-3.3.2*
    -rwxr-xr-x  1 root root    23 Feb 13 15:48 /usr/bin/gcc3.3-version*
    -rwxr-xr-x  2 root root 82284 Mär  2 17:52 /usr/bin/gcc-3.4.0*
    -rwxr-xr-x  1 root root    23 Mär  2 17:52 /usr/bin/gcc3.4-version*
    lrwxrwxrwx  1 root root    21 Jan 28 15:35 /usr/bin/gcc.old -> /etc/alternatives/gcc*
    [root@linux3 zaphfc]#
    
    Wie geht das denn mit den Flags?


    MfG,
    Karl
     
  7. rajo

    rajo Admin-Team

    Registriert seit:
    31 März 2004
    Beiträge:
    1,958
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    /usr/bin/gcc sollte eigentlich nur ein link auf den jeweiligen gcc sein

    Code:
    lrwxrwxrwx    1 root     root            8 Nov 10  2002 /usr/bin/gcc -> gcc-2.95
    -rwxr-xr-x    1 root     root          72k Sep 24  2002 /usr/bin/gcc-2.95
    -rwxr-xr-x    1 root     root          72k Apr  8  2002 /usr/bin/gcc-3.0
    
    Egal, macht ja das selbe. Mit den Flags:
    wenn Du bash verwendest (wonach das mal aussieht) einfach ein
    export CC=/usr/bin/gcc-3.3.2
    für C und
    export CXX=/usr/bin/g++-3....
    für C++

    Danach sollte Make das berücksichtigen und den entsprechenden Compiler verwenden. (In hartnäckigen Fällen kann das auch im Makefile mit
    CC=...
    gesetzt werden)
     
  8. rannseier

    rannseier Aktives Mitglied

    Registriert seit:
    5 Mai 2004
    Beiträge:
    986
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Moin..

    Ist der bristuff überhaupt unter Kernel 2.6 zum laufen zu kriegen?

    Auch wenn ich in dem Makefile die jeweiligen "all" durch "linux26" ersetze krieg ich Meldungen wie diese:

    Code:
    In file included from /usr/src/bri-stuff.0.0.2/zaptel/zaptel.c:82:
    /usr/src/bri-stuff.0.0.2/zaptel/zaptel.h:55:2: warning: #warning "Zaptel doesn't support DEVFS in post 2.4 kernels.  Disabling DEVFS in zaptel"
    In file included from /usr/src/bri-stuff.0.0.2/zaptel/zaptel.c:82:
    /usr/src/bri-stuff.0.0.2/zaptel/zaptel.h:55:2: warning: #warning "Zaptel doesn't support DEVFS in post 2.4 kernels.  Disabling DEVFS in zaptel"
      CC [M]  /usr/src/bri-stuff.0.0.2/zaptel/tor2.o
    Hat jemand eine Idee?


    MfG,
    Karl
     
  9. rajo

    rajo Admin-Team

    Registriert seit:
    31 März 2004
    Beiträge:
    1,958
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Das sind Warnings... nix schlimmes. Solange da kein Error kommt...
    Da wird nur über devfs gemeckert und dass das in zaptel nicht mitkompiliert wird. Sollte aber egal sein.

    IIRC ist 2.6. vom bristuff unterstützt, da aber besser Klaus-Peter Junghanns (kapejod) selber fragen. Kannst Du nach dem kompilieren erfolgreich installieren und die sachen laden? Wenn ja - ist ja alles okay :)

    (Man sollte sich bei solchen Entwicklersachen, wie es die bristuff-sachen nunmal noch sind, nicht über irgendwelche Compile-warnings wundern. Ist zwar unschön, aber solange es funktioniert ;) )
     
  10. rannseier

    rannseier Aktives Mitglied

    Registriert seit:
    5 Mai 2004
    Beiträge:
    986
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Leider nicht. Er erzählt mir was mit "ungültiges Moduleformat".

    Ich hab mir jetzt nochmal den CVS geholt und lasse den mal neu durchcompilieren. Asterisk selbst lief so, nur die Module nicht.


    MfG,
    Karl
     
  11. otaku42

    otaku42 Admin-Team

    Registriert seit:
    26 März 2004
    Beiträge:
    1,670
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ist zwar schon ein aelterer Thread, dennoch fuer die "Nachwelt" als Hinweis: man sollte Kernelmodule IMMER mit der gleichen GCC-Version uebersetzen, mit der auch der Kernel selbst uebersetzt wurde. Nimmt man fuer spaeter nachinstallierte Module einen anderen Compiler, kracht es sehr wahrscheinlich (oder es gibt andere, ziemlich ominoese Fehler).

    Ciao, Mike