How to strip

Fremd-Buildsysteme
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

How to strip

Beitrag von MPC823 »

Also ich habe mal versucht das Neutrino-HD zu strippen da ich zwar keine wirklichen Platzprobleme habe aber es sind nun ungestripped ca 180 MB nur das rootFS .

Also habe ich einfach find & > strip über das ganze Verzeichnis laufen lassen dann war es auch sehr schön klein. Mit ein paar kleinen Nebeneffekten das nichts mehr ging danach.

evt Intressiert es ja auch ein paar andere wie man nicht nur ein einzelnes binary striped, sondern wie man das im kongreten Fall hier macht.

Nun könnte man sagen dann schau doch mal nach wie das beim Neutriono für die TD gemacht wurde. Tja das habe ich ich habe genau diesen code genommen und wohl falsch angepasst weil es passiert gar nichts was mich dann zu der Erkenntnis bewog "Den Sie wissen nicht was Sie tun" . Ich google auch normal immer erst bevor ich Fragen stelle aber das Internet ist zu "versaut" als das bei dem Begriff strip was für mich sinnvolles herauskommt was ich dazu nützen könnte und das was ich da noch fand das die symbole entfernt werden ja gut das weis ich ja schon .

Nur wie entferne ich alle unnötigen symbole in meinem %build/root richtig ?

Die Fehlermeldung die man hat wenn man es falsch macht ist nicht so doll das ich das ein zweites mal brauche :-)

Martin
wittinobi
Einsteiger
Einsteiger
Beiträge: 116
Registriert: Montag 29. März 2004, 22:00

Re: How to strip

Beitrag von wittinobi »

in allen mir bekannten buildsystemen (git von seife, striper und mir), gibt es "rootfs.mk":

Code: Alles auswählen

# try to package a complete root fs for the box target

BOX = $(BUILD_TMP)/rootfs

$(D)/rootfs:
	rm -rf $(BOX)
	cp -a $(TARGETPREFIX) $(BOX)
	rm -rf $(BOX)/include $(BOX)/mymodules
	rm -rf $(BOX)/share/{aclocal,gdb,locale} # locale not (yet) needed by anything
	rm -rf $(BOX)/lib/pkgconfig
	rm -f $(BOX)/lib/libvorbisenc*
	find $(BOX) -name .gitignore -type f -print0 | xargs --no-run-if-empty -0 rm -f
	find $(BOX)/lib \( -name '*.a' -o -name '*.la' \) -print0 | xargs --no-run-if-empty -0 rm -f
	du -sh $(BOX)
	@echo "*******************************************************"
	@echo "*** The following warnings from strip are harmless! ***"
	@echo "*******************************************************"
	find $(BOX)/bin -type f -print0 | xargs -0 $(TARGET)-strip || true
	find $(BOX)/sbin -type f -print0 | xargs -0 $(TARGET)-strip || true
	find $(BOX)/lib -path $(BOX)/lib/modules -prune -o -type f -print0 | xargs -0 $(TARGET)-strip || true
	du -sh $(BOX)
dabei wird zuerst das root verzeichnis umkopiert.
dort werden dann die unnötige sachen gelöscht.
danach wird strip ausgeführt.

...vielleicht hilft dir das ja schon weiter.

mfg
wittinobi
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: How to strip

Beitrag von MPC823 »

Danke das wird so wie es aussieht vermutlich helfen :-)

Ich habe mich an dem make tarball und make tarball-stripped unter neutriono orientiert und das hat bei mir nicht funktioniert das zu strippen. .

Nochmals Danke


Martin
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: How to strip

Beitrag von MPC823 »

Feedback :gruebel:
wittinobi hat geschrieben:in allen mir bekannten buildsystemen (git von seife, striper und mir), gibt es "rootfs.mk":
Also dann muss ich ein unbekanntes buildsystem haben den die datei gibt es bei mir nicht. Denoch hat mir das von Dir geholfen den ich hatte da beim umstellen noch ein Fehler drin den ich erst nach zigfachem ansehen bemerkt habe.
neutrino-hd-tarball-stripped:
rm -rf $(BUILD_TMP)/root
mkdir $(BUILD_TMP)/root
for i in $$(cat $(PATCHES)/tar-T); do \
mkdir -p $(BUILD_TMP)/root/$$(dirname $$i); \
cp -a $(TARGETPREFIX)/$$i $(BUILD_TMP)/root/$$i; \
done
cd $(BUILD_TMP)/root && \
rm -rf $$(cat $(PATCHES)/tar-X) && \
find . -name .gitignore -print0 | xargs --no-run-if-empty -0 rm -f
cd $(BUILD_TMP)/root && find bin/ sbin/ lib/ -type f -print0 |xargs -0 $(TARGET)-strip || true
rm -f root-stripped.tar
cd $(BUILD_TMP)/root && tar -cvf $(BASE_DIR)/root-stripped.tar -T $(PATCHES)/tar-T -X $(PATCHES)/tar-X \
--owner=0 --group=0 --numeric-owner
rm -rf $(BUILD_TMP)/root
So läuft es nun bei mir . gz nehme ich deswegen nicht weil ich gz nicht direkt auf der Box entpacken kann. Denoch ist mein tarball-stripped noch 90 MB gross.

