Beiträge von krallekit

    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:

    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:

    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:

    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:


    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:

    Zitat

    Lösung für mein Problem war:
    passwd+group (Orginal+emanuel) --> chroot,
    kein adduser... im chroot ausführen
    nur su

    nano hat gar nichts gemacht nur Zeilenumbruch.


    Ich nehme an, das Problem war hier der Gruppeneintrag von emanuel Group 500. Bei mir existiert nur root und nogroup, deswegen wahrscheinlich auch die Probleme bei dir.




    Was genau meinst du mit DCC ?
    Kann mir momentan nicht so recht vorstellen, was du vor hast?
    Du willst die Binaries, die auf der Box erzeugt wurden auf deinen Rechner schieben und dort weitere Sourcen auf dieser Basis compilieren? Erkläre mal an einem Beispiel, denn ich glaube, dass dies nicht so einfach funktionieren wird, wie du es dir vorstellst. Es existieren ja mehrere Abhängigkeiten. Es mit den reinen Binaries meist nicht getan.


    Zitat

    nano hat gar nichts gemacht nur Zeilenumbruch.


    Wie, du hast die Datei nicht mit nano öffnen können oder konntest das nicht in der Datei mit nano abspeichern?
    Versuche mal "nano --help" in chroot! Ist wirklich ein nice editor. Besser zu handhaben als die ganzen vi Sachen.



    Zitat

    P.S. wenn Du meine www von der Box brauchst brauch ich Deine Email.
    Hier posten wäre wohl nicht so klug, sonst will alle Welt an meine Busy!


    Richtig, aber ein pm wäre auch möglich. Ich habe dir ja auch eine geschickt, wenn du es schon mitbekommen hast. Hat sich doch aber erübrigt, jetzt läuft ja dein User in der xdevels env.


    cheers :winking_face:

    Die Dateien passwd und group existieren aber in der chroot Umegbung ja?
    Hast du die mal mit dem nano Editor zu öffnen versucht.
    Also

    Code
    />env-chroot
    (chroot)/>nano /etc/passwd
    (chroot)/>nano /etc/group


    Dort sollten dann nach dem jungfreulichem Kopiervorgang einige Namen vorhanden sein, zumindest in der /etc/passwd.


    Andernfalls mußt du mich mal via Telnet auf deine Box lassen. Dann schau ich mir das mal an.


    cheers :winking_face:

    Also soweit sieht das Script in Ordnung aus. Das cut wird auch normalerweise in chroot ausgeführt. Scheitert das natürlich an irgendwelchen Permissions oder sonst was, kommt hier diese Fehlermeldung. Das ist aber auch nicht weiter tragisch, da in der function "set_mtab()" nur die Einträge für die Mounts in dieser Umgebung angepasst werden.


    Verstehe das nicht. Entpackt hast du auch nochmal die xdevels komplett als root ja? Die "passwd" und "group" hast du auch um die Einträge verändert, wie ich es beschrieben habe?


    Wenn nicht mußt mich mal auf die Box lassen, kann doch nicht sein. :winking_face:


    cheers :winking_face:

    Zitat

    Bitte schau mal ob das bei Dir geht, vielleicht muss ich das xdevels
    neu aufspielen.


    das geht bei mir 100%, ich poste hier eigentlich keine ungetesteten Tips. :winking_face:


    Ich denke nicht, daß man die xdevels komplett neu raufspielen muß, aber es kann natürlich sein, das du die xdevels nicht als root entpackt hast und somit die ganze Verzeichnisstruktur an Userrechten scheitert. Ist ja bei dir doch sehr eigenartig.


    Ich glaube aber es war mein Fehler. Ich denke das Problem bei dir ist, dass du schon einen User namens emanuel in der passwd und group stehen hast. Dann kannst du natürlich auch diesen User nicht nochmal anlegen in der chroot Umgebung.


    Nochmal zur Info, in der chroot Umgebung die sich im Verzeichnis /hdd/xdevels befindet hast du keinen Zugang zu der Verzeichnisstruktur, die darüberliegt.
    Also du kannst der chroot-Umgebung nicht entfliehen. Deshalb hast du auch von dortaus keinen Zugriff auf die Verzeichnisse in / in deinem Image. Mit Ausnahme, du mountest dies vorher dorthin. Das ist auch bei den xdevels der Fall, damit man zum einen Zugang zu /dev und /proc hat und zum anderen auch die hdd und usb nutzen kann.
    Eingeloggt in der chroot Umgebung wird dein Verzeichnis /hdd/xdevels als Wurzelverzeichnis / betrachtet, so als wärst du in der Root Directory. Das heißt beispielsweise, aus einen "/hdd/xdevels/etc" wird in chroot in "/hdd/xdevels" ein "/etc".
    Mit diesem sehr effektivem Trick kann man quasi eine zweite komplette Umgebung bzw. einige angriffsfreudige Anwendungen (z.B. emule) abgekoppelt von der Rootumgebung auf der Box laufen lassen.


    Noch ein Versuch:
    Einloggen als root!


    Lösche nochmal /hdd/xdevels/etc/passwd bzw /hdd/xdevels/etc/group.
    Dann kopiere deine /etc/group und /etc/passwd nach /hdd/xdevels/etc.


    Dann öffne beide Datei (UNIXEDITOR), also /hdd/xdevls/etc/passwd und /hdd/xdevels/etc/group. Wichtig nicht in /etc die Dateien, sonst sperrst du dich aus deinem Image!!!


    Lösche alle Einträge in den Dateien raus, die nicht mit root beginnen, das ist ausreichend für die chroot Umgebung. Vergesse am Ende der Zeile des root Eintrages in den Dateien nicht den Zeilenumbruch zu machen beim editieren, also "Enter". Ich gaube sonst gibt's da Probs. Speichere die Dateien wieder in /hdd/xdevels/etc ab.


    Jetzt betrittst du als root die chroot Umgebung. Wenn das hier schon scheitern sollte schicke mir doch nochmal bitte dein auskommentiertes env-chroot Script.
    In der xdevel Umgebung kannst du nun einen neuen User erstellen, mit:

    Code
    adduser emanuel


    Passwort 2 mal vergeben.
    Überprüfe mal spassenshalber ob die Einträge nun in der group und passwd in /hdd/xdevels/etc, bzw. aus chroot betrachtet in /etc existieren.
    Du kannst dazu den Nano Editor benutzen, also

    Code
    (chroot)/>nano /etc/passwd
    (chroot)/>nano /etc/group


    Schließen kannst du den Editor mit STRG-X oder ALT-X, weiß ich momentan nicht 100%.


    Nun loggst du dich als User ein und überprüfst dananch deinen Userstatus

    Code
    (chroot)/>su emanuel
    (chroot)/>id


    Probier mal!


    cheers :winking_face:

    Also Apache lässt sich sicher auch als root starten, ist sicher ne Sache der config. Aber egal, jetzt habe ich erst bemerkt wo dein Problem liegt. Du willst Apache als nonroot starten ok.


    Versuche doch einfach mal in der chroot Umgebung der xdevels einen User zu erstellen. Kopiere dazu als root deine /etc/passwd nach /hdd/xdevels/etc.


    Dann betrete die chroot Umgebung mit "env-chroot".


    Dann erstelle einen User mit "adduser emanuel" und vergebe 2 mal dein Passwort.


    Dann loggst du dich aus dieser chroot Umgebung von root aus als User emanuel ein, also "su emanuel" und fertig.
    Ein "id" zeigt dir auch den aktuellen Userstatus.


    Du mußt bedenken, das das chroot System quasi eine eigene Umgebung für sich ist und hier auch andere User mit Ausnahme von root existieren können, als dies in deinem Image der Fall ist. Vielleicht wäre es in diesem Zusamenhang auch günstig einen 2 telnet Damonen für diese Sitzung zu schalten, damit man nicht so schnell auf der Konsole durcheinanderkommt. Ich teste das mal.


    cheers :winking_face:

    Warum loggst du dich nicht als root ein und betrittst dann die chroot?


    Alternativ wäre noch die Variante:


    Code
    emanuel@dreambox:/> sudo cp /etc/resolv.conf /hdd/xdevels/etc
    emanuel@dreambox:/> sudo chroot /hdd/xdevels


    Oder versuche mal deine /etc/passwd nach /hdd/xdevels zu kopieren und dann chroot zu betreten. Geht dann allerdings evtl. auch als user.
    Also:

    Code
    emanuel@dreambox:/> sudo cp /etc/passwd /hdd/xdevels/etc
    emanuel@dreambox:/> chroot /hdd/xdevels


    Nein das hat damit nichts zu tun. Also fast nichts. Ich habe das Script "env-chroot" ja so konzipiert, dass du es nur als root ausführen kannst. bzw. eigenltich, dass du es nicht in chroot ausführen kannst. Das funzt aber nur so lange, sich in der Verzeichnisstruktur der xdevels keine /etc/passwd mit einem root Eintrag befindet oder wenn du nicht als Root angemeldet bist. Komentierst du die Zeile im Script aus, geht's auch.




    Höchstwahrscheinlich, da dir im Image die libs bzw. der Funktionsumfang der libs fehlt. Das ist das Thema, was ich hier mal am Anfang des Threads angesprochen hatte.
    In der xdevel chroot hast du alle libs, gegen die Apache und die Module dynamisch gelinkt ist, da apache ja auch in dieser Umgebung gebaut wurde. :winking_face:
    Aber warum nicht apache in chroot laufen lassen? Das geht genausogut.
    Die Basis ist

    Code
    cp /etc/resolv.conf /your_xdevels/etc
    chroot /your_xdevels /hdd/apache/apachectl start


    bzw. als Background process

    Code
    chroot /your_xdevels /hdd/apache/apachectl start &


    Letzteres liesse sich auch in die /var/init eintragen um apache beim Start der Box zu aktivieren.


    cheers :winking_face:

    Zitat

    Es ist doch gerade der "Antrieb" für die meisten Linux-Entwicklungen, daß man eben nicht den derzeitigen Stand akzeptiert, sondern nach Verbesserungen sucht.


    Sicher ist das ein Anreiz. Ich persönlich programmiere mir auch diverse Tools, wenn es meine Zeit erlaubt (eigentlich investiere ich schon zu viel dafür), für einige Architekturen und greife dabei selten auf fertige Sachen zurück.


    Allerdings ist für mich das Thema Bootzeit "absolut" irrelevant, da ich mir die Geräte nicht gekauft habe um ein ständiges Hoch -und Runterfahren zu simulieren. Wenn sie laufen, laufen sie und wenn nicht dann .... :winking_face:


    Für mich ist prioritär von Interesse, dass die User -oder Systemapps so schnell wie möglich bei geringstem Speicherverbrauch (RAM/ROM/FLASH etc.), arbeiten. Denn das allein zeichnet ja eigentlich die Perfomrance des Gerätes aus. Dafür nehme ich dann auch lange Bootzeiten in Kauf.


    cheers :winking_face:

    Achso, sag mal hast du die Pfade auch so genutzt, wie ich es gepostet habe?
    Also auf Seite 2 hier im Thread. Ansonsten funzt das natürlich nicht. Als Mainverzeichnis habe ich /hdd/server genutzt. Dort findest du nach der Installation einen Ordner namens apache und die gnazen Tools von php in /bin etc..


    Das sollte zwar eigentlich nicht das grundlegenste Problem bei dem Abbruch deiner configure sein, aber auch ne Fehlerquelle.


    cheers :winking_face:


    Ich weiß leider nicht mehr, welche libs und tools ich noch so am laufen haben, da ich die xdevels schon über 1 Jahr so nutze. Ich kann mir aber auch ehrlich gesagt nicht vorstellen, das hier Tools fehlen sollten, denn das würde das configure Script mit einer Fehlermeldung signalisieren. Bei dir bricht sie aber immer ohne ab.

    Mhh schon sehr komisch. Du hast aber alles in einer Line, also als ein Kommando ohne Zeilensprung auf der Konsole eingegeben, ja? Wenn nicht nochmal per Hand probieren. Bei mir lief es wirklich problemlos.


    Probiere dochmal einfach ein

    Code
    ./configure --prefix=/hdd/server/apache


    Was passiert dann?. Zur Not nochmal das ganze apache Verzeichnis löschen und neu entpacken.


    Poste mal deine Ausgabe von 'env' bitte.


    Vielleicht habe ich mittlerweile noch weitere Tools in der Entwicklungsumgebung installiert, das es bei mir funzt?
    Swap ist ja aktiviert sagtest du, also kann es daran nicht liegen.


    **grübel


    PS: Kann man php nicht auch ohne Apache builden. Ich finde apache persönlich etwas übertrieben für die Dream. Gibt doch noch andere kleine hhtp daemonen, die mit php umgehen können. Das genialste wäre natürlich PHP gleich ins Webif einzubinden, aber ich denke, das wird so ohne weiteres nicht funzen.


    cheers :winking_face: