.titleBar { margin-bottom: 5px!important; }

Eigene Programme in das Dateisystem integrieren?

Dieses Thema im Forum "Freetz" wurde erstellt von fred.labosch, 23 Jan. 2007.

  1. fred.labosch

    fred.labosch Neuer User

    Registriert seit:
    21 März 2006
    Beiträge:
    75
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Admin
    Ort:
    Berlin
    #1 fred.labosch, 23 Jan. 2007
    Zuletzt bearbeitet: 23 Jan. 2007
    Hallo,

    ich bin ja schon stolz darauf, dass ich es geschafft habe, in einer crossvompiler-Umgebung unter Ubuntu die Software Routing-Suite "quagga" für die Box (siehe Sig.) zu kompilieren.

    So weit, so gut.

    Nachdem ich die bin-Dateien "zebra" und "ospfd" in die Box per wget geholt habe liegen sie in /var/tmp.
    Problem:
    Code:
    /var/tmp $ ./zebra
    ./zebra: can't load library 'libzebra.so.0'
    Ähnliches bei ospfd.

    Wie ich bereits herausgefunden habe muss die se dyn. Bibliothek im /lib oder /usr/lib verzeichnis liegen. wo genau weiss ich noch nicht. muss denn auch die bin in unbedingt im /sbin liegen? Sie liegt ja in der original Verzeichnisstruktur des Programms auch darin.

    Sonst hatte ich darüber nachgedacht die dateien mal in das root-Verz. der Box zu packen, bevor ich das image ertselle. Wo muss welche Datei nun hin?

    Nachtrag:
    Ich habe soeben nochmal die Verzeichnisstruktur in /ds-0.2.9_26-13 durchgeschaut:
    Mir scheint die Verzeichnisstruktur und die Dateien im Ordner /build/modified/filesystem identisch mit der anktuellen in der Box. Sehe ich das richtig? Muss ich also da die Dateien einfügen, weil daraus die neue FW gebaut wird (also NICHT /ds-0.2.9_26-13/root/....)? Wenn ja, wo genau (/lib, /usr/lib, /sbin, usw.)?

    Danke schonmal!
     
  2. derheimi

    derheimi Mitglied

    Registriert seit:
    4 Juli 2006
    Beiträge:
    347
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Diplominformatiker
    Ort:
    Leipzig
    Also Du kannst prinzipiell vor dem starten von zebra oder ospfd den Suchpfad für Libs erweitern, indem Du
    Code:
    export LD_LIBRARY_PATH=/dort/liegen/meine/neuen/libs
    machst.

    Vermutung: wenn die Programm-Binaries unter /sbin oder /bin liegen, dann müssen die Libs auch unter /lib, wenn die Binaries unter /usr/sbin liegen, dann halt nach /usr/lib. Das kannst/musst Du ja eventuell auch beim Configure/Compilierung angeben (haben)?!

    Nicht unbedingt, ist halt bloß ne sinnvolle Konvention.

    Ja und jein:

    Ich hab für sowas ein neues Verzeichnis root-overlay (im dsmod-Ordner) und dann in der fwmod_custom folgenden Befehle aufgenommen:
    Code:
    ...
    all() {
            dummy=0
            cp -av ../../root-overlay/* ./filesystem
    }
    ...
    Dann kannst Du Deine benötigte Verzeichnisstruktur unter root-overlay relativ unabhängig verwalten und beim Image-bauen wird alles mit übernommen.

    HTH, Michael
     
  3. fred.labosch

    fred.labosch Neuer User

    Registriert seit:
    21 März 2006
    Beiträge:
    75
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Admin
    Ort:
    Berlin
    Hallo, vielen Dank erstmal. Ich habe das soweit verstanden.

    Ich denke mal das meine Problemchen eher in die Kategorie "Linux Grundlagen" gehören...aber ich lerne.

    Ich habe zwar die Dateien in die entsprechenden Ordner gepackt, aber ich denke mal, dass es mit einem einfachen 'make' nicht getan ist. Die Einbindung geänderter SHell-Scripte funktioniert zwar, aber alles andere nicht. Ich muss doch nicht jedesmal 'make toolchain' machen? Oder 'make precompiled'? Ich bin nicht sicher, ob ich dadurch etwas "zerstöre" und dann alles umsonst war.