mit Freetz ein Apache-Binary erstellen

fr@nk-pcn

Neuer User
Mitglied seit
6 Mrz 2006
Beiträge
117
Punkte für Reaktionen
0
Punkte
0
Hallo IPPF- Community,

ich bin der neue, jedenfalls was Freetz angeht. Erstmal was ich vor habe:

Ohne Freetz direkt auf der FB installieren zu müssen ein Apache- Binary erstellen. Empfehlung von Ralf Warum? Seit dem FW- Update auf XX.XX.86 bekomme ich in der LOG Fehlermeldungen die vermutlich auf Fehler in der libgcc zurück führen.

Code:
apache: can't resolve symbol '__fpcmp_parts_f'
apache: can't resolve symbol '__eqsf2'
[COLOR="Gray"]apache: can't resolve symbol '__gtdf2'[/COLOR]

Bin sehr selten zu Hause und kann nur aus der Ferne operieren. Der Apache soll PHP, SSL, sqlite und cgi unterstützen. Statisch, so das man diesen nur auf einen beliebigen USB- Datenträger packen brauch und per Script oder telnet starten kann.

Was ich habe:

- Das was in meiner Signatur steht
- den Unix- Surce der Apache 2.2.17
- freetz-1.1.1.tar.bz2
- PHP 5.3.3 stable Complete Source Code von hier
- eine Kubuntu 10.10 LifeCD von hier

Was ich brauche:

SSL und sqlite.

Nun meine Fragen an euch:

1. Passt das überhaupt?
2. Wo bekomme ich die passenden SSL und sqlite Dateien her?
3. Wenn ich dann alles vor mir habe wie packe ich am besten an? Step for Step
 
Zuletzt bearbeitet:
Lade Freetz auf ein Linux System, evtl. auch eine aktuellere Version.
Bei "make menuconfig", Box auswählen, dann "Package selection" -> "Testing" den Apache und statisches Linken auswählen. Sqlite ist auch unter "Testing". PHP ist bei "Standard packages". "make" eingeben, warten, die fertigen Binaries verwenden.

Vielleicht reicht Dir auch die libgcc_s, die Freetz erstellt.
 
make menuconfig

Ich habe nit
Code:
svn checkout  http://svn.freetz.org/tags/freetz-1.1.3 freetz-1.1.3
freetz 1.1.3 und die Pakete

Code:
* gcc - GNU C Compiler
    * g++ - GNU C++ Compiler
    * binutils - GNU Assembler, Linker und Binary-Werkzeuge
    * autoconf - dem Make vorgeschalteter Generator für Konfigurationsskripten nach GNU-Standard; hilft dabei, plattformunabhängig programmierte Software letztendlich für einen plattformspezifischen Build vorzubereiten
    * automake ab Version 1.10 - Makefile-Generator nach GNU-Standard; wird nur für manche Pakete benötigt, aber z.B. für privoxy; Paketmanager installiert normalerweise autoconf als abhängiges Paket gleich mit
    * libtool - hilft beim Erstellen von statischen und dynamischen Bibliotheken; kann z.B. beim aufruf von autoreconf notwendig werden
    * GNU make ab Version 3.81 - skriptgesteuertes Build-System
    * bzip2 - (Ent)packen von Software-Archiven
    * libncurses5-dev - Entwickler-Bibliothek für ncurses (Erzeugung komfortabler textbasierter Benutzerschnittstellen, vgl. make menuconfig)
    * zlib1g-dev - Entwickler-Bibliothek für gzip-Kompression
    * flex - lex-kompatibler Generator für lexikalische Analyse
    * bison - YACC-kompatibler Parser-Generator
    * patch - Programm, um Patches anzuwenden
    * texinfo - Online-/Druck-Doku aus gemeinsamer Quelle erzeugen
    * tofrodos - Dateiumwandlung DOS ↔ UNIX (für was wird das benötigt?)
    * gettext - Texte in Programmen internationalisieren
    * jam - Ersatz für make (s.o.); nur notwendig für Package transmission, kann ansonsten weggelassen werden
    * pkg-config - Hilfstool welches zum Bauen von Binaries und Libraries nötig ist
             * ecj-bootstrap - Eclipse Java Compiler ----nicht gefunden----  Alternativ: Bootstrap a basic Debian system
    * perl - Perl-Interpreter; notwendig für make recover
    * libstring-crc32-perl - Perl-Modul zur Berechnung von CRC32-Prüfsummen; notwendig für make recover
gezogen.

bei Eingabe von make menuconfig erscheint folgendes

