Flashtargets in Makefile umgeschrieben

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
racker
Einsteiger
Einsteiger
Beiträge: 369
Registriert: Samstag 29. Mai 2004, 01:50

Beitrag von racker »

Barf hat geschrieben:Neue configure-option: --with-rootpartitionsize=SIZE, siehe hier.

racker wird meine m4 Files hassen :wink:
:)
Ich hatte mich schon gefragt, wie lange es wohl dauern wird... hm 2 Tage :wink:
Hassen beruht nur auf Emotionen und ich hasse diese Files nicht- ich mag sie nicht.
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

The architecture of newmake, auch als PDF zu haben.

Newmake für Doktoranden, "Newmake 201"?

Auch das Dokument Building Flash Images and YADDs with newmake hat ein Paar kleinere Verbesserungen erlitten.
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Endlich bin ich dazu gekommen, die clean targets upzudaten! Ich habe sogar Dokumenation im Dokument Building Flash Images and YADDs with newmake reingeschrieben.

Das Architekturdokument hat ein Paar Referenzen (nützliche Links) bekommen.

In Unterschied zu sowohl HEAD-make als auch frühere Versionen von newmake macht "clean" und "mostlyclean" endlich was Vernünftiges.
distclean
The most drastic cleaning target, deleting (almost) everything that was not checked out from CVS. This is seldomly necessary.

mostlyclean
A smarter target is mostlyclean, that cleans in the directories containing "tuxbox-sources", but leaves the compilation environment, and all unpack-compile-install-delete-components alone. Also, the cdkroot directory, (i.e. the yadd-installation), as well as the TFTP-files (kernel and u-boot) are not touched.

depsclean
Deletes all marker files in the .deps directory, thus forcing recompilation of all unpack-compile-install-delete-components. This is seldomly sensible: They depend on their sources, and, possibly, a patch file, and the Makefile knows these dependencies.

clean
Combines mostlyclean, depsclean, and flash-clean. Also tries to delete as much as possible in the cdkroot directory, that was not installed during the bootstrap run. Thus, it is attempted to bring the environment to the stage when the build environment has just been compiled, for example by make bootstrap.

flash-semiclean
This target deletes most build directories in $(flashprefix), but leaves the built boot-partitions and kernel build directories alone. This is often sensible, since these components change comparatively seldomly.

flash-mostlyclean
In addition to flash-semiclean, this target also deletes boot-partition files and the kernel build directories. Build full images are left untouched.

