CyanogenMod für Nexus 4 (mako) auf Debian oder Ubuntu (x64) kompilieren

  • 100 Antworten
  • Letztes Antwortdatum
Man kann natürlich auch die entsprechenden Dateien vorher vom Gerät ziehen, nach /home/user/cmod/vendor/lge/mako/proprietary kopieren und dann
Code:
./home/user/cmod/device/lge/mako/setup-makefiles.sh
ausführen.

Mehr macht das Script im Endeffekt auch nicht.
 
Zuletzt bearbeitet von einem Moderator:
finnq schrieb:
Bitte unterlasst weitere Diskussionen zu diesem Thema. Ich werde die Anleitung heute Abend noch etwas überarbeiten/berichtigen.

Gesendet von meinem Nexus 4 mit Tapatalk 2

Noch eine Frage: Wenn ich den ccache nutzen möchte, aber ein make clean durchführe, dann ist doch der cache unnütz, oder?
 
Zuletzt bearbeitet von einem Moderator:
Installier mal das Paket "ccache" via apt.

Anschließend kannst du mal mit
Code:
ccache -s
den aktuellen Cache anschauen. Ein "make clean" und "make installclean" änder da nichts. :)
 
  • Danke
Reaktionen: Jensemann1969
Also habe alles nochmals von vorne nach Anleitung gemacht und das hier kommt:

jt@ubuntu:~/cmod$ repo sync -j 8
Fetching projects: 100% (352/352), done.

jt@ubuntu:~/cmod$ . build/envsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/armv7-a/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
jt@ubuntu:~/cmod$ lunch cm_mako

Invalid lunch combo: cm_mako

Dadurch geht auch nichts vom Device holen..
 
Sorry hatte die Bezeichnung falsch angegeben. Mach nur lunch und wähle das Gerät dann manuell aus.

Gesendet von meinem Nexus 4 mit Tapatalk 2
 
Eine Frage habe ich noch: wie kann ich mir die Zeiten am Ende des Vorgangs (brunch mako) anzeigen lassen? Bei Jenkins steht am Ende dann immer sowas:
real 10m23.729s
user 78m46.055s
sys 7m0.314s

Wenn ich das noch angeben kann, kann ich auch prüfen, ob ccache bei mir läuft. Da scheint es noch immer Probleme zu geben...

Ansonsten: Anleitung prima, läuft super. :smile: Was bei mir - zusätzlich - immer gemacht werden musste, war das Java SDK zu installieren. Dazu gibt es hier eine gute Anleitung. Die passt auch für Debian.

Edit 1: Ok, hätte ich etwas mehr Ahnung von Linux... Für alle, die das auch wissen möchten: Der Befehl heißt 'time'. Also time brunch mako
Edit 2: ccache scheint zu funktionieren. Jedenfalls dauert es trotz make clean && make inststallclean nur 20 Minuten. Und im Cache sind ca. 4.4 GB
 
Zuletzt bearbeitet:
Also bei mir dauert des Kompilieren nach einem make clean zwei Stunden statt der üblichen 15 Minuten :crying:
Und ja, CCACHE ist an.
 
Der_Schubi schrieb:
Also bei mir dauert des Kompilieren nach einem make clean zwei Stunden statt der üblichen 15 Minuten :crying:
Und ja, CCACHE ist an.

und was sagt:
# ccache -s
 
Code:
cache hit (direct)                     0
cache hit (preprocessed)            1148
cache miss                         57691
called for link                     4660
compile failed                         2
preprocessor error                     2
unsupported source language         7698
unsupported compiler option          464
no input file                       2287
files in cache                      1476
cache size                         857.4 Mbytes
max cache size                     976.6 Mbytes
 
Der Cache ist viel zu klein. So sieht das bei mir aus:

Code:
$ ccache -s
cache hit (direct)                     0
cache hit (preprocessed)           19180
cache miss                         19248
called for link                     2990
unsupported source language         4947
unsupported compiler option          278
no input file                        548
files in cache                     38496
cache size                           4.4 Gbytes
max cache size                      20.0 Gbytes
 
