[Frage] wie neue busy box und dropbear mit freetz-ng erstellen

georg3003

Mitglied
Mitglied seit
1 Apr 2005
Beiträge
360
Punkte für Reaktionen
10
Punkte
18
Hallo,

ich habe schon öfters einige Firmwares erstellt. Nur stellte sich mir bisher nie das Problem nur einzelne statisch gelinkte Programme zu erstellen. Ich bräuchte da diverse Programme für sich alleine funktionierend für eine Fritz!Box z.b. 7390 und 7490. Evtl auch noch optimiert damit sie größentechnisch nicht zuviel flash verwenden.

Aber zuerst würde mir auch nur ein Hinweis oder Kurze Anleitung wie ich das bewerkstelligen kann.
(Ich denke mir, daß das dann auch problemlos auf eine 7590 übertragen werden kann.)

Kann mir da jemand einen Tip also Link geben oder eine kurze Anleitung?

Danke vielmals
 
Die Anfrage ist schon etwas älter und sehr allgemein gefasst, ich antworte dennoch drauf.
1. Es wird kein Weg dran vorbei führen, eine Crosscompiler-Umgebung für FREETZ-NG zu installieren und sich damit vertraut machen. Am Einfachsten ist es, wenn man es als "Learning by doing" macht und mit ganz simplen Aufgaben anfängt, die im "Mainstream" liegen. Unter "Mainstream" meine ich, dass man ganz klein anfängt, Minimal-Image mit nur FREETZ für eine Standard-Box, wie z.B. 7590 oder 7490 baut, dieses Image auf die Box bringt usw. Wenn man das beherrscht, kann man über die nächsten Schritte sprechen.
2. Es gibt hier leider keine Anleitung für die hier angefragte Aufgabenstellung. Zu den alten Zeiten (noch lange vor FREETZ NG) gab es eine relativ ausgearbeitete WIKI-Seite für den alten FREETZ, wo man sich belesen könnte. Diese WIKI-Seite gibt es natürlich immer noch, die Informationen dort sind aber meistens veraltet. Auf dem GITHUB zu FREETZ-NG gibt es aktuellere Doku zum neuen FREETZ-NG. Diese Doku ist aber sehr knapp und kompakt gehalten. Eigentlich reicht es vollkommen dafür aus, mit FREETZ-NG anzufangen, ich weiß allerdings nicht, ob die Doku für jeden blutigen Anfänger selbsterklärend ist. Sonst gibt es die Informationen hier im Forum, natürlich, aber verstreut und mit Vorsicht zu genießen, wenn sie etwas älter sind. Also, es wird keine auf dem Silvertablet servierte Lösung hier geben und man braucht mit Sicherheit 2-3 Wochen mindestens, wenn man sich jeden Tag ein Paar Stunden abends mit der Materie befasst, um ein gewisses Niveau vom KnowHow zu erreichen. Natürlich abhängig von dem KnowHow Niveau davor, Ausdauer (was der heutigen Generation oft fehlt) und anderen Faktoren. Nur meine persönliche Schätzung dazu.
3. Bzgl. Standalone-Binaries bauen. Ja, viele Pakete in FREETZ-NG bieten eine solche Möglichkeit, so genannte "non-freetz" Binaries zu generieren. Unabhängig davon (oder auch zusätzlich dazu, wie man es sehen mag) kann man manche Binaries statisch linken. Trotzdem musst du es durch den normalen Prozess mit dem Cross-Compillieren "durchjagen". Daher wäre der Punkt 1 (s. oben) essentiell. Wenn du durch "menuconfig" durchnavigierst, wirst du selbst diese Pakete finden.
4. Ob es denn Sinn macht, solche Binaries nachher zu verwenden, kommt darauf an wofür und wie. Zu einem musst du beachten, dass die Boxen zum Teil unterschiedliche Prozessortopologien haben und nicht Immer Binary von einer Box problemlos auf der anderen Box oder einem anderem Smart-Device laufen würde. Zum anderen wird es alles andere als optimal, wenn du es statisch linkst (quasi alle Libraries in das Binary reinintegrierst). Binaries werden dadurch sehr groß, was zum eigentlichen Anspruch von oben, es kompakt zu halten, entgegen steht. Ja, man kann sicherlich die eine oder andere Option da beim jeweiligen Paket rauslassen, die Möglichkeiten, die "menuconfig" dafür bietet, sind aber eher begrenzt.
5. Ich hatte schon tatsächlich ein Binary, was ich mit FREETZ kompillliert hatte an einem anderen SmartDevice benutzt. Sobald die Prozessorarchitektur passt, könnte es funktionieren, muss aber nicht immer. Man muss es dann testen. Je nach Aufgabenstellung ist es manchmal sinnvoller, auf dem Target-Device selbst, oder auf einem kompatiblen dazu eine Compiller-Umgebung zu installieren (make + cc + ein Paar andere Programme). Dann kann man auf dem Device selbst kompillieren. Es ist aber meistens eher für kleinere Aufgaben geeignet.
 
  • Like