Code:
ubuntu@ubuntu:~/freetz-1.1.3$ make menuconfig
make -C tools/config ncurses conf mconf
make[1]: Betrete Verzeichnis '/home/ubuntu/freetz-1.1.3/tools/config'
/bin/sh: cannot create lxtemp.c: Permission denied
make[1]: *** [ncurses] Fehler 2
make[1]: Verlasse Verzeichnis '/home/ubuntu/freetz-1.1.3/tools/config'
make: *** [tools/config/mconf] Fehler 2
ubuntu@ubuntu:~/freetz-1.1.3$

die entpackten freetz- Dateien liegen in /home/ubuntu/freetz-1.1.3

:confused:
 
Zuletzt bearbeitet:
Wie sieht denn diese Verzeichnis tools/config aus, speziell die Zugriffsrechte?
Als welcher Benutzer hast Du denn den Checkout gemacht?
 
Angemeldet bin ich als Livesession User (ubuntu) an ubuntu. Ändern läst sich der Benutzer und das Passwort nicht.

Die Rechte:

Benutzer: lesen, schreiben
Gruppe: lesen
Sonstige: lesen

Habe irgendwo gelesen dass man Freetz nichtauf FAT 32 oder NTFS Datenträger ausfüren soll!?

Meiner Meinung ist eine Installation von Ubuntu leider nicht möglich/ Firmen- Gerät.
Kann man den Ubuntu auf einen USB- Stick (8GB) istallieren ohne das der MBR der internen HDD verändert oder ein Bootmanager istalliert wird?
 
Was für eine Firmware verwendest Du denn überhaupt? Die 54.04.86 enthält das Symbol __eqsf2 in der Datei /lib/libgcc_s.so.1.
Und wo genau hast Du das apache Binary her, und warum will es auf __fpcmp_parts_f zugreifen?
 
Firmware wie Signatur, orginal von AVM. Das Binary stammt von Radislav. Hier der Link zu seiner Page. Ich vermute mal das der Ursprung Kontr-Olli und das Binary auch erstellt hat. Bis FW 54.04.76 lief das Apache Binary auch wunderbar.
 
Die libgcc_s.so.1 aus der 54.04.76 exportiert auch die Funktion __eqsf2, aber nicht die Funktion __fpcmp_parts_f. Daran kann es also nicht liegen.

Es sieht aus, als wäre dieses apache-Programm statisch mit libgcc gelinkt, aber aus irgendwelchen Gründen mit einer unvollständigen Library, in der __eqsf2 und einige andere Funktionen gefehlt haben. Die libgcc_s.so.1 ist aber gar nicht in der Liste der abhängigen Libraries enthalten.

Für Freetz gibt es fertige VM-Images. Eine andere Möglichkeit wäre, auf einem USB-Stick ein Linux-Dateisystem zu erstellen.
 
Ich versuche mal die letzte Variante und mache ne SD-Karte blank und formatiere die im ext2- Format. Werd auch nochmal die Kubuntu- Live- Umgebung neu auf dem Stick spielen um Fehler aus zuschließen.
Ich berichte dann die Tage ob und wie ich weiter gekommen bin.
 
So, Kubuntu ist nun via Startup Disk Creator neu auf dem Stick. Erforderliche Pakete ebenfalls installiert.

Freetz -make steht. Apache und PHP hab ich gefunden. sqlite und SSL nicht.

Bild von Testing Bild von Standard packages

Wie komme ich zu beiden Features
 
Zuletzt bearbeitet:
hi, ich füge mich mal der disskussion an...

@fr@nk-pcn
laut deiner signatur hast du genau die gleiche fritzbox und firmware wie ich. hw-revision könnte eine andere sein. mich wundert es aber, dass das binary bei mir läuft aber bei dir nicht. wird apache vielleicht trotz der fehlermeldung gestartet?

gruß
 
Ich finde es auch seltsam. In Ergänzung zu [POST=1641272]#8[/POST] enthalten die libgcc_s.so.1 der .76 und .86 nicht nur die gleichen Symbole, die Dateien sind absolut identisch. Außerdem wird anscheinend die libgcc_s.so.1 gar nicht geladen, sonst würde zumindest das Symbol __eqsf2 gefunden.

Andererseits, wie hast Du denn das Programm erstellt, daß externe libgcc Symbole gesucht werden, aber kein verweise auf die dynamische libgcc_s im Programm drin steht?
 
leider habe ich das binary nicht selbst erstellt, sondern fertig vorkompiliert hier im forum heruntergeladen. die frage kann ich daher nicht beantworten. woher ich es ganz genau hab, weis ich leider nicht mehr.
 
@ Ralf

