[gelöst] lazdaemon - Crosscompiling linuxi386 nach linux arm
[gelöst] lazdaemon - Crosscompiling linuxi386 nach linux arm
Ich hoffe, dass ich hier im richtigen Forum poste! Wenn nicht, bitte den Thread an die richtige Stelle verschieben.
Liebe Community, Ich habe mal wieder ein Problem: Ich bin gerade dabei, eine Anwendung für die NSLU2 zu schreiben (http://de.wikipedia.org/wiki/NSLU2" onclick="window.open(this.href);return false;) Und wie ihr dem Wiki Artikel und dem Threadtitel unschwer entnehmen könnt, basiert die NSLU2 auf einem ARM - Prozessor. Weiters hat sie nur einen begrenzten Arbeitsspeicher und keinen Monitoranschluss o.Ä. Zusammenfassend: Die Verwendung von Lazarus auf diesem Gerät ist definitv indiskutabel.
Auf der anderen Seite benötige ich für mein Programm (ein Messprogramm, das automatisch beim Booten starten soll, Daten erfasst und diese in regelm. Abständen speichert) das Lazarus-Package lazdaemon. Auf meiner Arbeitsumgebung (i386, Ubuntu 8.04.1) lauft das Programm bereits, so wie ich mir das vorstelle.
Bisher benötigte ich das Package lazdaemon nicht und kam daher bisher ganz ohne Lazarus aus. Ich hab es zwar als Entwicklungsumgebung verwendet, doch da keine Lazarus-spezifischen Packages verwendet wurden, konnte ich die *.lpr Datei einfach auf die NSLU2 kopieren und dort direkt kompilieren (da auf der NSLU2 ein normales Debian 4.0r3 läuft, konnte ich ganz einfach das ARM - Linux Paket von der Freepascal Website installieren).
Nun ja, da ich aber nun dieses Package benötige, funktioniert die bisherige Methode natürlich nicht mehr.
Ich habe zwar ein Tutorial für eine Cross-Compiling Umgebung für ARM gefunden, jedoch kompiliert ja Lazarus bereits beim installieren des packages für i386.
Ich hoffe, ihr könnt mir helfen.
Liebe Community, Ich habe mal wieder ein Problem: Ich bin gerade dabei, eine Anwendung für die NSLU2 zu schreiben (http://de.wikipedia.org/wiki/NSLU2" onclick="window.open(this.href);return false;) Und wie ihr dem Wiki Artikel und dem Threadtitel unschwer entnehmen könnt, basiert die NSLU2 auf einem ARM - Prozessor. Weiters hat sie nur einen begrenzten Arbeitsspeicher und keinen Monitoranschluss o.Ä. Zusammenfassend: Die Verwendung von Lazarus auf diesem Gerät ist definitv indiskutabel.
Auf der anderen Seite benötige ich für mein Programm (ein Messprogramm, das automatisch beim Booten starten soll, Daten erfasst und diese in regelm. Abständen speichert) das Lazarus-Package lazdaemon. Auf meiner Arbeitsumgebung (i386, Ubuntu 8.04.1) lauft das Programm bereits, so wie ich mir das vorstelle.
Bisher benötigte ich das Package lazdaemon nicht und kam daher bisher ganz ohne Lazarus aus. Ich hab es zwar als Entwicklungsumgebung verwendet, doch da keine Lazarus-spezifischen Packages verwendet wurden, konnte ich die *.lpr Datei einfach auf die NSLU2 kopieren und dort direkt kompilieren (da auf der NSLU2 ein normales Debian 4.0r3 läuft, konnte ich ganz einfach das ARM - Linux Paket von der Freepascal Website installieren).
Nun ja, da ich aber nun dieses Package benötige, funktioniert die bisherige Methode natürlich nicht mehr.
Ich habe zwar ein Tutorial für eine Cross-Compiling Umgebung für ARM gefunden, jedoch kompiliert ja Lazarus bereits beim installieren des packages für i386.
Ich hoffe, ihr könnt mir helfen.
Zuletzt geändert von Laserer am Fr 31. Okt 2008, 12:15, insgesamt 2-mal geändert.
Re: lazdaemon - Crosscompiling linux i386 nach linux arm
Für einen Daemon braucht man ja kein GUI, ergo auch nicht unbedingt die LCL.
Schau mal ob du damit was machen kannst:
/2.2.2/packages/fcl-base/src/daemonapp.pp
/2.2.2/packages/fcl-base/examples/daemon.pp
/2.2.2/packages/fcl-base/examples/daemon.txt
Schau mal ob du damit was machen kannst:
/2.2.2/packages/fcl-base/src/daemonapp.pp
/2.2.2/packages/fcl-base/examples/daemon.pp
/2.2.2/packages/fcl-base/examples/daemon.txt
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: lazdaemon - Crosscompiling linux i386 nach linux arm
In Linux ist das doch eigentlich ganz einfach:
Du schreibst ein normales Command-Line Tool (In Lazarus New-> "Programm" (Statt "Application").
Um es automatisch zu starten schreibst Du einfach in einem Initialisierungs-Script eine Zeile
"programmname &"
Dann läuft das Programm im Hintergrund und das Script wird weiter ausgeführt
-Michael
Du schreibst ein normales Command-Line Tool (In Lazarus New-> "Programm" (Statt "Application").
Um es automatisch zu starten schreibst Du einfach in einem Initialisierungs-Script eine Zeile
"programmname &"
Dann läuft das Programm im Hintergrund und das Script wird weiter ausgeführt
-Michael
Re: lazdaemon - Crosscompiling linux i386 nach linux arm
Es gab mal noch ein einfaches Template für Linux, welches selber forkt und auf HUP und TERM hört.
Leider finde ich es nur noch im Google Cache:
http://64.233.183.104/search?q=cache:-U ... nt=mozilla" onclick="window.open(this.href);return false;
Leider finde ich es nur noch im Google Cache:
http://64.233.183.104/search?q=cache:-U ... nt=mozilla" onclick="window.open(this.href);return false;
Re: lazdaemon - Crosscompiling linux i386 nach linux arm
theo hat geschrieben:Für einen Daemon braucht man ja kein GUI, ergo auch nicht unbedingt die LCL.
Schau mal ob du damit was machen kannst:
/2.2.2/packages/fcl-base/src/daemonapp.pp
/2.2.2/packages/fcl-base/examples/daemon.pp
/2.2.2/packages/fcl-base/examples/daemon.txt
Vielen Vielen Dank Theo! Hast mir (mal wieder

Das hätte mir leider nichts geholfen, da ein Programm, welches man mit & in den Hintergrund verbannt meines Wissens nach beendet wird, sobald man sich ausloggt. Und da das Programm auf einem Server ohne jegliche User-Interaktion laufen soll, kommt das für mich nicht in Frage. Aber es kann auch gut sein, dass ich da was falsch verstanden habe.mschnell hat geschrieben:In Linux ist das doch eigentlich ganz einfach:
Du schreibst ein normales Command-Line Tool (In Lazarus New-> "Programm" (Statt "Application").
Um es automatisch zu starten schreibst Du einfach in einem Initialisierungs-Script eine Zeile
"programmname &"
Dann läuft das Programm im Hintergrund und das Script wird weiter ausgeführt
-Michael
Faktum est, das daemonapp Beispiel aus dem aktuellen FPC - Source hat mein Problem vollends gelöst (zum Glück ist die ARM-Version auch 2.2.2

Vielen Vielen Dank, dank init - Scripts und eurer Hilfe dürfte das jetzt endlich so funktionieren, wie ich mir das vorstelle!
mfg
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: lazdaemon - Crosscompiling linux i386 nach linux arm
Glaube ich nicht. Wenn das Programm natürlich eine X-Session oder ein stream-Schnittstelle (konsole) verwendet, die mit dem ausloggen beendet wird, muss es beendet werden.Laserer hat geschrieben:Das hätte mir leider nichts geholfen, da ein Programm, welches man mit & in den Hintergrund verbannt meines Wissens nach beendet wird, sobald man sich ausloggt.
Ich hatte gedacht, Du wolltest deinen Daemon beim Systemstart automatisch aktivieren. Ich hatte deshalb geschrieben: "in einem Initialisierunsscript". Dieses läuft beim Start des Systems unter "root" noch bevor irgendjemand eingeloggt ist.
Soll es denn nicht auch laufen wenn das System gestartet wird und sich überhaupt niemand einloggt ?Laserer hat geschrieben: Und da das Programm auf einem Server ohne jegliche User-Interaktion laufen soll, kommt das für mich nicht in Frage.
-Michael
Zuletzt geändert von mschnell am Fr 31. Okt 2008, 09:25, insgesamt 1-mal geändert.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: lazdaemon - Crosscompiling linux i386 nach linux arm
Die 12 mb sind hauptsächlich Debuginformationen die du im Betrieb nicht brauchst und auch entfernen kannst dann sinds ca 500kb vs 1,2 mb
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: lazdaemon - Crosscompiling linux i386 nach linux arm
Mhm, wie gesagt, kann gut sein, dass ich das falsch in Erinnerung hatte. Das mit dem "kommt für mich nicht in Frage", bezog sich auf die vermutete Beendigung des Programms beim ausloggen des users.mschnell hat geschrieben:Glaube ich nicht. Wenn das Programm natürlich eine X-Session oder ein stream-Schnittstelle (konsole) verwendet, die mit dem ausloggen beendet wird, muss es beendet werden.Laserer hat geschrieben:Das hätte mir leider nichts geholfen, da ein Programm, welches man mit & in den Hintergrund verbannt meines Wissens nach beendet wird, sobald man sich ausloggt.
Ich hatte gedacht, Du wolltest deinen Daemon beim Systemstart automatisch aktivieren. Ich hatte deshalb geschrieben: "in einem Initialisierunsscript". Dieses läuft beim Start des Systems unter "root" noch bevor irgendjemand eingeloggt ist.Soll es denn nicht auch laufen wenn das System gestartet wird und sich überhaupt niemand einloggt ?Laserer hat geschrieben: Und da das Programm auf einem Server ohne jegliche User-Interaktion laufen soll, kommt das für mich nicht in Frage.
-Michael
Ich habs vielleicht auch etwas schlecht formuliert. Du hast das schon richtig Verstanden, das Ganze soll als Service laufen, und wenn alles glatt läuft, will ich mich gar nie auf den Server einloggen müssen

Aber jetzt verwende ich eben das Beispiel-Konstrukt von daemon.pp und hab ebenfalls den Code auch gleich ein wenig aufgeräumt und Altlasten entfernt. War natürlich insofern nicht besonders schlau, da, wenn ich dadurch jetzt mehrere Fehlerquellen beseitigt habe und es nun natürlich schwer nachzuvollziehen ist, woran der Fehler wirklich lag.
Mhm, ist gut möglich, habs leider nicht ausprobiert. Ist aber schon irgendwie verwunderlich, dass der Unterschied so gravierend ist, denn bei einem normalen Konsolen - Programm wars meistens ein Faktor 2 oder 3 (zumindest bei mir). Aber offensichtlich durch die LResources, etc. (die ja lazdaemon benötigt) scheint da dann doch noch einiges dazuzukommen. Dennoch bin ich froh darüber, wenn die Applikation so wenig Speicher wie möglich benötigt, denn die NSLU2 hat nunmal nur 266Mhz, 32MB Ram, und ist mit Debian 4.0r3 und den diversen Diensten auch so schon ganz gut ausgelastetChristian hat geschrieben:Die 12 mb sind hauptsächlich Debuginformationen die du im Betrieb nicht brauchst und auch entfernen kannst dann sinds ca 500kb vs 1,2 mb

Hauptsache ist derzeit jedenfalls für mich, dass es so funktioniert, wie ich mir das vorstelle

-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: lazdaemon - Crosscompiling linux i386 nach linux arm
Auf Linux und Windows wird debug info nicht im speicher geladen.Laserer hat geschrieben:Mhm, ist gut möglich, habs leider nicht ausprobiert. Ist aber schon irgendwie verwunderlich, dass der Unterschied so gravierend ist, denn bei einem normalen Konsolen - Programm wars meistens ein Faktor 2 oder 3 (zumindest bei mir). Aber offensichtlich durch die LResources, etc. (die ja lazdaemon benötigt) scheint da dann doch noch einiges dazuzukommen. Dennoch bin ich froh darüber, wenn die Applikation so wenig Speicher wie möglich benötigt, denn die NSLU2 hat nunmal nur 266Mhz, 32MB Ram,Christian hat geschrieben:Die 12 mb sind hauptsächlich Debuginformationen die du im Betrieb nicht brauchst und auch entfernen kannst dann sinds ca 500kb vs 1,2 mb
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: [gelöst] lazdaemon - Crosscompiling linuxi386 nach linux arm
Und auf MacOS wirds ??
Glaub kaum das irgend eine Plattform ein ungenutzes Segment in den Speicher lädt.
Glaub kaum das irgend eine Plattform ein ungenutzes Segment in den Speicher lädt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/