Wie OpenSouce patches in cdk kompilieren

  • Hi kalle,


    DCC = Dreambox Controll Center (Windows tool für FTP/TELNET für die DB)


    Da kann man Password und Name abspeichern.


    Beim Start bekommt man z.B. eine schon fertig eingeloggte Telnet-/FTPsitzung


    Zitat

    root@dreambox~>


    also dachte ich man kann unter Unix ein Script erstellen, daß


    beim Ausführen eine eingeloggte Telnetsitzung startet,


    ohne das ich password und user eingeben muß.



    Das mit dem Crosskompilieren habe ich mir so gedacht:


    Kompilieren nur auf dem Rechner;


    configure erzeugt bin Dateien dessen Ergebnisse configure zum


    weiteren Durchlaufen braucht. Normal steigt configure aus mit der Meldung:


    Zitat

    configure: line 45...: Can not run testprog while Crosscompiling


    Ich will jetzt:
    1. Solche Stellen komentieren "#"


    2. Die Quelle von configure als 405er bin auf dem Rechner erstellen lassen.


    3. via NFS die 405er bin auf die HD der Dream kopieren


    4. bin mit Ergebnisdatei via Telnet auf Dream ausführen


    5. configure bekommt das Ergebnis und läuft weiter auf dem Rechner



    Zu nano: leider tut sich gar nichts in chroot mit nano -help oder nano --help


    wieder so ein toter Zeilenumbruch wie bei adduser und vielen anderen


    Busybox Kommandos. Ich bekomme auch nie Fehlermeldungen


    im chroot sh. Das ist doch nicht normal.


    Beispiel Eingabe PC:

    Zitat

    emanuel@falcon:~> sepp
    bash: sepp: command not found
    emanuel@falcon:~>
    :] :]


    Beispiel CHROOT der Dream:

    Zitat

    (chroot) ~ >sepp
    (chroot) ~ >
    :loudly_crying_face: :loudly_crying_face:



    kommt in Deinem Chroot eine -sh: Fehlermeldung?


    Gruß Emanuel

    rosig


  • Also so wie du das denkst geht es nicht, denn...
    configure erzeugt keine Binaries, das macht im Enddefekt alles make. Configure überprüft einige systemspezifische Abhängigkeiten, auf die der ganze Make Prozess aufbaut. Selbst wenn du einen Teil der Sourcen auf einer anderen Maschine compilieren lässt mußt du mindestens bei beiden die configure Prozedur ausführen, also auf Dreambox und PC. Sonst werden ja die Makefiles mit den ganzen Pfaden und Abhängigkeiten etc. nicht erstellt. Da configure aber scheitert, wird das so nix.


    Es gibt hier aber 2 Lösungen:
    1. Du baust alles auf der Dreambox, warum auch nicht, denn das läuft normalerweise am fehlerfreisten, zwar etwas langsam aber auch Dank distcc kann man hier sehr schnelle Ergebnisse erzielen. Das ist aber ne andere Geschcihte.
    Mal abgesehen von deiner chroot Problematik.


    2. Du erstellst dir einmalig auf der Dreambox eine config.cache und nutzt diese dann in deiner Crosscompiler Umgebung. Was ist damit gemeint?
    Configure bricht deshalb ab, da in der Prozedur kleine Tools erzeugt werden, die ausgeführt werden müßen, um bestimmte Parameter zu erlangen. Da configure aber diese Tools nicht auf deinem PC ausführen kann, geht's ebend daneben. Nun könntest du ja sagen, baue ich die Tools mit dem localen Compiler und führe sie auf dem PC aus. Das funktioniert auch grundsätzlich bringt dir aber zwangsläufig nicht das selbe Ergebniss, als würdest du das Tool auf der Dream ausführen und baut dir somit evtl. fehlerhafte Binaries.


    Nun kann man bei der configure Prozedur eine config.cache Datei angeben, auf die sich configure beruft. Dort stehen solche Variablen oder Parameter drin, die du einmalig auf der Dreambox ermittelt hast. Auf diese kann configure dann zurückgreifen und braucht die Tools nicht mehr zum Test bauen. Das heist, das funktioniert nur bedingt so, denn du mußt evtl. noch das configure Script patchen, wenn es auf den Fehler "Can not run testprog while Crosscompiling" beharrt.


    Zu deiner chroot Umgebung:


    Also irgendwas läuft bei dir gewaltig schief. Ich habe nur 2 Vermutungen.
    Wie loggst du dich eigentlich auf die Dreambox ein? Mit telnet oder mit DCC?
    Das könnte schonmal der Fehler sein. Dann solltest du dich beim Betreten der chroot Umgebung auch vorher als root eingeloggt haben, zumindest muß es damit funktionieren.


    Ich hatte dich ja schon öfters hier gebeten, deine Ausgabe von "env" zu posten. Vielleicht haut da was mit dem Terminal nicht hin.
    Also auf der Box mit Telnet als root einlogen!!!!
    und dann

    Code
    env


    ausführen.


    Das Output benötige ich.


    Hier meine chroot



    cheers :winking_face:

    Make your dreams true with xdevels.

    Einmal editiert, zuletzt von krallekit ()

  • Hi kralle,


    Ich habe mich bei xdevel immer unter Telnet
    von Linux aus als root sowohl in die DB wie auch
    in in xdevels eingeloggt.


    den user bräuchte ich ja nur für apache.


    Aber der compelierte läßt sich eh nicht mehr in
    der neuen aufgespielten chroot starten.


    Die env Ausgabe ist doch schon weiter oben auf
    der Seite hier im Forum postiert. (cut Fehler)


    Ich glaub fast es liegt am img.


    Ich hätte auch am liebsten daß ich den apachen auf der Dream


    kompeliere, aber das sh läuft einfach nicht.


    Gruß Emanuel

    rosig

  • Zitat

    Die env Ausgabe ist doch schon weiter oben auf
    der Seite hier im Forum postiert. (cut Fehler)


    Ne die hast du noch nicht gepostet, zumindest sehe ich die nicht.
    Also via telnet einloggen als root und einfach "env" in die Konsole eintippen mehr nicht. Dann bekommst du alle Environments gelistet.
    Also ich meine kein Betreten der chroot Umgebung mit env-chroot oder ähnliches!!!



    Ich denke es schaue mal via telnet auf deine Box. Ich kann mir das beim besten Willen nicht vorstellen, das es an deinem Image liegt. Welches war es nochmal?


    Wir können das ja mal per PM klären.


    cheers :winking_face:

    Make your dreams true with xdevels.

    Einmal editiert, zuletzt von krallekit ()

  • Hi kralle,


    Hier das env:


    Gruß Emanuel

    rosig

  • Sorry für das späte Feedback.


    Also eigentlich sollte deine env bezüglich der xdevels keine Probleme bereiten. Ich weiß leider momentan ncht den Status meiner TERM Variable. Vielleicht solltest du, die TERM-Variable und PS1-Variable im env-chroot Script auf deine Umgebung mal anpassen. Das wäre noch mein letzter Tip. Ansonsten bin ich recht ratlos, was deine Bash für Probleme hat. Es hilft dann nur noch das ich mich bei dir mal umschaue.


    cheers :winking_face:

    Make your dreams true with xdevels.

  • Hi Kralle,


    Ich habe mal die ganze Box gefasht.


    und das ganze mit dem aktuellen(CVS)


    getestet das sh reagiert genauso:


    keine Rückmeldung.


    Bitte kuck mal rein.


    Adresse hast Du in PN


    TERM und PS1 anpassen hat nichts gebracht


    TERM ="xterm-color"
    PS1="\u@\h:\w>"


    Gruß Emu

    rosig

    Einmal editiert, zuletzt von emanuel ()

  • Irgendwie scheint hier der Technikteufel zu wüten, ich habe keine PN von dir bekommen, schicke Sie bitte nochmal, mit den benötigten Daten.


    cheers :winking_face:

    Make your dreams true with xdevels.

  • So Problem sollte behoben sein.


    Das Problem waren die Dateien "passwd und group". Anscheinend benutzt "passwd" die Dateien in /var/etc anstatt in /etc. Ich habe also einen Link der beiden Dateien von /etc/datei auf /var/etc/datei gesetzt, so wie es ebend in der Verzeichnistruktur der Firmware auch ist. Die Dateien group und passwd befinden sich nun bei dir in "/hdd/xdevels/var/etc" bzw. in chroot in "/var/etc".


    Ich habe in deiner chroot einen User emanuel mit gleichem password erstellt. Du kannst nun mit dem Befehl passwd das Passwort ändern und mit adduser bzw. deluser neue User hinzufügen bzw. entfernen.


    Warum beim Betreten der chroot bei dir ein "cut not found" kommt, muß ich nochmal ergründen, sollte eigentlich nicht sein. Also es wäre nett, wenn du den Zugang noch bis heute Abend offen lässt.


    cheers :winking_face:

    Make your dreams true with xdevels.

    Einmal editiert, zuletzt von krallekit ()

  • Hi Kralle,


    Danke schon mal.


    Das sh Problem besteht aber nach wie vor:


    Zitat

    BusyBox v1.01 (2006.01.29-13:52+0000) Built-in shell (ash)
    Enter 'help' for a list of built-in commands.


    (chroot) ~ >sepp
    (chroot) ~ >


    Gruß Emanuel

    rosig

  • So ich habe das Script auf deiner Box mal etwas angepasst. Jetzt sollte eigentlich alles funzen, wie es soll. Ich werde es mal bei Gelegenheit auch bei mir probieren und den fix hochladen. Es scheint da doch etwas Differenzen zwischen den Images zu geben.
    Du hast nun auch gleich noch Zugriff auf deine hdd in der chroot Umgebung, habe ich dir gleich mit eingerichtet. :winking_face:
    Bei Bedarf kannst du das im Script wieder entfernen.


    cheers :winking_face:

    Make your dreams true with xdevels.

  • Hi Kralle,


    Vielen, vielen Dank.


    Zitat

    (chroot) ~ >sepp
    /bin/sh: sepp: not found
    (chroot) ~ > :grinning_squinting_face: :grinning_squinting_face:


    Ich werde mal testen ob das mit dem apache&php jetzt


    bei mir klappt. Ich denke jetzt wird configure auch besser laufen.


    Die Box lasse ich noch auf default.


    Gruß Emanuel

    rosig

  • Hi Kralle,


    Mit apache und php hat es noch nicht geklappt.


    ich habe die Verzeichnisse wieder entfernt.


    kannst Du bitte noch mal reinschauen.


    flex ist drauf, apache,php, ...-zips sind auf /hdd


    Wäre echt super.


    Danke Emanuel

    rosig

  • So....


    ich habe dir mal die letzten beiden Tage php und apache auf deiner Box gebaut. Zusätzlich verfügst du in deiner chroot Umgebung noch über den nano editor.


    Falls du dich gefragt hast, warum deine Box 2-3 mal abgeschmiert war die letzten Tage, wundere dich also nicht, das war ich, bzw. wurden beim maken von php etwas mehr an Ressourcen benötigt.


    Der apache läuft jetzt und php scheint auch zu funktionieren. Da ich selber nicht viel Ahnung von Webservern und php habe mußt du evtl. die httpd.conf des apache etwas anpassen. Zu finden in /hdd/server/apache/conf.
    Deine eigenen html Documents gehörten wohl nach /hdd/server/apache/htdocs bzw.
    /hdd/server/apache/htdocs/manual. Das mußt du selbst rausfinden. :winking_face:


    Wie startest du nun den Server:


    Dein Server ist nun unter dem Port 8080 zu erreichen, da ja der Port 80 schon vom Webif verwendet wird.
    Wenn du jetzt im Browser die Adresse "http://www.dein_dns.org:8080" aufrufst bzw. im lokalen Netzwerk "http://ip_deiner_box:8080 bekommst du die apache Standardseite gesichtet.


    Die beiden CGI-scripte funzen auch, also:
    "http://ip_deiner_box:8080/cgi-bin/printenv" bzw. "http://ip_deiner_box:8080/cgi-bin/test-cgi" sollte dir ein paar environments und systemspezifische Sachen listen.

    Make your dreams true with xdevels.

    3 Mal editiert, zuletzt von krallekit ()

  • Hi Kralle,


    Vielen Dank fürs installieren. =) =)


    An was ist das installieren bei mir wohl gescheitert?


    Hast Du noch was installiert außer nano?


    Und was mich noch brennend interessiert:


    hast Du außer in passwd/group/env-chroot


    am USB image was ändern müssen(wegen shell oder so)?


    Ich will nämlich mal eine CF holen, bzw. wenn ein neues CVS oder reinsoll


    wäre es wichtig.


    >>Kann ich jetzt einfach ein backup von hdd/xdevels bzw. dem hdd/server machen das dann noch läuft z. B. auf einem CF?


    Viele Fragen ...


    Gruß Emanuel

    rosig

    Einmal editiert, zuletzt von emanuel ()

  • Zitat

    An was ist das installieren bei mir wohl gescheitert?


    Bei der php configure mit "--build=powerpc-tuxbox-linux-gnu"
    Die --build Option wird vom configure script nicht unterstützt, war mein Fehler.


    Zitat

    Hast Du noch was installiert außer nano?


    Nein nur nano, brauchte ich zum editieren der httpd.conf
    Ich habe den ServerName auf dreambox gesetzt und den Port auf 8080 geändert, das war alles.




    Zitat

    Und was mich noch brennend interessiert:

    hast Du außer in passwd/group/env-chroot am USB image was ändern müssen(wegen shell oder so)?


    Ich habe die Symlinks auf die passwd und group gesetzt nach /var/etc, wie schonmal beschrieben.


    Im env-chroot Script mußte ich noch etwas ändern, eigentlich auch nur ne Kleinigkeit die mit dem Variablenexport zusammenhängt. Sichere das Script von deinem Image aus /var/bin/env-chroot. Das läuft jetzt.


    An deinem Image habe ich nichts verändert.


    Zitat

    >>Kann ich jetzt einfach ein backup von hdd/xdevels bzw. dem hdd/server machen das dann noch läuft z. B. auf einem CF?

    Viele Fragen ...


    /hdd/xdevels ja, aber.....
    Bevor du das machst solltest du alle dirs in der chroot unmounten. Du hast ja beispielsweise auch bei den xdevels Zugriff auf /dev /proc und die /hdd.
    Das beste wäre hierbei die Box neu zu starten und ohne Betreten der chroot Umgebung das Backup machen. Vorher würde ich noch meine Installationsdirectorys php* und apache* in /hdd/xdevels/usr/src entfernen, nicht aber die linux directory!!


    Dann erstellst du einfach ein gz Archiv mit:

    Code
    cd /hdd/xdevels
    tar -cvzf /hdd/xdevels-backup.tar.gz *


    Dürfte dann ne Weile dauern und du hast dein Backup auf der hdd.


    Wenn du auf dem CF die xdevels installieren willst mußt du erst in das gewünschte root Verzeichnis deiner xdevels gehen. Also nehmen wir mal an deine xdevels laufen wie bei mir in /var/mnt/cf. Dann entpackst du dort die xdevels wie folgt:

    Code
    cd /var/mnt/cf
    gzip -dc /hdd/xdevels-backup.tar.gz|tar -xv


    Im env-chroot Script passt du dann nur noch den Pfad an mit /var/mnt/cf, fertig.


    Ich würde dir empfehlen die CF Karte komplett für die xdevels zu nutzen, da die Größe der Umgebung ja in naher Zukunft auch etwas ansteigen wird. Ich habe meine cf noch partitioniert. Eine 128MB Große Partition für Swap und die restlichen 9xx MB nutze ich für die chroot Umgebung.


    Apache und php mußt du nicht neu installieren oder backupen. Beide befinden sich in /hdd/server. Da ich dir dein Script aber so eingerichtet habe, daß die /hdd in der chroot Umgebung auch unter /hdd gemountet wird, solltest du nach der Installation auf dem CF wieder problemlos auf apache und Co zugreifen können.


    Du willst sicher noch wissen, wie man nun apache beim Booten der Box starten.
    Das funzt eigentlich wie im Image über die /var/etc/init auch, nur dass man dazu apache in chroot, also in deiner xdevels Umgebung starten muß.


    Ich werde dazu bei Gelegenheit noch das env-chroot Script anpassen, sodaß über die Commandline auch einfach Programme in chroot gestartet werden können.


    cheers :winking_face:

    Make your dreams true with xdevels.

    4 Mal editiert, zuletzt von krallekit ()

  • DMZ hast du anscheinend im Router auf deine Box geforwardet. Zumindest komme ich über jeden Port auf deine Box. Du kannst das jetzt im Router ausschalten. Ich muß ja jetzt nicht mehr rauf.


    cheers :winking_face:

    Make your dreams true with xdevels.

  • Klar ist noch auf, der Router


    hattest Du apache schon gestartet?




    OOOh??? :confused_face: :confused_face:


    mit Deinem Komando von oben geht es doch


    Laut Definition sollte man eigentlich apache nicht als root starten dürfen.
    evt. geht das noch bei dem 1er Rel.
    egal


    Vielen Dank nochmal =) =)


    emanuel

    rosig

    3 Mal editiert, zuletzt von emanuel ()