unter http://www.linuxforen.de/forums/archive ... 12664.html fand ich
Ausführbare Dateien strippt man so:
strip <Ausführbare_Datei>
Dynamische Bibliotheken strippt man so:
strip --strip-unneeded <Dynamische_Bibliothek>
Statische Bibliotheken strippt man so:
strip -g <Statische_Bibliothek>
Folgende Varianten sind falsch und werden die zu strippende Datei unbrauchbar machen:
strip <Dynamische_Bibliothek>
strip <Statische_Bibliothek>
strip --strip-unneeded <Statische_Bibliothek>
Auf Wunsch kann man auch noch mehr Sektionen strippen. Bei ausführbaren Dateien funktioniert folgendes meistens ganz gut:
strip -R .comment -R .note <Ausführbare_Datei>
Ab dem Bereich fängt es aber an, dass Vorsicht geboten ist...
sieht es nur für mich so aus das man mit den optionen die es da so gibt noch einiges rausholen könnte ?


Martin
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: How to strip

Beitrag von Striper »

MPC823 hat geschrieben:Also dann muss ich ein unbekanntes buildsystem haben den die datei gibt es bei mir nicht.
Hm...

http://gitorious.org/neutrino-hd/builds ... /rootfs.mk
http://gitorious.org/~striper/neutrino- ... /rootfs.mk
http://gitorious.org/~wittinobi/neutrin ... /rootfs.mk

:blind
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: How to strip

Beitrag von MPC823 »

Warum das bei mir fehlt kann ich dir nicht sagen

Das ist in meinem make verzeichniss drin
martin@Mac-Mini:~/td-neutrino-HD/make$ ls -al
insgesamt 100
drwxr-xr-x 2 martin martin 4096 15. Sep 21:24 .
drwxr-xr-x 18 martin martin 4096 15. Sep 16:05 ..
-rwxr-xr-x 1 martin martin 4523 30. Aug 14:35 archives.mk
-rwxr-xr-x 1 martin martin 4841 9. Aug 20:01 bootstrap.mk
-rw-r--r-- 1 martin martin 1100 25. Aug 01:43 cleantargets.mk
-rwxr-xr-x 1 martin martin 2064 30. Aug 16:02 environment.mk
-rwxr-xr-x 1 martin martin 4811 9. Aug 20:01 flashimage.mk
-rw-r--r-- 1 martin martin 2910 9. Aug 20:01 linuxkernel.mk
-rwxr-xr-x 1 martin martin 4219 15. Sep 16:05 neutrino-hd.mk
-rwxr-xr-x 1 martin martin 3896 9. Aug 20:01 neutrino.mk
-rw-r--r-- 1 martin martin 586 25. Aug 01:43 phony.mk
-rwxr-xr-x 1 martin martin 3392 9. Aug 20:01 prerequisites.mk
-rw-r--r-- 1 martin martin 393 9. Aug 20:01 README
-rwxr-xr-x 1 martin martin 13406 10. Aug 23:00 system-libs.mk
-rwxr-xr-x 1 martin martin 11923 31. Aug 00:27 system-tools.mk
-rwxr-xr-x 1 martin martin 2916 25. Aug 01:43 tuxbox.mk
martin@Mac-Mini:~/td-neutrino-HD/make$

Martin
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: How to strip

Beitrag von Striper »

http://gitorious.org/neutrino-hd/buildsystem-cs

add the possibility to build the neutrino-hd-tripledragon repo

Code: Alles auswählen

# set the flavour of neutrono you want to build
# empty or "neutrino-hd": use git://gitorious.org/neutrino-hd/neutrino-hd-experimental.git
# "neutrino-hd-tripledragon": use git://gitorious.org/neutrino-hd/neutrino-hd-tripledragon.git
#FLAVOUR=neutrino-hd-tripledragon
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: How to strip

Beitrag von seife »

Martin, das coolstream-buildsystem ist nicht dasselbe wie das TD-Buildsystem.
Auch wenn es relativ einfach ist, sachen vom einen ins andere zu übertragen.

Man könnte die auch wieder mal zusammenführen, allerdings will ich vermeiden, dass da en neues Monstrum wie das tuxbox-CDK draus wird ;-)
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: How to strip

Beitrag von MPC823 »

Danke Seife, dann ist es klar das ich (Neutrino-HD TD'ler) das nicht haben.

Das strippen geht ja nun auch. Jetzt muss ich nur noch herausfinden warum es geht damit ich evt das ganze besser verstehe.


Martin