HowTo: Asterisk statisch für die FBF kompilieren

Code:
   [CC] recno/rec_delete.c -> recno/rec_delete.o
   [CC] recno/rec_get.c -> recno/rec_get.o
   [CC] recno/rec_open.c -> recno/rec_open.o
   [CC] recno/rec_put.c -> recno/rec_put.o
   [CC] recno/rec_search.c -> recno/rec_search.o
   [CC] recno/rec_seq.c -> recno/rec_seq.o
   [CC] recno/rec_utils.c -> recno/rec_utils.o
   [AR] hash/hash.o hash/hash_bigkey.o hash/hash_buf.o hash/hash_func.o hash/hash_log2.o hash/hash_page.o hash/ndbm.o btree/bt_close.o btree/bt_conv.o btree/bt_debug.o btree/bt_delete.o btree/bt_get.o btree/bt_open.o btree/bt_overflow.o btree/bt_page.o btree/bt_put.o btree/bt_search.o btree/bt_seq.o btree/bt_split.o btree/bt_utils.o db/db.o mpool/mpool.o recno/rec_close.o recno/rec_delete.o recno/rec_get.o recno/rec_open.o recno/rec_put.o recno/rec_search.o recno/rec_seq.o recno/rec_utils.o -> libdb1.a
make[1]: *** Keine Regel vorhanden, um das Target »../cdr/modules.link«,
  benötigt von »asterisk«, zu erstellen.  Schluss.
make: *** [main] Fehler 2
fritz@fritz-desktop:~/freetz-trunk/asterisk-1.6.2.23$ make
make[1]: *** Keine Regel vorhanden, um das Target »../cdr/modules.link«,
  benötigt von »asterisk«, zu erstellen.  Schluss.
make: *** [main] Fehler 2
fritz@fritz-desktop:~/freetz-trunk/asterisk-1.6.2.23$ make menuselect
CC="cc" CXX="" LD="" AR="" RANLIB="" CFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" nmenuselect
make[1]: Betrete Verzeichnis '/home/fritz/freetz-trunk/asterisk-1.6.2.23/menuselect'
make[1]: Für das Ziel »nmenuselect« ist nichts zu tun.
make[1]: Verlasse Verzeichnis '/home/fritz/freetz-trunk/asterisk-1.6.2.23/menuselect'
CC="cc" CXX="" LD="" AR="" RANLIB="" CFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" gmenuselect
make[1]: Betrete Verzeichnis '/home/fritz/freetz-trunk/asterisk-1.6.2.23/menuselect'
make[1]: Für das Ziel »gmenuselect« ist nichts zu tun.
make[1]: Verlasse Verzeichnis '/home/fritz/freetz-trunk/asterisk-1.6.2.23/menuselect'
make[1]: Betrete Verzeichnis '/home/fritz/freetz-trunk/asterisk-1.6.2.23'
menuselect changes saved!
make[1]: Verlasse Verzeichnis '/home/fritz/freetz-trunk/asterisk-1.6.2.23'
fritz@fritz-desktop:~/freetz-trunk/asterisk-1.6.2.23$ make
Generating embedded module rules ...
   [LD] abstract_jb.o acl.o adsistub.o aescrypt.o aeskey.o aestab.o alaw.o app.o ast_expr2.o ast_expr2f.o asterisk.o astfd.o astmm.o astobj2.o audiohook.o autoservice.o bridging.o callerid.o cdr.o channel.o chanvars.o cli.o config.o cryptostub.o datastore.o db.o devicestate.o dial.o dns.o dnsmgr.o dsp.o enum.o event.o features.o file.o fixedjitterbuf.o frame.o fskmodem.o global_datastores.o hashtab.o heap.o http.o image.o indications.o io.o jitterbuf.o loader.o logger.o manager.o md5.o netsock.o pbx.o plc.o poll.o privacy.o rtp.o say.o sched.o sha1.o slinfactory.o srv.o ssl.o stdtime/localtime.o strcompat.o strings.o taskprocessor.o tcptls.o tdd.o term.o test.o threadstorage.o timing.o translate.o udptl.o ulaw.o utils.o version.o xml.o xmldoc.o editline/libedit.a db1-ast/libdb1.a ../apps/modules.link ../bridges/modules.link ../channels/modules.link ../codecs/modules.link ../formats/modules.link ../funcs/modules.link ../pbx/modules.link ../res/modules.link -> asterisk
