Am 08.02.2017 um 17:52 schrieb walter harms:
Am 08.02.2017 13:05, schrieb Arno Steffens:
Hallo Flugis,
bekomme mit meinem System ein bisschen Platzprobleme (nur ca 6MB
verfügbar). Ich baue mein Linux mit Yocto (core-image-minimal) womit
ich bei (komprimert uramdisk.image.gz) bei ca 3MB bin.
Dazu brauche ich noch zwei drei Pakete, u.a. ssh und gnupg. Die hauen
eine ganze Menge Zeug (bins, libs) raus. -> 9MB
Vieles davon benötige ich nicht, wenn man keys z.B. importiert kann
man auf den key-generator verzichten ...
Ich frage mich, wie kann ich mein System systematisch verschlanken?
Schaut man auf den Platzbedarf: den meisten benötigen libs und Programme
Ich würde mal probieren:
tinycore-linux (oder selbstgestrickt) nur mit libc und busybox.
Eine neue Distri werde ich nicht mehr anfangen. Das Grundsystem ist ja
schon klein und mit busybox.
Die anderen Programme ssh (dropbear ?) und gnupg einzeln nachinstallieren
ggfs. mit ldd nachsehen was gebraucht wird (und wenn moeglich in
configure
abschalten).
Ja, so habe ich es auch angefangen. Wie das so ist mit Paketen kommt
dann manchmal eben nicht nur das eine File. Aber ich werde mich rantasten.
Beim compilieren darauf achten das -Os (s=schlank) gesetzt ist und
dass auch
keine -g dabei. konterkariert den Effekt sonst.
Das kannte ich nicht. Weiß aber noch nicht, wie ich das Yocto beibringen
kann.
Danke,
Arno
Wenn du nur 2-3 Programme nachinstallierst, kannst du die besser per Dreikampf
(configure & make & make install) nach installieren. Auf jeden Fall sollte man
mal die Abhängigkeiten und die Größe des Binary vergleichen. Wenn du nur 5 Bytes
sparen kannst - trotz abschalten etc - dann brauchst du wenigstens in dieser
Richtung nichts weiter versuchen.
re,
wh
re,
wh
Mir bleibt nichts anderes übrig, als alle ausführbaren Programme
durchzugehen und nicht benutzte löschen. Dann muss man hoffen, dass
nicht ein binary das andere aufruft oder es in einem besonderen
Anwendugsfall nicht doch noch gebraucht wird.
Für die libs habe ich folgendes geniales script gefunden:
find / -type f -perm /a+x -exec ldd {} \; | grep so | sed -e
'/^[^\t]/ d' | sed -e 's/\t//' | sed -e 's/.*=..//'
| sed -e 's/ (0.*)//' | sort | uniq -c | sort -n
Damit kann man alle libs auflisten und wie oft sie verwendet werden.
Nicht verwendete libs kann man entfernen. Oder muss man damit
rechnen, das es eine lib eine andere verwendet?
Andererseits wäre es ggf interessant, die binaries zu bestimmten
großen libs zu finden, ob man nicht auf diese verzichten kann. Wie
kann man das machen?
Fällt euch noch was anderes ein?
In einem zweiten Schritt:
Hat jemand mit Yocto so viel Erfahrung, dass er weiß wie man Rezepte
anpasst um z.B. aus dem ssh-Paket beim Installieren nicht benötigten
Kram zu entfernen?
Gruß
Arno
Zusatzfrage: Kann Yocto so eine uramdisk.image.gz aus einem image
auch automatisch erstellen? Ist immer ein paar Handgriffe bis man das
manuell gebaut hat. Ich hab dazu bisher nichts gefunden.
_______________________________________________
Freiburger Linux User Group
Mail an die Liste: flug(a)lug-freiburg.de
Mailingliste verwalten (u.a. abbestellen):
https://lug-freiburg.de/mailman/listinfo/flug
_______________________________________________
Freiburger Linux User Group
Mail an die Liste: flug(a)lug-freiburg.de
Mailingliste verwalten (u.a. abbestellen):
https://lug-freiburg.de/mailman/listinfo/flug
_______________________________________________
Freiburger Linux User Group
Mail an die Liste: flug(a)lug-freiburg.de
Mailingliste verwalten (u.a. abbestellen):
https://lug-freiburg.de/mailman/listinfo/flug