Reaktionen: gismotro
[...]
1. Es wird kein Weg dran vorbei führen, eine Crosscompiler-Umgebung für FREETZ-NG zu installieren und sich damit vertraut machen. Am Einfachsten ist es, wenn man es als "Learning by doing" macht und mit ganz simplen Aufgaben anfängt, die im "Mainstream" liegen. Unter "Mainstream" meine ich, dass man ganz klein anfängt, Minimal-Image mit nur FREETZ für eine Standard-Box, wie z.B. 7590 oder 7490 baut, dieses Image auf die Box bringt usw. Wenn man das beherrscht, kann man über die nächsten Schritte sprechen.
Da gebe ich Dir zu 100% recht,
2. Es gibt hier leider keine Anleitung für die hier angefragte Aufgabenstellung.
diese Anleitungen sollten aber immer noch funktionieren, oder ?

VM-Umbebung erstellen : https://www.ip-phone-forum.de/threa...iedliche-konfigurationen.308030/#post-2387896

danach geht es an Imagebauen :
1.) Erstes Image : https://freetz-ng.github.io/freetz-ng/wiki/10_Beginner/newbie.de.html
2.) zweites Image : https://freetz-ng.github.io/freetz-ng/wiki/10_Beginner/first_trunk.html

m.E. wird dort alles beschrieben was man als Anfänger braucht. Ansonsten mal Google fragen nach : " Gismotro + Wie baue ich mein eigenes Freetz-Image" Da findet man auch ein recht aktuelles HowTo.
 
Zuletzt bearbeitet:
Im Großen und Ganzen schon. Speziell zur Fragestellung hier "Statisch gelinkte Binaries" (so verstehe ich die Fragestellung zumindest) wird man aber vermutlich kein geschlossenes HowTo finden. Ferner bleibt natürlich auch die Frage offen "Wozu das Ganze?". Und die ist sehr oft essentiell. Denn es gibt meistens alternative Lösungen. Um jedoch "um die Ecke" denken zu können, muss man die ganze Problemstellung verstehen. Wie ich geschrieben habe, braucht man tatsächlich manchmal (allerdings sehr selten) solche Binaries. Meistens aber für Fremdgeräte, für die man keine FREETZ-Build-Umgebung zur Hand hat.
 
  • Like
Reaktionen: gismotro
Hallo Hermann,
danke für deine Antwort(-en)
Die Anfrage ist schon etwas älter und sehr allgemein gefasst, ich antworte dennoch drauf.
1. Es wird kein Weg dran vorbei führen, eine Crosscompiler-Umgebung für FREETZ-NG zu installieren und sich damit vertraut machen.....
Klar ist schon alles vorhanden. Sonst würde ich doch nicht fragen. Auch schon mehrmals genutzt und durchlaufen lassen. Compiliert durch. und dann auch langsam erweitert bis zu meinem "Ziel". Für mich logisch.

2. Es gibt hier leider keine Anleitung für die hier angefragte Aufgabenstellung. Zu den alten Zeiten (noch lange vor FREETZ NG) gab es eine relativ ausgearbeitete WIKI-Seite für den alten FREETZ, wo man sich belesen könnte. Diese WIKI-Seite gibt es natürlich immer noch, die Informationen dort sind aber meistens veraltet.
Ich weiß noch von früher als die Wiki noch besser funktionierte, wo ich evtl nachlesen konnte. Das ist nicht das Problem.

3. Bzgl. Standalone-Binaries bauen. Ja, viele Pakete in FREETZ-NG bieten eine solche Möglichkeit, so genannte "non-freetz" Binaries zu generieren.....
Ich möchte eigene busybox oder dropbear oder rsync statisch gelinkt für non-freetz boxen erstellen. Diese sollen dann auf eine mit modfs modifizierte box, um dort bei bedarf die Programme mit ihren jeweiligen eingeschaften nutzen zu können.

4. Ob es denn Sinn macht, solche Binaries nachher zu verwenden, kommt darauf an wofür und wie. Zu einem musst du beachten, dass die Boxen zum Teil unterschiedliche Prozessortopologien haben und nicht Immer Binary von einer Box problemlos auf der anderen Box oder einem
Ja klar macht es Sinn. Bis zu einem gewissen Punkt. Das ist wohl richtig. Ich will doch auch nicht das rsync auf einem anderen Prozessortyp laufen lassen. Woher hast du denn diese Vorstellung. 7490 datei erstellen für 7490. Datei von 7590 auf der 7590.
Ja. Da soweit mir bekannt die 7490 auch eine Art mips prozessor ist, funktionierte auch eine dropbear binary "früher" auch auf älteren Firmware-Versionen. Also älteren Kernels etc. Auch statisch gelinkt funktionierte meine ich bisher auch gut. (Hoffe meine Erinnerung trügt mich da nicht, weil schon lange her) Nur jetzt brauchte ich den server, und der bleibt nicht "aktiv". Jedoch kann ich mit der "alten 7390 binary dropbear" per dropbearmulti ssh [email protected] mich auf einen anderen ssh-server verbinden.

