Makefile frage...

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
Blackice2999
Interessierter
Interessierter
Beiträge: 20
Registriert: Montag 26. August 2002, 09:57

Makefile frage...

Beitrag von Blackice2999 »

Hallo an alle devs.. und alle anderen...

Ich habe mittlerweile das Makefile schon fast im kopf... so oft wie ich es gelesen habe :D

Ich habe mir mittlerweile das CDK bei mir kompiliert bekommen...
mit anfänglichen problemen... naja jedenfalls habe ich dann mal
make rebuild-flash gemacht.. läuft auch supi durch... make compress-flash scheint auch zu gehen... (habe dann cramfs und jffs2) aber was muss ich eingeben um die ppcboot-flfs.img zu erhalten und dann zu mischen??? make mix-cramfs-jffs2.img geht nicht... *grübel*

bitte um ein wenig hilfe...
TomSoft
Interessierter
Interessierter
Beiträge: 62
Registriert: Freitag 1. Februar 2002, 15:42

Beitrag von TomSoft »

hi!

diese info würde ich auch brauchen!
danke

tom
Woodelf
Interessierter
Interessierter
Beiträge: 24
Registriert: Dienstag 16. Juli 2002, 16:12

Beitrag von Woodelf »

Hi Leute,

vergleicht mal ein fertiges Image mit dem erzeugten cramfs und jffs2 mit einem Hexeditor. Danach ist es ganz einfach mit dem Hexeditor die beiden Dateisysteme zu einer Datei zusammenzufügen. Habe es selber so gemacht, und funzte problemlos. Mit ein wenig Übung, geht das dann auch sehr flott :D

mfg

Woodelf
Blackice2999
Interessierter
Interessierter
Beiträge: 20
Registriert: Montag 26. August 2002, 09:57

Evtl... Lösung...

Beitrag von Blackice2999 »

Also ich habe mich erst vor kurzem im Channel #dbox2
mit jemanden drüber unterhalten... und wenn ich es richtig verstanden
habe gehört es wohl noch zu dem Thema "Bug" das es zu diversen Fehlern
kommt wenn man eine flfs, cramfs & jffs2 erstellt und diese dann ein spielt... wobei der hauptteil des Fehler an der jffs2 liegt, da diese sich wohl nicht ganz mit dem treiber der im Kernel eingebauten Jffs2 übereinstimmt... :-? Wie dem auch sei habe ich erstmal drüber nachgedacht und bin zu dem lösungweg gekommen:

1. flfs.img (kann man sich aus der dbox auslesen...)
2. cramfs erstellen...
3. dann (z.B. AlexW) auf die Dbox Spielen und die benötigten verzeichnise per FTP & Telnet im /var erstellen.
4. jffs2 von der dbox auslesen und dann das ganze mit dem Flashmanage.pl zusammen fügen....

Also diese Methode hat bei mir jetzt schon mehrmals funktioniert...

Jetzt bleibt mir halt nur noch das Problem wie ich die Yadd auf eine brauchbare größe bringe... einfach nur Strippen ist ja wohl irgendwie nicht... hat jemand eine ahnung wie ich das python script mklibs.py anwende ???
Woodelf
Interessierter
Interessierter
Beiträge: 24
Registriert: Dienstag 16. Juli 2002, 16:12

Beitrag von Woodelf »

@Blackice2999,