Trunk@Entwicklerversion... o.k?! Das hilft mir schon weiter. Auf welchen Stand ist die Version? ...Pie mal Daumen... ...hoff doch das die mit der FW 54.04.86 harmoniert.

Das "Symbol", was hat das für eine Funtionalität beim Apachen?

@ Radislav

Laufen tutet Apache. Seit der FW XX.XX.86 nur etwas unrund und dass zum anderen die Log rasant anwächst/ Speicher verbraucht. Zum anderen würde ich auch mal selber die Erfahrung machen aus Freetz ne Apache- Version zu erstellen wobei ich auch auf PHP 5.2.8 scharf bin.

Vieleicht hab ich ne Information vor enthalten. Ich hab die 54.04.86 per Recover.exe aufgespielt und nicht von 54.04.76 mit der 54.04.86.imge geupt. Vieleicht liegen dort die Libs in anderer Variate vor:confused:
 
Wenn AVM nicht zwei verschiedene Firmware-Versionen mit der gleichen Nummer bezeichnet, spielt es keine Rolle, ob die Firmware über Recover oder auf anderem Weg auf die Box kommt.

Die Symbole gehören beide zur Library des C-Compilers, libgcc.
Die Funktion __eqsf2 dient dazu, zwei float-Werte auf Gleichheit zu testen. Auf Anhieb wüßte ich nicht, warum der Apache das tun sollte, zumal das Test von Fließkomma-Zahlen auf Gleichheit bis auf wenigen Ausnahmen nicht zu empfehlen ist.
Die Funktion __fpcmp_parts_f ist eine interne Funktion zum Vergleich von float-Werten.

Wie bereits geschrieben, enthält das Programm einige Funktionen der libgcc statisch gelinkt. Mit ist nicht klar, wie das Programm überhaupt in dieser Form erstellt werden konnte. Entweder wurden beim Linken Fehler ignoriert, oder die genannten Symbole waren in irgend einer der anderen benutzten Libraries vorhanden, wo sie jedoch nicht hingehören.
 
@ fr@nk-pcn
*g* ich habe ja die gleichen meldungen in meiner log... ich sollte glaub ich öfters mal die logs anschauen. allerdings würde ich die meldung nicht als fehler sonder eher als warnung bezeichnen: meine homepage läuft tadellos und ohne aussetzer, die ich bemerken konnte... außerdem wäre die neue version PHP 5.2.8 sicherlich interresant. merkst du überhaupt die unterschiede oder gehst du nach dem "will das neuere/neueste haben"-motto vor?

@RalfFriedl
ich müsste irgendwo solche vergleiche haben. sind die fehler weg, wenn man die float-operation umgeht?

@all
sauber ist es mit der meldung aber nicht :-/....
 
Wenn eine derartige Meldung kommt, wird der Prozeß beendet. Wenn zwei Meldungen kommen, wurden zwei verschiedene Prozesse beendet. Bringt der Apache auch Meldungen, daß Prozesse unerwartet beendet wurden?
 
@ Ralf

also außer den o.g. ominösen Meldungen sind mir keine weiteren bekannt. Sonst verhält sich die FB ruhig, keine Komplettabstürze, spontane Reboot's. Mit der älteren Apache 1.3.37 hatte ich mehr Probleme. Was in letzter Zeit ab bissl zicken tut ist wenn ich von außen auf den FTP zugreifen möchte. Große Dateien lassen sich garnicht mehr hochladen da die FTP-Verbindung meist nach ca 2-3 Minuten zusammen gebrochen ist. <Reconnenct> Einfluss des Apachen :confused: Oder ist es gar die die FTP- Anwendung die beim Apachen o.g. Log verursacht?

@ Radislav

Ich habe noch paar vorgefertigte PHP-Scripte ich ich entweder aus Dummheit oder wegen Einschränkung der 5.2.2 nicht verwenden kann. Zum anderen wenn man schon auf Fehlersuche/ Bereinigung ist, wieso nicht mal was neues schaffen? :D Zwei Fliegen mit einer Klappe, für meine Begriffe sogar drei:

-Nenn sauber laufenden HTTP
-lernen und wissen wie mit Freetz es geht
-und einen Mehr(Wissen)wert für alle

[Edit]

nur einmal seit dem Update/ Recover 54.04.86 meldete Apache

Code:
apache: can't resolve symbol '__gtdf2'

hatte aber eher nenn Seltenheitswert.
 
Zuletzt bearbeitet:
Wenn sich ein Apache-Prozeß beendet, ist das kein Grund für einen Reboot der Box oder etwas ähnliches. FTP sollte mit Apache gar nichts zu tun haben.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,696
Beiträge
2,216,700
Mitglieder
371,316
Neuestes Mitglied
realbluethunder
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.