MokoMakefile/de

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m (Vor dem Start: falls du ... haben [solltes])
(catchg)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{Languages|MokoMakefile}}
 
{{Languages|MokoMakefile}}
 
==MokoMakefile==
 
==MokoMakefile==
Das MokoMakefile ist ein wertvolles Tool um neuen Entwicklern möglichst schnell eine einheitliche Entwicklungsumgebung an die Hand zu geben. Es garantiert die einfache Reproduzierbarkeit und Wartung der Entwicklungsumbgebung ähnich wie OpenEmbedded eine generelle Plattform zur Entwicklung von Embedded-Distributionen darstellt.
+
Das MokoMakefile ist ein wertvolles Tool um neuen Entwicklern möglichst schnell eine einheitliche Entwicklungsumgebung an die Hand zu geben. Es garantiert die einfache Reproduzierbarkeit und Wartung der Entwicklungsumbgebung ähnlich wie OpenEmbedded eine generelle Plattform zur Entwicklung von Embedded-Distributionen darstellt.
  
'''Hinweis:'''  
+
'''Hinweis:'''
 
*Das MokoMakefile ist '''kein''' Ersatz für bitbake, SVN, monotone, OpenEmbedded, qmake und dergleichen. Es dient vielmehr als Rahmen für die einfache Wartung und Instandhaltung einer Entwicklungsumgebung die den Regeln des Openmoko-Projekts entspricht.
 
*Das MokoMakefile ist '''kein''' Ersatz für bitbake, SVN, monotone, OpenEmbedded, qmake und dergleichen. Es dient vielmehr als Rahmen für die einfache Wartung und Instandhaltung einer Entwicklungsumgebung die den Regeln des Openmoko-Projekts entspricht.
 
*Die Entwicklungsumgebung benötigt ca. 7GB Festplattenspeicher
 
*Die Entwicklungsumgebung benötigt ca. 7GB Festplattenspeicher
Line 28: Line 28:
  
 
1 - Überprüfe ob dein Rechner den folgenden Anforderungen entspricht:
 
