Eigene Programme in das Dateisystem integrieren?

fred.labosch

Neuer User
Mitglied seit
21 Mrz 2006
Beiträge
75
Punkte für Reaktionen
0
Punkte
0
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!
 
Zuletzt bearbeitet:
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.

fred.labosch schrieb:
[...] im /lib oder /usr/lib verzeichnis liegen. wo genau weiss ich noch nicht.
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)?!

muss denn auch die bin in unbedingt im /sbin liegen? Sie liegt ja in der original Verzeichnisstruktur des Programms auch darin.

Nicht unbedingt, ist halt bloß ne sinnvolle Konvention.

[...] /build/modified/filesystem identisch mit der anktuellen in der Box. Sehe ich das richtig? Muss ich also da die Dateien einfügen, [...]

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
 
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.
 
Kostenlos!

Zurzeit aktive Besucher

Statistik des Forums

Themen
248,232
Beiträge
2,285,028
Mitglieder
377,494
Neuestes Mitglied
alpengeier