5. Ich hatte schon tatsächlich ein Binary, was ich mit FREETZ kompillliert hatte an einem anderen SmartDevice benutzt. Sobald die Prozessorarchitektur passt, könnte es funktionieren, muss aber nicht immer. Man muss es dann testen.
Sorry mich interessiert kein Smartphone, mich interessierte nur, wie ich so ein von freetz(-ng) kompiliertes binary auch auf einer normalen Box zum funktionieren bewegen kann. Auch die neu erstellte binary funktiert als client aber nicht als Server. Ich vermute mal, dass eine bestimmte struktur von "helferdateiein" vorhanden sein muss, damit es funktioniert obwohl standalone und statisch gelinkt, wird vermutlich noch eine gewisse dateistruktur zum ablauf benötigt. Jetzt ohne eine Box direkt testen zu können, ohne nachgelesen zu haben, kommt mir eine idee, wäre es denn möglich, dass vielleicht die dateirechte speziell gesetzt sein müssen? weil ich kann mich gerade nicht mehr daran genau erinnern wo, aber um etwas zum laufen zu bewegen, müssen bestimmte config dateien glaube die knownhost etc. mit bestimmten rechten 0700 oder 0600 oder sowas haben müssen um zu funktoinieren. Aber hier kam ich nicht weiter.

Ja es war ein weiter Weg herauszuklamüsern wie die statisch gelinkten erstellt werden. Aber ich habe nirgends etwaige hinweise gefunden wie das geht, und was und wie gemacht werden kann um zu meinem Ziel zu kommen. Ich habe etliche Seiten gelesen und etliche helpfiles gelesen. Zu guter letzt konnte ich ein binary erstellen, das aber nicht wirklich funktionierte.

Und weil ich nicht weiterkam, bat ich hier im Forum um Hilfe. Ich versuche ja mein bestes, jedoch bin ich kein wirklicher Programmierer und kenne mich nur begrenzt aus.

Falls jemand doch noch einen Tip hat, sehr gerne.

Danke



Hallo
 
Unter SmartDevices sind nicht Smartphones gemeint. Obwohl auch mit Smartphones hatte ich auch schon rumgespielt. Dafür muss man sie allerdings meistens rooten. Nein, SmartDevices ist für mich so ein Allgemeinbegriff für NAS, diverse WebCameras, Türklingel, etc. Alles Kram meistens "Made in Fernosten", wo unsere Freunde da es mit dem Thema Sicherheit es nicht so ernst nehmen, wie hierzulande. Da kommst du auf so ein Device relativ leicht dran, was oft auch Arm- oder ähnlich basiert ist, wie die meisten FritzBoxen. Und dann fängst du an, darauf z.B. dropbear zu bringen. Also, eine ähnliche Fragestellung, wie bei dir, allerdings noch ein Stück schwieriger, weil dir meistens die Quellen dazu komplett fehlen (ja, die Freunde aus China sehen es meistens nichts so eng mit OSS, also nur im Punkto "nehmen", aber dafür nichts "geben") und du nur erahnen kannst, was sie da als "Vorbild" für ihr Device genommen haben. Du siehst da schon irgendeine uralte Busybox drauf, die du auch gleich gegen eine aktuellere mit mehr Features austauschen würdest usw. Also eine ähnliche Motivation, wie bei dir.
Bzgl. deines Vorhabens einige Anmerkungen. Ja, die Pakete in FREETZ machen etwas mehr, als nur das Binary kompillieren. Mit den Rechten hast du es vollkommen richtig gemerkt. Und Rechte können entweder direkt nach dem Bauen von Binaries geändert werden oder von den start/stop-Skripten unter /etc/init.d, dann aber schon auf der Box selbst. Es sind auch Sonderfälle möglich, dass z.B. bei aller erstem Start von Paket XY auf der Box dann so eine Art "Vorkonfigurierung" statt findet. Und hier weiß ich nicht, wie Peter es bei seinem modfs gelöst hat. Ob er da z.B. schon auch eigene rc-Skripte hat und du wirklich nur Binaries brauchst. Muss man also schauen. Auf jeden Fall werden dir die rc-Skripte von FREETZ sicherlich helfen, um zu wissen, wie du das eine oder das andere Binary dann richtig startest.
Bzgl. 700 und 600 als Rechte. Ja, gibt es. Z.B. bei "authorized_keys", die du für SSH brauchst. Ich glaube, dropbear wird so ein key sonst nicht verwenden, wenn es nicht 600 als Rechte hat. Ich kann mir gut vorstellen, dass auch bei anderen Programmen solche Anforderungen gibt. Weiß jetzt aber nicht aus dem Kopf, wo und wie.
Und jetzt kommt der nächste Punkt: Du sagst ja "geht nicht" bzw. "funktioniert nicht". Kannst du bitte etwas näher beschreiben, was denn bei dir genau nicht ging? Denn es gibt diverse Methoden, es zu debuggen. Alleine schon, wenn du dein Binary startest und irgendwas schief läuft, meldet sich dieses Binary mit einer Fehlermeldung. Manchmal findet man die Fehlermeldungen im syslog oder in anderen Logs, je nachdem. Dafür musst du aber schon auf der Box drauf sein.
 
Danke. Für deine Mühen.
 
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.