1 - Überprüfe ob dein Rechner den folgenden Anforderungen entspricht:
  [http://www.openembedded.org/wiki/OEandYourDistro http://www.openembedded.org/wiki/OEandYourDistro]
+
  [http://wiki.openembedded.net/index.php/OEandYourDistro http://wiki.openembedded.net/index.php/OEandYourDistro]
 
2 - Erstelle das $OMDIR Verzeichnis:
 
2 - Erstelle das $OMDIR Verzeichnis:
 
  mkdir /home/moko ; cd /home/moko
 
  mkdir /home/moko ; cd /home/moko
Line 37: Line 37:
 
5 - Mit dem kompilieren anfangen (bevor du mit dem langen Kompilierprozess anfängst solltest du dich in der [[#Tips|Tips]]-Sektion darüber schlau machen wie man Multicore aktiviert):
 
5 - Mit dem kompilieren anfangen (bevor du mit dem langen Kompilierprozess anfängst solltest du dich in der [[#Tips|Tips]]-Sektion darüber schlau machen wie man Multicore aktiviert):
 
  make openmoko-devel-image
 
  make openmoko-devel-image
 +
  
 
Das Makefile erstellt die Ordnerstruktur wie sie in [[Openmoko2007.2/de|Openmoko2007.2]] vorgegeben ist, lädt die benötigten Programme (von den richtigen Quellen und in der richtigen Version) herunter und fängt sofort an das Image zu bauen.
 
Das Makefile erstellt die Ordnerstruktur wie sie in [[Openmoko2007.2/de|Openmoko2007.2]] vorgegeben ist, lädt die benötigten Programme (von den richtigen Quellen und in der richtigen Version) herunter und fängt sofort an das Image zu bauen.
Line 42: Line 43:
 
Danach kannst du das MokoMakefile dazu verwenden nachträgliche Builds laufen zu lassen oder im build-Verzeichnis mit ''bitbake'' die einzelnen Schritte durchführen.
 
Danach kannst du das MokoMakefile dazu verwenden nachträgliche Builds laufen zu lassen oder im build-Verzeichnis mit ''bitbake'' die einzelnen Schritte durchführen.
  
===Entwicklungsumgebung updaten===  
+
===Entwicklungsumgebung updaten===
 
Zur einfachen Wartung der Entwicklungsumgebung stehen folgende Befehle zur Verfügung:
 
Zur einfachen Wartung der Entwicklungsumgebung stehen folgende Befehle zur Verfügung:
  
 
1 - Um das MokoMakfile auf die neuste Version zu bringen:
 
1 - Um das MokoMakfile auf die neuste Version zu bringen:
  make update-makefile  
+
make update-makefile
  
 
2 - Um den Paket-Pool zu aktualisieren und die entsprechenden Patches herunterzuladen:
 
2 - Um den Paket-Pool zu aktualisieren und die entsprechenden Patches herunterzuladen:
  make update
+
make update
  
 
3 - Um sicherzustellen dass kürzlich vorgenommene Änderungen an der Build-Verzeichnisstruktur übernommen wurden:
 
3 - Um sicherzustellen dass kürzlich vorgenommene Änderungen an der Build-Verzeichnisstruktur übernommen wurden:
  make setup  
+
make setup
  
 
Eine Möglichkeit ein neues Image mit den aktuellen Updates zu bauen:
 
Eine Möglichkeit ein neues Image mit den aktuellen Updates zu bauen:
  make update-makefile && make update && make setup && make openmoko-devel-image
+
make update-makefile && make update && make setup && make openmoko-devel-image
  
  
Line 61: Line 62:
  
 
Überprüfe, ob der Fehler wiederholt auftritt und reproduzierbar ist:
 
Überprüfe, ob der Fehler wiederholt auftritt und reproduzierbar ist:
make update-makefile ; make update ; make setup
+
make update-makefile ; make update ; make setup
  
 
danach:
 
danach:
make clean-package-<foo>
+
make clean-package-<foo>
  
 
(<foo> ist der Name des defekten Pakets)
 
(<foo> ist der Name des defekten Pakets)
  
 
danach:
 
danach:
make all
+
make all
  
 
Wenn der Fehler nach dem diese Sequenz zum dritten Mal '''in Folge''' durchlaufen wurde auftritt, bitte bei rwhitby in #openmoko [http://wiki.openmoko.org/wiki/Development_resources#IRC IRC] melden.
 
Wenn der Fehler nach dem diese Sequenz zum dritten Mal '''in Folge''' durchlaufen wurde auftritt, bitte bei rwhitby in #openmoko [http://wiki.openmoko.org/wiki/Development_resources#IRC IRC] melden.
Line 78: Line 79:
  
  
===Tips===  
+
===Tips===
* Die Menge an benötigten Festplattenspeicher kann durch hinzufügen folgender Zeile in der 'local.conf' (idR /home/moko/build/conf/local.conf) erheblich verringert werden:  
+
* Die Menge an benötigten Festplattenspeicher kann durch hinzufügen folgender Zeile in der 'local.conf' (idR /home/moko/build/conf/local.conf) erheblich verringert werden:
  INHERIT += "rm_work"
+
INHERIT += "rm_work"
 
Diese Einstellung bewirkt dass der Inhalt jedes build/tmp/work/*/<package>-Verzeichnisses gelöscht wird wenn das Packet erfolgreich erstellt wurde.
 
Diese Einstellung bewirkt dass der Inhalt jedes build/tmp/work/*/<package>-Verzeichnisses gelöscht wird wenn das Packet erfolgreich erstellt wurde.
  
 
* Sollte ein Fehler im Zusammenhang mit Monotone auftreten der in etwa so aussieht:
 
* Sollte ein Fehler im Zusammenhang mit Monotone auftreten der in etwa so aussieht:
  mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema
+
mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema
 
Muss OE.mtn mit dem folgendem Befehl, ausgeführt in /home/moko geupdated werden:
 
Muss OE.mtn mit dem folgendem Befehl, ausgeführt in /home/moko geupdated werden:
  mtn --db OE.mtn db migrate
+
mtn --db OE.mtn db migrate
  
 
* Sollte ein Paket wegen eines kaputten Downloads etc nicht kompiliert werden können hilft es normalerweise wenn man die Quellen löscht und es per Hand versucht:
 
* Sollte ein Paket wegen eines kaputten Downloads etc nicht kompiliert werden können hilft es normalerweise wenn man die Quellen löscht und es per Hand versucht:
rm sources/<package>*
+
rm sources/<package>*
cd build
+
cd build
. ../setup-env
+
. ../setup-env
bitbake -crebuild <package>
+
bitbake -crebuild <package>
 
danach sollte der Build-Vorgang wieder normal ablaufen
 
danach sollte der Build-Vorgang wieder normal ablaufen
  
 
* Für Maschinen mit mehreren Prozessoren (bzw Dual-Core) sollten diese zwei Zeilen in der local.conf das ganze etwas beschleunigen:
 
* Für Maschinen mit mehreren Prozessoren (bzw Dual-Core) sollten diese zwei Zeilen in der local.conf das ganze etwas beschleunigen:
PARALLEL_MAKE = "-j 4"
+
PARALLEL_MAKE = "-j 4"
BB_NUMBER_THREADS = "4"
+
BB_NUMBER_THREADS = "4"
  
 
''Sollte der Rechner das nicht verkraften kann man die Werte auch verringern.''
 
''Sollte der Rechner das nicht verkraften kann man die Werte auch verringern.''
Line 107: Line 108:
 
Das MokoMakefile unterstützt jetzt auch das automatische Kompilieren, Flashen und Starten des neuen [[Openmoko under QEMU/de|Neo1973 Emulators]] ([[Openmoko under QEMU|eng]] - basierend auf QEMU).
 
Das MokoMakefile unterstützt jetzt auch das automatische Kompilieren, Flashen und Starten des neuen [[Openmoko under QEMU/de|Neo1973 Emulators]] ([[Openmoko under QEMU|eng]] - basierend auf QEMU).
  
make qemu
+
make qemu
  
 
kompiliert qemu-neo1973, lädt die neusten offiziellen Openmoko-Images herunter, brennt sie in den virtuellen NAND-Speicher und startet den Emulator.
 
kompiliert qemu-neo1973, lädt die neusten offiziellen Openmoko-Images herunter, brennt sie in den virtuellen NAND-Speicher und startet den Emulator.
Line 115: Line 116:
 
Weitere make-Ziele sind:
 
Weitere make-Ziele sind:
 
* Lädt die aktuellen Official-Images herunter:
 
* Lädt die aktuellen Official-Images herunter:
make download-images
+
make download-images
 
* Images in den virtuellen Speicher flahen:
 
* Images in den virtuellen Speicher flahen:
make flash-qemu-official
+
make flash-qemu-official
 
* Die lokal erzeugten Images in den Emulator-Speicher flashen:
 
* Die lokal erzeugten Images in den Emulator-Speicher flashen:
 
make flash-qemu-local
 
make flash-qemu-local
 
* Den Emulator starten
 
* Den Emulator starten
make run-qemu  
+
make run-qemu
 
bzw
 
bzw
  make run-qemu-snapshot
+
make run-qemu-snapshot
  
 
'''Hinweis''':
 
'''Hinweis''':
Line 135: Line 136:
  
 
*Übernehmen
 
*Übernehmen
cd /home/moko/openmoko
+
cd /home/moko/openmoko
quilt new beschreibender-name.patch
+
quilt new beschreibender-name.patch
quilt add trunk/src/Name-der-zu-ändernden-Datei
+
quilt add trunk/src/Name-der-zu-ändernden-Datei
  (Schritte für jede geänderte Datei wiederholen)
+
(Schritte für jede geänderte Datei wiederholen)
...Änderungen JETZT machen...
+
...Änderungen JETZT machen...
quilt refresh
+
quilt refresh
''(Erstellt eine neue Datei in /home/moko/patches/openmoko-HEAD/ und  
+
''(Erstellt eine neue Datei in /home/moko/patches/openmoko-HEAD/ und
aktualisiert die quilt-Serien)''
+
aktualisiert die quilt-Serien)''
  
 
*Kompilieren und in QEMU einspielen:
 
*Kompilieren und in QEMU einspielen:
make build-qemu
+
make build-qemu
make flash-qemu-local
+
make flash-qemu-local
make run-qemu
+
make run-qemu
  
  
===Anhang===  
+
===Anhang===
  
 
Project page:
 
Project page:
http://mokomakefile.projects.openmoko.org/
+
*http://mokomakefile.projects.openmoko.org/
  
[[Category:System Developers]]
+
[[Category:Developer resources]]
[[Category:Application Developer]]
+

Latest revision as of 12:14, 19 July 2009

Contents

[edit] MokoMakefile

Das MokoMakefile ist ein wertvolles Tool um neuen Entwicklern möglichst schnell eine einheitliche Entwicklungsumgebung an die Hand zu geben. Es garantiert die einfache Reproduzierbarkeit und Wartung der Entwicklungsumbgebung ähnlich wie OpenEmbedded eine generelle Plattform zur Entwicklung von Embedded-Distributionen darstellt.

Hinweis:

  • Das MokoMakefile ist kein Ersatz für bitbake, SVN, monotone, OpenEmbedded, qmake und dergleichen. Es dient vielmehr als Rahmen für die einfache Wartung und Instandhaltung einer Entwicklungsumgebung die den Regeln des Openmoko-Projekts entspricht.
  • Die Entwicklungsumgebung benötigt ca. 7GB Festplattenspeicher
  • MokoMakefile wird von Rod Whitby entwickelt und ist kein offizielles Produkt von Openmoko. Sollte es Widersprüche bzw. Probleme zwischen der offiziellen Build Openmoko Anleitung (eng) und der MokoMakefile selbst geben gilt die offizielle Anleitung als Standard.


[edit] Vor dem Start

Stelle sicher dass der Befehl /bin/sh (ls -l /bin/sh) nicht mit dash sondern bash verlinkt ist. Mit dash wird's keinen Spass machen!

Falls du bereits mit dash (als /bin/sh) gearbeitet haben solltes ist die Perl-Komponente vermutlich defekt. Indizien dafür sind:

  • Das Build-System wirft wegen einem 'Unterminated quote string' eine Fehlermeldung aus
  • Die Fehlermeldung 'You haven't done a "make depend" yet!'

Sollte eine dieser Fehlermeldung auftreten sind folgende Schritte notwendig: make clean-package-perl make clean-package-perl-native mit anschließendem Rebuild.

Sollte alles nichts helfen dann bleibt nur noch ein 'rm -rf' auf das Perl-Verzeichnis und die Perl-Projektstempel loszulassen. Hier ein Beispiel für einen i686-Rechner: rm -rf build/tmp/work/i686-linux/perl-native-5.8.7-r3 rm -f build/tmp/stamps/i686-linux/perl*

[edit] Installation

So läufts:

1 - Überprüfe ob dein Rechner den folgenden Anforderungen entspricht:

http://wiki.openembedded.net/index.php/OEandYourDistro

2 - Erstelle das $OMDIR Verzeichnis:

mkdir /home/moko ; cd /home/moko

3 - Hole das MokoMakefile:

wget http://www.rwhitby.net/files/openmoko/Makefile

4 - Die Entwicklungsumgebung erstellen:

make setup

5 - Mit dem kompilieren anfangen (bevor du mit dem langen Kompilierprozess anfängst solltest du dich in der Tips-Sektion darüber schlau machen wie man Multicore aktiviert):

make openmoko-devel-image


Das Makefile erstellt die Ordnerstruktur wie sie in Openmoko2007.2 vorgegeben ist, lädt die benötigten Programme (von den richtigen Quellen und in der richtigen Version) herunter und fängt sofort an das Image zu bauen.

Danach kannst du das MokoMakefile dazu verwenden nachträgliche Builds laufen zu lassen oder im build-Verzeichnis mit bitbake die einzelnen Schritte durchführen.

[edit] Entwicklungsumgebung updaten

Zur einfachen Wartung der Entwicklungsumgebung stehen folgende Befehle zur Verfügung:

1 - Um das MokoMakfile auf die neuste Version zu bringen: make update-makefile

2 - Um den Paket-Pool zu aktualisieren und die entsprechenden Patches herunterzuladen: make update

3 - Um sicherzustellen dass kürzlich vorgenommene Änderungen an der Build-Verzeichnisstruktur übernommen wurden: make setup

Eine Möglichkeit ein neues Image mit den aktuellen Updates zu bauen: make update-makefile && make update && make setup && make openmoko-devel-image


[edit] Fehler melden

Überprüfe, ob der Fehler wiederholt auftritt und reproduzierbar ist: make update-makefile ; make update ; make setup

danach: make clean-package-<foo>

(<foo> ist der Name des defekten Pakets)

danach: make all

Wenn der Fehler nach dem diese Sequenz zum dritten Mal in Folge durchlaufen wurde auftritt, bitte bei rwhitby in #openmoko IRC melden.

[edit] Work-arounds

Work-arounds für vorübergehende oder isolierte Probleme können auf der Diskussions-Seite gefunden bzw hinzugefügt werden. Wenn das Problem behoben wurde wird das entsprechende Work-around entfernt.


[edit] Tips

  • Die Menge an benötigten Festplattenspeicher kann durch hinzufügen folgender Zeile in der 'local.conf' (idR /home/moko/build/conf/local.conf) erheblich verringert werden:

INHERIT += "rm_work" Diese Einstellung bewirkt dass der Inhalt jedes build/tmp/work/*/<package>-Verzeichnisses gelöscht wird wenn das Packet erfolgreich erstellt wurde.

  • Sollte ein Fehler im Zusammenhang mit Monotone auftreten der in etwa so aussieht:

mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema Muss OE.mtn mit dem folgendem Befehl, ausgeführt in /home/moko geupdated werden: mtn --db OE.mtn db migrate

  • Sollte ein Paket wegen eines kaputten Downloads etc nicht kompiliert werden können hilft es normalerweise wenn man die Quellen löscht und es per Hand versucht:

rm sources/<package>* cd build . ../setup-env bitbake -crebuild <package> danach sollte der Build-Vorgang wieder normal ablaufen

  • Für Maschinen mit mehreren Prozessoren (bzw Dual-Core) sollten diese zwei Zeilen in der local.conf das ganze etwas beschleunigen:

PARALLEL_MAKE = "-j 4" BB_NUMBER_THREADS = "4"

Sollte der Rechner das nicht verkraften kann man die Werte auch verringern.


[edit] QEMU

Das MokoMakefile unterstützt jetzt auch das automatische Kompilieren, Flashen und Starten des neuen Neo1973 Emulators (eng - basierend auf QEMU).

make qemu

kompiliert qemu-neo1973, lädt die neusten offiziellen Openmoko-Images herunter, brennt sie in den virtuellen NAND-Speicher und startet den Emulator. Die Makefiles müssen trotzdem wie oben beschrieben installiert werden


Weitere make-Ziele sind:

  • Lädt die aktuellen Official-Images herunter:

make download-images

  • Images in den virtuellen Speicher flahen:

make flash-qemu-official

  • Die lokal erzeugten Images in den Emulator-Speicher flashen:

make flash-qemu-local

  • Den Emulator starten

make run-qemu bzw make run-qemu-snapshot

Hinweis: Die Pakete "lynx" und "netpbm" müssen auf dem Build-Rechner installiert sein bevor der Emulator gestartet werden kann.

Weitere Informationen über QEMU gibt es in der Sektion Openmoko unter QEMU (eng)

[edit] Entwickeln mit MokoMakefile

Um im Pakete-Pool Veränderungen zu übernehmen, kompiliern und in QEMU einzuspielen benötigt man folgende Befehle:

  • Übernehmen

cd /home/moko/openmoko quilt new beschreibender-name.patch quilt add trunk/src/Name-der-zu-ändernden-Datei (Schritte für jede geänderte Datei wiederholen) ...Änderungen JETZT machen... quilt refresh (Erstellt eine neue Datei in /home/moko/patches/openmoko-HEAD/ und aktualisiert die quilt-Serien)

  • Kompilieren und in QEMU einspielen:

make build-qemu make flash-qemu-local make run-qemu


[edit] Anhang

Project page:

Personal tools

MokoMakefile

Das MokoMakefile ist ein wertvolles Tool um neuen Entwicklern möglichst schnell eine einheitliche Entwicklungsumgebung an die Hand zu geben. Es garantiert die einfache Reproduzierbarkeit und Wartung der Entwicklungsumbgebung ähnich wie OpenEmbedded eine generelle Plattform zur Entwicklung von Embedded-Distributionen darstellt.

Hinweis:

  • Das MokoMakefile ist kein Ersatz für bitbake, SVN, monotone, OpenEmbedded, qmake und dergleichen. Es dient vielmehr als Rahmen für die einfache Wartung und Instandhaltung einer Entwicklungsumgebung die den Regeln des Openmoko-Projekts entspricht.
  • Die Entwicklungsumgebung benötigt ca. 7GB Festplattenspeicher
  • MokoMakefile wird von Rod Whitby entwickelt und ist kein offizielles Produkt von Openmoko. Sollte es Widersprüche bzw. Probleme zwischen der offiziellen Build Openmoko Anleitung (eng) und der MokoMakefile selbst geben gilt die offizielle Anleitung als Standard.


Vor dem Start

Stelle sicher dass der Befehl /bin/sh (ls -l /bin/sh) nicht mit dash sondern bash verlinkt ist. Mit dash wird's keinen Spass machen!

Falls du bereits mit dash (als /bin/sh) gearbeitet haben solltes ist die Perl-Komponente vermutlich defekt. Indizien dafür sind:

  • Das Build-System wirft wegen einem 'Unterminated quote string' eine Fehlermeldung aus
  • Die Fehlermeldung 'You haven't done a "make depend" yet!'

Sollte eine dieser Fehlermeldung auftreten sind folgende Schritte notwendig: make clean-package-perl make clean-package-perl-native mit anschließendem Rebuild.

Sollte alles nichts helfen dann bleibt nur noch ein 'rm -rf' auf das Perl-Verzeichnis und die Perl-Projektstempel loszulassen. Hier ein Beispiel für einen i686-Rechner: rm -rf build/tmp/work/i686-linux/perl-native-5.8.7-r3 rm -f build/tmp/stamps/i686-linux/perl*

Installation

So läufts:

1 - Überprüfe ob dein Rechner den folgenden Anforderungen entspricht:

http://www.openembedded.org/wiki/OEandYourDistro

2 - Erstelle das $OMDIR Verzeichnis:

mkdir /home/moko ; cd /home/moko

3 - Hole das MokoMakefile:

wget http://www.rwhitby.net/files/openmoko/Makefile

4 - Die Entwicklungsumgebung erstellen:

make setup

5 - Mit dem kompilieren anfangen (bevor du mit dem langen Kompilierprozess anfängst solltest du dich in der Tips-Sektion darüber schlau machen wie man Multicore aktiviert):

make openmoko-devel-image

Das Makefile erstellt die Ordnerstruktur wie sie in Openmoko2007.2 vorgegeben ist, lädt die benötigten Programme (von den richtigen Quellen und in der richtigen Version) herunter und fängt sofort an das Image zu bauen.

Danach kannst du das MokoMakefile dazu verwenden nachträgliche Builds laufen zu lassen oder im build-Verzeichnis mit bitbake die einzelnen Schritte durchführen.

Entwicklungsumgebung updaten

Zur einfachen Wartung der Entwicklungsumgebung stehen folgende Befehle zur Verfügung:

1 - Um das MokoMakfile auf die neuste Version zu bringen:

  make update-makefile 

2 - Um den Paket-Pool zu aktualisieren und die entsprechenden Patches herunterzuladen:

  make update

3 - Um sicherzustellen dass kürzlich vorgenommene Änderungen an der Build-Verzeichnisstruktur übernommen wurden:

  make setup 

Eine Möglichkeit ein neues Image mit den aktuellen Updates zu bauen:

  make update-makefile && make update && make setup && make openmoko-devel-image


Fehler melden

Überprüfe, ob der Fehler wiederholt auftritt und reproduzierbar ist:

make update-makefile ; make update ; make setup

danach:

make clean-package-<foo>

(<foo> ist der Name des defekten Pakets)

danach:

make all

Wenn der Fehler nach dem diese Sequenz zum dritten Mal in Folge durchlaufen wurde auftritt, bitte bei rwhitby in #openmoko IRC melden.

Work-arounds

Work-arounds für vorübergehende oder isolierte Probleme können auf der Diskussions-Seite gefunden bzw hinzugefügt werden. Wenn das Problem behoben wurde wird das entsprechende Work-around entfernt.


Tips

  • Die Menge an benötigten Festplattenspeicher kann durch hinzufügen folgender Zeile in der 'local.conf' (idR /home/moko/build/conf/local.conf) erheblich verringert werden:
  INHERIT += "rm_work"

Diese Einstellung bewirkt dass der Inhalt jedes build/tmp/work/*/<package>-Verzeichnisses gelöscht wird wenn das Packet erfolgreich erstellt wurde.

  • Sollte ein Fehler im Zusammenhang mit Monotone auftreten der in etwa so aussieht:
  mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema

Muss OE.mtn mit dem folgendem Befehl, ausgeführt in /home/moko geupdated werden:

  mtn --db OE.mtn db migrate
  • Sollte ein Paket wegen eines kaputten Downloads etc nicht kompiliert werden können hilft es normalerweise wenn man die Quellen löscht und es per Hand versucht:
rm sources/<package>*
cd build
. ../setup-env
bitbake -crebuild <package>

danach sollte der Build-Vorgang wieder normal ablaufen

  • Für Maschinen mit mehreren Prozessoren (bzw Dual-Core) sollten diese zwei Zeilen in der local.conf das ganze etwas beschleunigen:
PARALLEL_MAKE = "-j 4"
BB_NUMBER_THREADS = "4"

Sollte der Rechner das nicht verkraften kann man die Werte auch verringern.


QEMU

Das MokoMakefile unterstützt jetzt auch das automatische Kompilieren, Flashen und Starten des neuen Neo1973 Emulators (eng - basierend auf QEMU).

make qemu

kompiliert qemu-neo1973, lädt die neusten offiziellen Openmoko-Images herunter, brennt sie in den virtuellen NAND-Speicher und startet den Emulator. Die Makefiles müssen trotzdem wie oben beschrieben installiert werden


Weitere make-Ziele sind:

  • Lädt die aktuellen Official-Images herunter:
make download-images
  • Images in den virtuellen Speicher flahen:
make flash-qemu-official
  • Die lokal erzeugten Images in den Emulator-Speicher flashen:

make flash-qemu-local

  • Den Emulator starten
make run-qemu 

bzw

 make run-qemu-snapshot

Hinweis: Die Pakete "lynx" und "netpbm" müssen auf dem Build-Rechner installiert sein bevor der Emulator gestartet werden kann.

Weitere Informationen über QEMU gibt es in der Sektion Openmoko unter QEMU (eng)

Entwickeln mit MokoMakefile

Um im Pakete-Pool Veränderungen zu übernehmen, kompiliern und in QEMU einzuspielen benötigt man folgende Befehle:

  • Übernehmen
cd /home/moko/openmoko
quilt new beschreibender-name.patch
quilt add trunk/src/Name-der-zu-ändernden-Datei
 (Schritte für jede geänderte Datei wiederholen)
...Änderungen JETZT machen...
quilt refresh
(Erstellt eine neue Datei in /home/moko/patches/openmoko-HEAD/ und 
aktualisiert die quilt-Serien)
  • Kompilieren und in QEMU einspielen:
make build-qemu
make flash-qemu-local
make run-qemu


Anhang

Project page: http://mokomakefile.projects.openmoko.org/