Ich hab das nicht eingestellt :D
Und wie gesagt, ohne make clean dauerts nur 1/8 der Zeit...
 
@andry: Kannst Du mir kurz verraten, von wo und an welcher Stelle das Script aufgerufen werden soll? Bei mir kommt immer eine Fehlermeldung:
Code:
cp: Aufruf von stat für „cm10.zip“ nicht möglich: Datei oder Verzeichnis nicht gefunden

Der Franco-Kernel wird geladen, aber dann passiert nichts mehr. :confused2:
 
Steht doch eindeutig da ;). Deine ROM heißt nicht cm10.zip. Schau mal nach wie der Name ist und gib den statt cm10.zip als Startparameter an.

P.S.: Lunch Kommando in der Aneleitung gefixt. Jetzt sollte alles passen.
 
  • Danke
Reaktionen: Jensemann1969
Der_Schubi schrieb:
Code:
cache hit (direct)                     0
cache hit (preprocessed)            1148
cache miss                         57691
called for link                     4660
compile failed                         2
preprocessor error                     2
unsupported source language         7698
unsupported compiler option          464
no input file                       2287
files in cache                      1476
cache size                         857.4 Mbytes
max cache size                     976.6 Mbytes

Hier findest du, wie man den ccache vergrößern kann. sudo nicht vergessen...
Habs aber noch nicht auspropiert, wie lange es dauert mit vergrößertem chache.
CCACHE(1)
 
  • Danke
Reaktionen: Der_Schubi
Habe die Erweitung des Caches mal mit aufgenommen und außerdem clean/installclean durch clobber ersetzt, da ich das Gefühl habe, dass make clobber den Kernel in Ruhe lässt, während der sonst immer neu kompiliert wird am Anfang.
Das ist sowieso kein Kernel, der sich ständig ändert, sondern einfach der stock Kernel. :)


Wie lange braucht ihr etwa für ein sauberes Build? Bei mir sind es 68 Minuten auf einer VM (hohe CPU Prio., 4GB RAM ohne DE) eines ESXi Servers, der noch ein aktives Lync-System laufen hat.
 
Zuletzt bearbeitet:
Was bedeutet sauber? make clobber?
 
Genau, hab nach clobber gemessen mit time. Real sinds ~68 Minuten.
 
Clobber löscht den ganzen out Ordner. Clean nicht. Also macht clobber alles sauber und clean nicht alles. Was genau schau ich nach, wenn ich zu Hause bin.

Gesendet von meinem Nexus 4 mit Tapatalk 2
 
Clean macht den auch leer, aber das installclean danach erstellt wieder ein paar Verzeichnisse in "out".

Im cleanbuild Makefile steht was interessantes zu installclean:

# The files/dirs to delete during an installclean. This includes the
# non-common APPS directory, which may contain the wrong resources.
#
# Deletes all of the files that change between different build types,
# like "make user" vs. "make sdk". This lets you work with different
# build types without having to do a full clean each time. E.g.:
#
# $ make -j8 all
# $ make installclean
# $ make -j8 user
# $ make installclean
# $ make -j8 sdk
#
 
Zuletzt bearbeitet:
andry schrieb:
Wie lange braucht ihr etwa für ein sauberes Build? Bei mir sind es 68 Minuten auf einer VM (hohe CPU Prio., 4GB RAM ohne DE) eines ESXi Servers, der noch ein aktives Lync-System laufen hat.

VM mit 8 Kernen, 16GB RAM und CCACHE=5GB: ca. 21 Minuten.

Zum Vergleich:
export USE_CCACHE=0
Code:
real    45m2.773s
user    276m39.709s
sys     26m40.304s
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: andry

Ähnliche Themen

tilo140380
Antworten
1
Aufrufe
2.242
tilo140380
tilo140380
tilo140380
Antworten
2
Aufrufe
2.418
tilo140380
tilo140380
J
  • josephjean
Antworten
0
Aufrufe
2.346
josephjean
J
Zurück
Oben Unten