Wie OpenSouce patches in cdk kompilieren

  • Hi kralle,


    jetzt wundert es mich richtig.8o
    In der Nacht (hat auch fast die ganze Nacht gedauert 3.40 Uhr oder so)
    habe ich apache2 probiert den hat es mir installiert. Ich habe es mit dem Standartdir
    /hdd/user/local/apache2 und es ist drin?


    jetzt teste ich mal was geht.
    Ich hätte aber lieber den apache1 weil der kleiner(einfacher) ist


    ich test jetzt mal das php4 an.
    Melde mich später.


    Gruß Emanuel

    rosig

    2 Mal editiert, zuletzt von emanuel ()

  • Hi kalle,


    Ich habe das selbe Ergebnis wie bei apache1:


    env+configure:


    Ausgabe:


    Beim apache1 läuft zwar die configure nicht durch,
    aber die configure-parameter werden auch am Ende als
    Kommando interpretiert also von configure ignoriert.
    ich hab das build mal ans ende weil ich dachte, es liegt an dem.
    aber :frowning_face:


    Ich habe mir jetzt noch folgendes gedacht:


    Du könntest doch eine Kopie von Deinem aktuellen xdevels
    machen und ich könnte das draufschieben. Dann hätte ich auch alle libs und so.
    ich habe Dir mal meine Email hier übers Forum geschickt.


    Noch eine grundlegend Frage:
    Ich hatte noch nie einen Compactflash in der Dream drin geht das (wieviele MB's gehen bzw. welcher)mit dem
    xdevels, denn meine Festplatt schmilzt.
    was ist eigentlich mit Images im CompactFlash?
    Dann würde ich einen holen.


    Gruß Emanuel

    rosig

    Einmal editiert, zuletzt von emanuel ()

  • Hi kralle,


    das mit dem login ist auch so ne Sache.


    Hab mich in der Dream als nicht root angemeldet,
    dann komme ich nicht ins xdevels.


    "You should run xdevel as root"


    also:
    apache auf hdd kopiert, apachectl start
    und httpd:shared lib... not found, ist aber im apache/lib !


    läuft das nur im xdevels?


    Gruß Emanuel

    rosig

    2 Mal editiert, zuletzt von emanuel ()


  • 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:

    Make your dreams true with xdevels.

  • Hi kralle,


    Als root kann ich mich einloggen chroot OK, aber apache: bad user (apache Du weißt schon)


    als user eingeloggt kann ich chroot nicht ausführen, kann ich mir die Rechte geben?


    Danke Emanuel

    rosig

    Einmal editiert, zuletzt von emanuel ()

  • hi kralle,

    so sieht das mit auskommentierten script aus:

    Zitat

    /bin/tux: 92: cannot create /dev/null: Permission denied
    emanuel@dreambox:/>


    Als user komm ich nicht rein.


    chroot als user:


    Zitat

    emanuel@dreambox:/> cp /etc/resolv.conf /hdd/xdevels/etc
    cp: unable to open `/hdd/xdevels/etc/resolv.conf': Permission denied


    emanuel@dreambox:/> chroot /hdd/xdevels
    chroot: cannot change root directory to /hdd/xdevels: Operation not permitted
    emanuel@dreambox:/>


    Bitte schau mal.


    Danke Emanuel

    rosig

    4 Mal editiert, zuletzt von emanuel ()

  • 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

    Make your dreams true with xdevels.

    Einmal editiert, zuletzt von krallekit ()

  • Hi kralle,


    sudo ist nicht drauf, und das mit passwd/group kopieren habe ich auch schon probiert.


    chroot kann ich nur als root ausführen und apache kann man nur als nicht root


    starten(deswegen kann ich das script für xdevels nicht starten ohne root kein umount/chroot).


    Das beißt sich irgendwie.


    auch wenn ich als root chroot ändere ist das nur auf genau der Telnetsitzung.


    logge ich mich gleichzeitig als user ein ist chroot für den user "/" nicht "/hdd/xdevels"


    Da komme ich nicht weiter


    Gruß Emanuel

    rosig

    2 Mal editiert, zuletzt von emanuel ()

  • 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:

    Make your dreams true with xdevels.

  • Hi kralle,


    schlecht Nachrichten: :frowning_face:


    Zitat

    (chroot) / >adduser emanuel
    (chroot) / >passwd root
    (chroot) / >


    adduser macht keinen Eintrag in group/passwd bzw. Fehlermeldung oder irgenwas
    außer Zeilenumbruch.


    passwd macht das selbe


    su geht auch nicht.


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


    Gruß Emanuel

    rosig

    2 Mal editiert, zuletzt von emanuel ()

  • 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:

    Make your dreams true with xdevels.

  • Hi kralle,


    Jetzt hab ich alles noch mal neu drauf gespielt.
    Hab alles gemacht wie beschrieben.


    geändert hat sich gar nichts!


    Zitat

    (chroot) ~ >adduser emanuel
    (chroot) ~ >passwd emanuel
    (chroot) ~ >su emanuel
    (chroot) ~ >id
    uid=0(root) gid=0(root)
    (chroot) ~ >


    image G350 lief im Flsh mit 512 swap kein sevice/cams oder sonstwas lief.


    adduser, passwd, su zeigen keine Funktion!


    Gruß Emanuel

    rosig

    Einmal editiert, zuletzt von emanuel ()

  • Hi kralle,


    Jetzt ist mir was aufgefallen:


    mein image hat den Befehl cut nicht.


    Zitat

    root@dreambox>env-chroot
    generating chroot enviroment.... /var/bin/env-chroot: 100: cut not found
    .
    Busybox bla bla...
    .
    (chroot) / >


    Gruß Emanuel

    rosig

    Einmal editiert, zuletzt von emanuel ()

  • Hi kralle ist original!



    und nochmal alles:


    Gruß Emanuel

    rosig

    2 Mal editiert, zuletzt von emanuel ()

  • 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:

    Make your dreams true with xdevels.

    Einmal editiert, zuletzt von krallekit ()

  • Hi krallekit,


    Ja, alles wie beschrieben.


    Alles sogar 2* jungfräulich installiert, vorher hdd säubern,
    wie auf der Seite beschrieben wieder rauf, nur mit bunzip -c (bzip2 gibt nicht)
    das script, die 2 packs in richtiger Reienfolge.


    test mit flash und stick img mit 512mb swap ohne plugins
    tv läuf ja immer wenn die box an ist.


    login dev_chroot:
    Mit group und passwd von oirginal chroot,
    und ohne.


    aber ich bekomme nicht die geringste Rückmeldung
    von adduser, deluser, su, passwd usw.


    kein Fehler, -help, oder irgendwas.


    da ist dann einfach wieder die leere Eingabe kein
    "-sh: blabla: not found" oder so.


    wie beim apache1 kompilieren - einfach wieder Eingabe>


    wär halt schön wenn es bei mir laufen würde.


    Gruß Emanuel

    rosig

    3 Mal editiert, zuletzt von emanuel ()

  • 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:

    Make your dreams true with xdevels.

    3 Mal editiert, zuletzt von krallekit ()

  • Hi kralle,


    fixed Teil1:


    Ich habe jetzt nochmal alles probiert:


    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.


    Mal was anderes kennst Du eine Möglichkeit,
    sich wie der DCC in die Box einzuloggen?


    Wichtig für mich wäre ein login via script, daß user/password
    annimmt. (telnet,...)


    Mein Ziel ist beim Cross-kompilieren die in configure enthaltenen
    C-Quellen, die ja dann als 405 bin erzeugt werden, auf die im Rechner
    eingebundene hdd der Box zu kopieren, mit telnet auszuführen, um das Ergebnis zu weiter Kompilierung nutzen zu können.


    Danke Emanuel


    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!

    rosig

    2 Mal editiert, zuletzt von emanuel ()

  • 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:

    Make your dreams true with xdevels.

    2 Mal editiert, zuletzt von krallekit ()