Anmerkung: Dieser Beitrag Beitrag vermischt zwei verschiedenen Fragestellungen:
Die zweite Frage wird schon an anderer Stelle behandelt. Wenn Interesse an der ersten Frage besteht, sollte man das entsprechend aufteilen. Normalerweise werden eher fertige Programme in Freetz integriert und nicht welche, die komplett neu geschrieben werden. Als Grundlage für ein komplexeres Programm ist möglicherweise GNU Hello besser geeignet, da hier auch mit automake eine cofigure-Datei erstellt wird. (ralf)
Da dies mein erster Wiki-Eintrag ist, möchte ich Euch um Nachsicht bitten, wenn nicht gleich alles so aussieht wie es sein sollte.
Um für Freetz ein Paket selbst zu erstellen, musste ich erst einmal ein geeignetes “Projekt” finden, für das es auch Sourcecode gibt, der sich für die Fritzbox überhaupt kompilieren lässt.
Bei der Suche stieß ich auf den HTTP Tunnel Server. Mit httptunnel kann man TCP-Verbindungen über das http-Protokoll tunneln und damit von überall sogar durch sehr restriktive Proxies Zugriff zu seiner Fritzbox bekommen. Näheres dazu ist hier nachzulesen.
Die Evolution meiner Erfahrungen, bereichert um zahlreiche hilfreiche Tipps und Hinweise der Linux-Gurus und Entwickler hier im Forum könnt Ihr in diesem Thread nachlesen, wo auch der richtige Platz für weitere Fragen und Diskussion ist.
Folgende Umgebung habe ich zum Bau des Pakets verwendet:
Es gibt aber auch noch andere Umgebungen, um FW bzw. Freetz-Pakete zu bauen, welche hier nachzulesen sind.
In den HowTos gibt es einige wichtige Informationen darüber, was man mit Make-Targets wie menuconfig, toolchain, precompiled, recover usw. erreichen kann beim Bau einer Freetz-Firmware. Die Infos dort sind durchaus lesenswert, wenn man besser verstehen will, was genau beim Bau einer FW bzw. eines neuen Pakets für Freetz abläuft, wenngleich ich diese Infos auch erst hinterher gelesen habe (mea culpa).
Eine sehr gute Anleitung ist hier zu finden.
Es gibt ein kleines [Demo Package (demopackagea)]{.underline}. Weiteres dazu hier:
DemoPackageA Ein Demo-Package “Hello World” —- Forum-Beitrag incl. Download
[Kurz-Anleitung um ein bestehendes Package anzupassen]{.underline}
Erstelle in diesem Ordner die Datei “pluginName.c” mit dem Inhalt:
::: {.code}
/* “plugin_name”.c Version:0.0.01 */
#include
main(){
printf("Hello World \n");
} :::
Erstelle in diesem Ordner die Date Makefile mit dem Inhalt:
BINARY=plugin_name
OBJS=plugin_name.o
all: $(BINARY)
$(BINARY): $(OBJS)
clean:
$(RM) $(BINARY) $(OBJS)
to be continued…