flash-clean
This target deletes all components in $(flashprefix).
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Soll zufügen dass der Target flash-developerclean entfernt worden ist. (Falls jemanden es braucht: make flash-semiclean + rm $(flashprefix)/*.img*x )
racker
Einsteiger
Einsteiger
Beiträge: 369
Registriert: Samstag 29. Mai 2004, 01:50

Beitrag von racker »

racker hat geschrieben: -Eine funktionierende yadd erstellen ;)
Done
Kernel26 kann jetzt in newmake gebaut und in einer yadd genutzt werden.
- "configure" muss zusätzlich mit "--enable-kernel26 --disable-flashrules" aufgerufen werden.
- Die rc.S von head verwenden.
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

erster versuch endet mit

Code: Alles auswählen

Image Name:   Linux-2.6.15-dbox2
Created:      Fri Apr 28 21:37:44 2006
Image Type:   PowerPC Linux Kernel Image (gzip compressed)
Data Size:    1015145 Bytes = 991.35 kB = 0.97 MB
Load Address: 0x00000000
Entry Point:  0x00000000
  Image: arch/ppc/boot/images/uImage is ready
  Building modules, stage 2.
  MODPOST
make[2]: Leaving directory `/home/dietmarw/tux_test/20060428_0400/tuxbox-cvs/cdk/linux-2.6.15'
make -C linux-2.6.15 modules_install \
	ARCH=ppc \
	CROSS_COMPILE=powerpc-tuxbox-linux-gnu- \
	DEPMOD=/bin/true \
	INSTALL_MOD_PATH=/home/dietmarw/tux_test/20060428_0400/dbox2/cdkroot
make[2]: Entering directory `/home/dietmarw/tux_test/20060428_0400/tuxbox-cvs/cdk/linux-2.6.15'
Warning: you may need to install module-init-tools
See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt
if [ -r System.map -a -x /bin/true ]; then /bin/true -ae -F System.map -b /home/dietmarw/tux_test/20060428_0400/dbox2/cdkroot -r 2.6.15-dbox2; fi
make[2]: Leaving directory `/home/dietmarw/tux_test/20060428_0400/tuxbox-cvs/cdk/linux-2.6.15'
make[1]: Leaving directory `/home/dietmarw/tux_test/20060428_0400/tuxbox-cvs/cdk'
/usr/bin/install -c -m644 linux-2.6.15/arch/ppc/boot/images/uImage /home/dietmarw/tux_test/20060428_0400/dbox2/tftpboot/kernel-cdk
chmod 644 /home/dietmarw/tux_test/20060428_0400/dbox2/tftpboot/kernel-cdk
/usr/bin/install -c -m644 linux-2.6.15/vmlinux /home/dietmarw/tux_test/20060428_0400/dbox2/cdkroot/boot/vmlinux-2.6.15-dbox2
/usr/bin/install -c -m644 linux-2.6.15/System.map /home/dietmarw/tux_test/20060428_0400/dbox2/cdkroot/boot/System.map-2.6.15-dbox2
/usr/bin/install -c -d /home/dietmarw/tux_test/20060428_0400/dbox2/cdkroot/tmp
/usr/bin/install -c -d /home/dietmarw/tux_test/20060428_0400/dbox2/cdkroot/proc
/usr/bin/install -c -d /home/dietmarw/tux_test/20060428_0400/dbox2/cdkroot/var/run
make -C /home/dietmarw/tux_test/20060428_0400/tuxbox-cvs/driver \
	KERNEL_LOCATION=/home/dietmarw/tux_test/20060428_0400/tuxbox-cvs/cdk/linux \
	CROSS_COMPILE=powerpc-tuxbox-linux-gnu-
make[1]: Entering directory `/home/dietmarw/tux_test/20060428_0400/tuxbox-cvs/driver'
Rules.make:1: /home/dietmarw/tux_test/20060428_0400/tuxbox-cvs/cdk/linux/Rules.make: Datei oder Verzeichnis nicht gefunden
make[1]: *** Keine Regel, um »/home/dietmarw/tux_test/20060428_0400/tuxbox-cvs/cdk/linux/Rules.make« zu erstellen.  Schluss.
make[1]: Leaving directory `/home/dietmarw/tux_test/20060428_0400/tuxbox-cvs/driver'
make: *** [driver] Fehler 2
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

du hast die driver directory aus dem 2.6 branch?
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

scheinbar nicht,
hab einfach nur mit den neuen configure rules ne newmake yadd angestoßen.
(ging davon aus, das benötigte teile geladen werden ;))
racker
Einsteiger
Einsteiger
Beiträge: 369
Registriert: Samstag 29. Mai 2004, 01:50

Beitrag von racker »

Ich habe oben nur die newmake-spezifischen Parameter genannt.
Ich nehme an, dass die 2.6er Treiber fehlen.
Wie in head auch, muss der driver_2_6_branch in ein eigenes Verzeichnis
ausgecheckt werden und dann bei configure das Treiberverzeichnis als Parameter angeben.

Code: Alles auswählen

cd $TUXBOX-CVS
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -f -r newmake -P . 
mkdir d26
cd d26
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -r driver_2_6_branch -P .
cd ../cdk
./autogen.sh
./configure --with-driverdir=$TUXBOX-CVS/d26/driver bla ...
 
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

thx..
teste ich morgen mal.
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

yadd mit 2.6er kernel liegt jetzt hier http://tuxbox2.trale.de
racker
Einsteiger
Einsteiger
Beiträge: 369
Registriert: Samstag 29. Mai 2004, 01:50

Beitrag von racker »

Zum Thema Kernel 2.6 und newmake bitte hier weiter posten:
http://forum.tuxbox.org/forum/viewtopic.php?t=41491
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Ein Problem mit newmake ist/war dass, falls ein Target wie $(flashprefix)/root-neutrino fehl schlägt, dann wird das Verzeichniss trotzdem auf der Platte bleiben, und das nächstes Mal make ausgeführt wird glaubt make dadurch -- fehlerhaft -- dass der Target up-to-date ist. Dafür gibt es in GNU Make (und sofern ich verstehe nur da) ein Prerequisite .DELETE_ON_ERROR (siehe GNU Make manual), das bewirkt, dass Targets bei fehlgeschlagene Actions gelöscht wird. Denkt mann ein Paar Momente nach, versteht mann, dass .DELETE_ON_ERROR eigenlich für eine korrekte Makefunkion absolut notwendig ist.

Leider funktioniert dies z.Z. nicht für Verzeichnisse. Ich habe dies als Bug hier gemeldet. Ich habe ein "pragmatischer" Patch zu GNU make 3.81 geschrieben, befindet sich hier.

Zum Erstellen ein gepatches make:
1. make-3.81.tar.gz runterladen und entpacken
2. cd .../make-3.81
3. patch < ...commands.c.diff
4. ./configure
5. make
6. make install

Ich habe auch cdk/make/precious.mk dafür geändert.

Dadurch ist das oben beschriebene Problem gelöst.

Um Missverständnisse zu vermeiden: Es ist nicht notwendig, ein gepatchtes make zu benutzen!
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Ich habe flash-tools_misc geändert so dass das Target nicht mehr alle programme in $(appsdir)/tuxbox/tools/misc installiert wird. Z.Z. wird switch, saa und rcsim, aber also nicht aviafbtool, aviaext, fbclear, lcddump und audioplay installiert

Target flash-tools_misc-all kann benutzt werden, falls mann wirklich alle in das Image haben will.
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

Tach Ihrs,

ich habe nun auch mal ein bissl in Barf's aktuellen Erläuterungen gelesen Auf ein Detail finde ich leider bisher keine Antwort (oder ich bin blind):

unregelmäßig passe ich mir das Aussehen der Menüs auf meinen Geschmack an oder probiere einen aktuellen test-patch von houdini/nirvana. Zum Testen und ausprobieren habe ich in "oldmake" immer

Code: Alles auswählen

rm -f .deps/neutrino
make .deps/neutrino
laufen lassen und die neue binary aus dem cdkroot ins tmp der box kopiert. das start_neutrino script und neutrino gestoppt und die neue bin im tmp ordner gestartet. wenn es dann irgendwann hübsch genug war, wurde ein root erstellt und fertig war die bastelei. wie geht das mit newmake? ich finde nur targets, bei denen immer gleich alles zu einem image zusammengeklebt wird aber keine der alten make regeln.

regards
innu
saruman
Erleuchteter
Erleuchteter
Beiträge: 682
Registriert: Samstag 13. Juli 2002, 10:05

Beitrag von saruman »

Ich mach das mit 'ner Yadd... ;)
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Innuendo hat geschrieben:Zum Testen und ausprobieren habe ich in "oldmake" immer

Code: Alles auswählen

rm -f .deps/neutrino
make .deps/neutrino
laufen lassen und ...
entspricht

Code: Alles auswählen

make neutrino
in newmake.
ich finde nur targets, bei denen immer gleich alles zu einem image zusammengeklebt wird aber keine der alten make regeln.

Hier sind ein Anzahl Targets Dokumentiert.
saruman hat geschrieben:Ich mach das mit 'ner Yadd...
Ich auch. Dabei ist die Neutrinofunktion "Neutrino neu starten" wirklich nützlig.
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

ich hab mal grob angefangen im wiki einen artikel zu erstellen,
wer lust und zeit hat kann den ja vervollständigen

http://wiki.tuxbox-cvs.sourceforge.net/Newmake
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Inspiriert von http://forum.tuxbox.org/forum/viewtopic.php?t=42089 habe ich neue Targets in newmake implementiert, flash-null-jffs2-[1x,2x,all]. Sie bauen jffs2-images ganz ohne GUI-Krimskrams.

Ferner, meist aus Vollständigkeit, kann auch LCARS-Images mit newmake gebaut werden. Nur jffs2. Targets flash-lcars-jffs2-[1x,2x,all].

Z.Z. sind diese Targets nicht von irgenwelche andere Targets, z.B. make flash-all-.... oder make everything, prerequisites.

http://cvs.tuxbox.org/lists/tuxbox-cvs- ... 00001.html

dietmarw hat geschrieben:ich hab mal grob angefangen im wiki einen artikel zu erstellen,
wer lust und zeit hat kann den ja vervollständigen

http://wiki.tuxbox-cvs.sourceforge.net/Newmake
:D :P
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Ich habe bis jetzt einfach pluginx von newmake rausgenommen, weil in ...apps/tuxbox/tools/misc hat es der unangenehme Effekt, dass Target tuxbox_tools von Target plugins abhängt. Jetzt habe ich es in newmake zu .../apps/tuxbox/plugins/pluginx versetzt. Neue Maketargets: pluginx und flash-pluginx. Wird nicht von irgendetwas anderes aufgerufen.
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

pantau
Einsteiger
Einsteiger
Beiträge: 130
Registriert: Dienstag 25. November 2003, 07:14

Beitrag von pantau »

thank es Barf :wink:
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

Danke für die Übersetzng. :)
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Ich habe drei neue, experimentelle Optionen implementiert:

--enable-ide: Kompiliert den Kernel mit IDE-support (als Modul). Passiert durch sed-editierung des Kernelkonfigurationsfile. Sowohl in YADD als auch im Images. Später wird (wahrscheinlich) mountpounts und fstab-einträge gemacht. (Z.Z., ohne Testmöglichkeit, halte ich dies für Zeitverschwendung.) Ist (Z.Z) wesentlich ein proof-of-concept. (Ich bin nicht einmal sicher, welche vernünftige Kernelparameter sind).

--enable-lirc: lirc wird eingebaut in YADD und Images.

--enable-cdkVcInfo (komische gross/kleinschreibung beachten!) baut das cdkVcInfo in Images und YADD.

Ich möchte gerne Feedback, falls diese eine vernünfige und logische Erweiterungsmöglichkeit darstellt, ohne die Übersicht zu gefährden.
the_moon
Einsteiger
Einsteiger
Beiträge: 223
Registriert: Samstag 25. Januar 2003, 11:18

Beitrag von the_moon »

Barf hat geschrieben: --enable-lirc: lirc wird eingebaut in YADD und Images.
Danke.