translate.o: In function `powerof':
/home/fritz/freetz-trunk/asterisk-1.6.2.23/main/translate.c:75: undefined reference to `__ffssi2'
/home/fritz/freetz-trunk/asterisk-1.6.2.23/main/translate.c:75: undefined reference to `__ffssi2'
/home/fritz/freetz-trunk/asterisk-1.6.2.23/main/translate.c:75: undefined reference to `__ffssi2'
/home/fritz/freetz-trunk/asterisk-1.6.2.23/main/translate.c:75: undefined reference to `__ffssi2'
/home/fritz/freetz-trunk/asterisk-1.6.2.23/main/translate.c:75: undefined reference to `__ffssi2'
translate.o:/home/fritz/freetz-trunk/asterisk-1.6.2.23/main/translate.c:75: more undefined references to `__ffssi2' follow
collect2: ld returned 1 exit status
make[1]: *** [asterisk] Fehler 1
make: *** [main] Fehler 2
Irgendwie klappt das nicht mehr so wie damals.
 
Nicht schlagen für die Frage: Wo kommen die CFLAGS rein? Einfach ./configure --disable-xmldoc --bla --fno-builtin-ffs ?
 
Wenn überhaupt würde ich eher -fbuiltin-ffs als -fno-builtin-ffs nehmen.
Zuerst würde ich aber prüfen, ob die Option -march=4kc oder -march=24kc gesetzt ist.
 
Also ich habe die Zeile "CFLAGS='-msoft-float -fno-builtin-ffs'" einfach hinter dem ./confgure drangehängt. Danach ging der build auch durch.
Es kamen zwar die gleichen Warnungen wie vorher, aber es hat alles funktioniert.
Hier die fertige asterisk-binary: asterisk 1.6.2.24.
Läuft auf der 7240er wunderbar.
 
Zuletzt bearbeitet:
Hey Leute,


ich schaffe es nicht asterisk für die 7390 zu kompilieren. Es kommen andauernd irgendwelche Fehlermeldungen, die ich nicht entschlüsseln kann.

Kann jemand nicht einfach eine statische Binary für die 7390 uploaded?

Da hat jemand die binaries für die 7270 gepostet, die funktionieren, wie sollte es bei meinem Glück auch anders sein, nicht für die 7390, wegen der **piep** anderen CPU Arschitektur.

Ich wäre euch sehr dankbar, wenn Ihr mir weiteren Frust ersparen und eine fertige Binary posten könntet.

Vielen Dank!
 
Zuletzt bearbeitet von einem Moderator:
Wenn Du uns die Fehlermeldungen verrätst, kann Dir ja vielleicht jemand sagen, an was es scheitert?! Und für die Zukunft bitte eine andere Wortwahl.
 
Da sind viele Fehlermeldungen. Ich habe schon viel zu Viel Zeit damit verschwendet das selber zu kompilieren. Ich schmeiße hin. Ich hoffe jemand postet ein fertiges Binary, wie das für die 7270 schon dankenswerterweise gemacht hat. Ansonsten muss ich wohl ohne asterisk auskommen.
 
@ R0cket Läuft mein fertiges Binary von vier Posts weiter oben nicht?
@ alle Ist jemand in der Lage ein halbwegs aktuelles Asterisk (≥ 1.8 ) statisch zu kompilieren?
 
Also soweit ich weiß hat die 7240 und 7390 unterschiedliche Prozessor Architekturen Mips v.s. Mipsel. Deshalb läuft auch die hier veröffentlichte version für 7270 nicht auf meiner 7390. Deshalb habe ich ja auch extra nochmal nachgebeten eine Version für 7390 zu compilieren, leider bisher vergeblich.
 
Asterisk > 1.8 auf Fritzbox :-(

@ alle Ist jemand in der Lage ein halbwegs aktuelles Asterisk (≥ 1.8 ) statisch zu kompilieren?

Das wird wohl nichts mehr. Ich hatte mir sogar extra eine Debian Distri in eine chroot Umgebung auf meine Fritzbox gezogen, um dort dann alles nativ und statisch zu kompilieren. Aber auch dieser Build scheiterte (Genug swap war jedenfalls kein Problem). Mein Ticket im Asterisk Bugtracker wurde nicht weiter beachtet und irgendwann kommentarlos geschlossen. Offensichtlich ist niemand daran interessiert Asterisk auf MIPS Basis weiter zu entwickeln. Das statische 1.6.x er Build in diesem Thread scheint jedenfalls das letzte funktionierende zu sein.
 
Hallo!
EIn Jahr später und wollte mich auch mal daran wagen, asterisk für die 7390 statisch zu kompilieren.
Ich habe den freetz trunk ausgecheckt und asterisk sourcen aus dem 1.8 branch.
Bei freetz erhalte ich folgende Toolchain, die ich auch so in der compile_env eingetragen hab:

Code:
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc

Wenn ich allerdings make ausführe, bekomme ich folgende Fehler (es folgen noch viele weitere Fehler in den header files. "Unbekannter typname" etc.)

Code:
freetz@freetz-linux:~/asterisk-1.8$ make
CC="cc" CXX="" LD="" AR="" RANLIB="" CFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" menuselect
make[1]: Betrete Verzeichnis '/home/freetz/asterisk-1.8/menuselect'
cc  -g -D_GNU_SOURCE -Wall -I/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include  -c -o menuselect.o menuselect.c
In file included from /home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/sys/types.h:31:0,
                 from /home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/stdlib.h:209,
                 from menuselect.c:27:
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/bits/types.h:132:3: Fehler: #error your machine is neither 32 bit or 64 bit ... it must be magical
In file included from /home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/sys/types.h:31:0,
                 from /home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/stdlib.h:209,
                 from menuselect.c:27:
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/bits/types.h:137:1: Fehler: unbekannter Typname: »__STD_TYPE«
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/bits/types.h:137:25: Fehler: expected »=«, »,«, »;«, »asm« or »__attribute__« before »__dev_t«
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/bits/types.h:138:12: Fehler: expected »=«, »,«, »;«, »asm« or »__attribute__« before »unsigned«

Es folgen noch weitere Fehler in den header files...am Ende dann

In file included from menuselect.c:30:0:
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/unistd.h:970:44: Fehler: unbekannter Typname: »__off_t«
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/unistd.h:982:46: Fehler: unbekannter Typname: »__off64_t«
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/unistd.h:992:33: Fehler: unbekannter Typname: »__off_t«
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/unistd.h:1002:35: Fehler: unbekannter Typname: »__off64_t«
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/unistd.h:1056:40: Fehler: unbekannter Typname: »__off_t«
/home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/include/unistd.h:1066:42: Fehler: unbekannter Typname: »__off64_t«
make[1]: *** [menuselect.o] Fehler 1
make[1]: Verlasse Verzeichnis '/home/freetz/asterisk-1.8/menuselect'
make: *** [menuselect/menuselect] Fehler 2


Wäre super, wenn mir da jemand weiterhelfen könnte! Danke!
 
Code:
CC="cc" CXX="" LD="" AR="" RANLIB="" CFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" menuselect

Da passt einiges nicht. CC ist der lokale Compiler und nicht der Cross Compiler. Die anderen sind gleich ganz leer. Du muss dafür sorgen, dass die richtigen Programm genutzt werden.
 
Danke fürs draufstoßen. Ich hatte die Variablen irgendwie nicht richtig exportiert.
 
Ich weiß nicht, ob Du es mitbekommen hast, aber asterisk ist inzwischen im freetz-trunk enthalten. Allerdings nur in der Variante "dynamisch gelinkt".

Sofern Du/weitere User unbedingt die statische Version benötigt, wäre es aus meiner Sicht sinnvoll, das direkt in freetz einzubauen, statt es immer wieder aufs Neue mit irgendwelchen selbstgestrickten Scripts zu machen.
 
Hatte ich gesehen aber ich meine mich erinnern zu können dass dort "unstable" stand, kann das sein?
 
"Unstable" in dem Sinne, dass es noch wenig getestet ist. Bei der Vielzahl an Modulen, die Asterisk hat (über 200), sind wir schlicht und ergreifend nicht in der Lage sie alle zu testen - da sind wir auf Euch angewiesen.

Ansonsten, wenn Du keine die "Stabilität" erhöhenden Patches anwendest, ist freetz-Asterisk genauso stable oder unstable als das von Dir selbst mit Hilfe der freetz-toolchain kompilierte.

p.s. ich habe mal angefangen den Support fürs "Module-Embedding" und für den "Statischen-Build" in freetz einzubauen. Vielleicht bekommen wir dann mehr Feedback, was funktioniert und was nicht, weil dann auch die User dazu stossen, die ihre Boxen nicht freetzen möchten.
 
Sofern Du/weitere User unbedingt die statische Version benötigt, wäre es aus meiner Sicht sinnvoll, das direkt in freetz einzubauen
Das sehe ich auch so.
ich habe mal angefangen den Support fürs "Module-Embedding" und für den "Statischen-Build" in freetz einzubauen. Vielleicht bekommen wir dann mehr Feedback, was funktioniert und was nicht, weil dann auch die User dazu stossen, die ihre Boxen nicht freetzen möchten.
Was ist daraus geworden? Ich bin so ein User, der seine Box nicht freetzen möchte. Deshalb würde ich statisch gebautes Asterisk in den internen Speicher der 7390er ablegen und ausführen.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.