habe mich auch schonmal mit der Funktion "make flash-compress" im CVS beschäftigt. Funktioniert leider nicht korrekt :cry:
Wie es mit dem ganz neuen CVS-Stand aussieht weis ich nicht, da ich das schon länger nicht mehr gecheckt habe.
Es haben ganz einfach zuviele Dateien im cramfs gefehlt, ausserdem wurden die init dateien für ne yadd angelegt. Damit klappt das schonmal mit einem Image nicht :( Allerdings hat das Python - Script bei mir seine Arbeit relativ gut erledigt. Den Rest hab ich mir dann per Hand zusammenkopiert, und die init dateien für ein Flash angepasst. Das ganze hat auch anschliessend Funktioniert :) Nur versteh ich nicht, warum das ganze im Makefile.am nicht korrigiert wird. So muss man sich das ganze Zeitaufwändig zusammenbasteln. Schaut fast so aus, das man von der dev Seite her bewusst die Sache mit dem Imagebasteln unterbinden will :( Wenn man hier fragen liest, die irgendwas mit Imagebasteln zu tun haben, gibts dazu immer keine oder eine unbrauchbare Antwort.
Aber gerade als Anfänger, der was dazulernen will, ist man auf brauchbare Antworten angewiesen.

mfg

Woodelf
obi
Senior Member
Beiträge: 1282
Registriert: Montag 12. November 2001, 00:00

Beitrag von obi »

- groessenreduziert uebersetzen dauert ewig, macht die dbox auch nicht schneller und macht debuggen nahezu unmoeglich.
- der grossteil der entwickler, mich eingeschlossen, hat garkein interesse an flashimages, weil die 15-16 MByte, die da reinpassen irgendwie nicht vergleichbar sind mit dem was in ein nfs root passt.
- um in flashimages neuerungen zu testen ist der zeitaufwand viel hoeher, als das ueber nfs zu erledigen.
- die flashimage-erstellung im cdk hat waldi eingebaut. wenn er gerade keine lust hat, das (so weit ueberhaupt moeglich) fertigzustellen - ich kenne den aktuellen stand davon garnicht - dann ist das noch lange kein grund, verhinderung zu unterstellen. seid doch froh, dass waldi ueberhaupt das ganze schon so weit gebracht hat, wie es ist.
- wenn jemand von euch konkrete (und getestete) bugfixes hat, dann soll er sich nicht genieren, diese an einen entwickler weiterzuleiten, da diejenigen, die an der software entwickeln wohl in der regel mehr spass daran haben, diese zu erweitern, als sie mundgerecht zu verpacken.
Blackice2999
Interessierter
Interessierter
Beiträge: 20
Registriert: Montag 26. August 2002, 09:57

Re: Obi

Beitrag von Blackice2999 »

Hallo Obi,

1. vertrete ich nicht unbedingt die meinung von dem vorreiter der Nachricht.
2. bewundere ich immer noch eure arbeit und auch ein lob an waldi das er schon so weit geschaft hat das Makefile zu bearbeiten für das Flash erstellen.

aber trozdem muss ich leider auch immer wieder feststellen das die fragen rund um das flash erstellen nicht gerne beantwortet werden. Was ich allerdings auf der einen seite auch verstehen kann...

Ok aber das ganze weicht mittlerweile ganz schön vom Thema ab...

Also sicher ist es nicht unbedingt im interesse der devs das ganze als image zu testen... ist ja auch eigendlich zu stressig bei der entwicklung ständig zu flashen... aber man muss denke ich auch mal an die leute denken die nicht unbedingt jeden tag die lust haben etwas zu testen...
Hauptsache es läuft und das Standalone...

Kommen wir doch einfach nochmal zum thema mklibs.py zurück...
1. wie benutzt man es???
2. wie benutz ich die fakeroot umgebung...???

mfg
Blackice
Woodelf
Interessierter
Interessierter
Beiträge: 24
Registriert: Dienstag 16. Juli 2002, 16:12

Beitrag von Woodelf »

@obi

wollte dir und den anderen devs keinesfalls auf dem Schlips treten. Ich schätze eure Arbeit auch sehr, und würde nicht mehr auf Linux in der Box verzichten wollen :D
War gestern net gut drauf, hoffe ihr nehmt mir das nicht allzu übel. Hab mich halt fürchterlich geärgert, das es nicht funktioniert hat.
Hab schon einiges im Makefile geändert, das auch nachher funktioniert hat. Vielleicht bekomm ich das ganze brauchbar hin. Ist halt für einen Anfänger wie ich es bin, net so leicht zu checken.

mfg

Woodelf
Blackice2999
Interessierter
Interessierter
Beiträge: 20
Registriert: Montag 26. August 2002, 09:57

Schlechter Tag...

Beitrag von Blackice2999 »

HI hi,

einen schlechten Tag hat ja jeder mal von uns... :oops:
Frage: ist es überhaupt möglich eine Yadd noch zu verkleinern?

Und davon mal abgesehen... wie benutze ich die Mkliby.py
oder ist es besser mklibs.sh zu benutzen ???
2xi
Interessierter
Interessierter
Beiträge: 57
Registriert: Freitag 15. Februar 2002, 18:24

Beitrag von 2xi »

Jungs so schwer ist das doch nun wirklich nicht oder

Ihr holt von euer Box das cdk.cramfs ( mtd2 ) über die Experten Funktion ( einzelne Partiotion auslesen ) runter ( liegt dann in /var/tmp/mtd2.img

ab auf eure Linuxkiste damit

cramfsck -x <verzeichnis> mtd2.img

dann könnt Ihr im <verzeichnis> nach belieben rumfummeln, z.B. Dateinen aus eurem gestripen Yadd reinkopieren

dann mittels mkcramfs -n "0106`date +%Y%m%d1548`" <verzeichnis> mtd2.img wieder einpacken

zurück auf die Box nach /var/tmp ( das alte mtd2.img überschreiben oder vorher löschen )

über Expertenfunktion wieder einspielen ( einzelne Partition )

Fertig

Tip auf die Größe achten, nicht das es zu groß wird !
2xi
Interessierter
Interessierter
Beiträge: 57
Registriert: Freitag 15. Februar 2002, 18:24

Beitrag von 2xi »

Und das Stripen auch noch

mklibs.py einfach ins /tuxbox-cvs/cdk kopieren

und dann das Skript von Homar verwenden achja vorher mit Ruleset-Flash Compilieren versteht sich

Code: Alles auswählen

#!/bin/sh

mkdir $HOME/yadd
cd $HOME/yadd
mkdir $HOME/cdkroot 
mkdir $HOME/tftpboot 
cp /dbox2/cdkroot/* $HOME/yadd/cdkroot/ -r 
cp /dbox2/tftpboot/* $HOME/yadd/tftpboot/ -r 
cd $HOME/yadd/cdkroot 
find . -name *.la -exec rm \{} \; 
find . -name *.a -exec rm \{} \; 
find . -name *.h -exec rm \{} \; 
rm include -r 
rm lib/gconv -r 
rm lib/kaffe -r 
rm lib/ldscripts -r 
rm lib/modules/pcmcia -r 
rm info -r 
rm lib/nof -r 
rm man -r 
rm libexec -r 
rm share/empty -r 
rm share/i18n -r 
rm share/kaffe -r 
rm share/locale -r 
rm share/zoneinfo -r 
find . -name *kaffe* -exec rm \{} \; 
# !!! Bei Linux !!! 
find . -type f -perm -100 -exec /dbox2/cdk/bin/powerpc-tuxbox-linux-gnu-strip \{} \; 
# !!! Bei cygwin !!! 
cd bin 
find . -type f -exec /dbox2/cdk/bin/powerpc-tuxbox-linux-gnu-strip \{} \; 
cd .. 
# !!! nur eine der beiden Optionen benutzen !!! 
cd .. 
tar -cvf yadd.tar cdkroot tftpboot 
rm yadd.tar.gz 
gzip -9 yadd.tar 
echo 
echo ...das war es
Zuletzt geändert von 2xi am Sonntag 1. September 2002, 18:29, insgesamt 1-mal geändert.
Woodelf
Interessierter
Interessierter
Beiträge: 24
Registriert: Dienstag 16. Juli 2002, 16:12

Beitrag von Woodelf »

@2xi,

aus einer gestrippten yadd ein cramfs zu machen ist ansich kein grosses problem. Nur ist das rumkopieren der einzelnen dateien relativ zeitaufwendig. In der compilierten Yadd ist doch für ein cramfs einiges zuviel drin. Habe daher mal das Makefile.am etwas modifiziert. Es werden jetzt die benötigten Dateien kopiert :D Leider hab ich aber noch das Problem, das sich die Mklibs.py jetzt beim verkleinern der Libraries einen "Wolf" läuft. Das Teil kommt bei 89 Symbols unresolved nicht mehr weiter, und läuft ewig so weiter. Habs dann mal bei 100 Passes abgebrochen. Hab dann das Python-Script etwas geändert, so das es bei 89 Symbols unresolved aufhört. Hatte danach auch schöne verkleinerte libs für ein cramfs, aber etliche davon funzten nachher nicht korrekt :( Irgendwas mach ich da anscheinend noch falsch. Vielleicht kannst du mir da noch ein paar Tipps geben.

mfg

Woodelf
2xi
Interessierter
Interessierter
Beiträge: 57
Registriert: Freitag 15. Februar 2002, 18:24

Beitrag von 2xi »

Also ich habe keine Probleme meine "Yadd" nachher zum cramfs zu machen, auch von der größe her passt es wenn ich die Doom.Wad da nicht reinpacke
Belgarad
Einsteiger
Einsteiger
Beiträge: 182
Registriert: Donnerstag 1. November 2001, 00:00

Beitrag von Belgarad »

Ich versuche mich ebenfalls (zur zeit noch vergeblich) ein image zu erstellen. (aus dem CVS ohne Basisimage von AlexW)
Es hakt an dem 'ppcboot-flfs.img'. So wie es scheint gibt es im makefile weder ein target noch rules dafuer. und fuer das 'mix-cramfs-jffs2.img', das dann wohl das flfs, cramfs und jffs2 enthalten wuerde (ueber 'flashmanage.pl'), existieren zwar rules aber kein target. habe nun ein target fuer 'mix-cramfs-jffs2.img' eingebaut, aber ich kenne die rules fuer 'ppcboot-flfs.img' nicht.

any ideas?

Code: Alles auswählen

$(flashprefix)/mix-cramfs-jffs2.img: $(flashprefix)/ppcboot-flfs.img $(flashprefix)/root-cramfs.img $(flashpref
	@rm -f  $(flashprefix)/mix.img
        $(hostappsdir)/flash/flashmanage.pl -i $(flashprefix)/mix-cramfs-jffs2.img -o build \
		--part ppcboot=$(flashprefix)/ppcboot-flfs.img \
		--part root=$(flashprefix)/root-cramfs.img \
		--part var=$(flashprefix)/var-jffs2.img
P.S. Kann natuerlich auch sein das ich mich kraeftig irre ...
base2khid
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Donnerstag 24. Januar 2002, 11:42

Beitrag von base2khid »

Belgarad hat geschrieben:
aber ich kenne die rules fuer 'ppcboot-flfs.img' nicht
Diese gibt es ja auch gar nicht.
Einfach ein anderes (z.b: von AlexW) nehmen.

Thema: mklibs.py

Das Script läuft bei mir bis 0 unresolved Symbols durch,
nur leider sind die Binaries danach (fast ?) alle kaputt.

Init (sprich busybox) startet nach dem Kernel nicht.
(Die entprechende Meldung reiche ich noch nach,
Modul binfmt-4c46 oder so kann er nicht finden.)

Nach dem Austausch der Binaries läuft die Sache zwar,
bleibt aber noch die Frage, warum ?

Wurde das eventuell schon gefixt? Liegt das an meiner Phyton Vesion?

Code: Alles auswählen

wst:~# python -V
Python 2.1.3
wst:~#
Bin auch schon die Patches bis zum 12.10 durchgegangen, konnte aber nichts zum Thema finden.
Vielleicht hat Waldi da schon etwas, ich denke er ist dafür zuständig.

thx, base
Nokia 2xIntel AVIA500
genial
Interessierter
Interessierter
Beiträge: 48
Registriert: Donnerstag 10. Oktober 2002, 02:18

Beitrag von genial »

ich hatte das selbe problem und es liegt nicht an dem phytonscript, sondern am strip-aufruf. dieser macht, zumindest bei mir, die binarys unbrauchbar.

ich habe nun ganz einfach in der Datei 'cdk/Makefile' die zeile:

Code: Alles auswählen

@strip --remove-section=.comment --remove-section=.note `find $(flashprefix)/root/bin/ -path "*bin/?*"` 2>/dev/null || /bin/true
gegen diese getauscht:

Code: Alles auswählen

@find $(flashprefix)/root/ -type f -perm -100 -exec $(hostprefix)/bin/powerpc-tuxbox-linux-gnu-strip \{} \;
und schon wird sauber gestripped und das yadd, dass dann in 'cdkflash/root' ist, läuft einwandfrei. 8)
typed by genial Bild