[Tutorial] Wie erstellt man ein ROM aus den Sourcen (AOSP, CM, AOKP, AOSPA usw...)

  • 197 Antworten
  • Letztes Antwortdatum
hast du das zeug evtl. schon runtergeladen so das nicht mehr benötigt wird?

breakfast:
You may not ever use this command, but in order to explain brunch, we have to explain breakfast first. Breakfast is a function used to configure your build. It keeps track of a list of officially-supported devices to build for, and allows you to choose one. You can do this two ways,

ist den /device/lge/hammerhead vorhanden?

wenn ja propertiäre blobs entpacken oder mit dem local_manifest runterladen ("muppets")
und mal schaun was brunch sagt (ich hab schon länger nichts mehrt mit cm gemacht, zuletzt als cm-10.2 akutell war)

....
Prepare the device-specific code
Add a comment to this section
After the source downloads, ensure you are in the root of the source code (cd ~/android/system), then type:

$ source build/envsetup.sh
$ breakfast hammerhead

This will download the device specific configuration and kernel source for your device. An alternative to using the breakfast command is to build your own local manifest. To do this, you will need to locate your device on CyanogenMod's GitHub and list all of the repositories defined in cm.dependencies in your local manifest.

Helpful Tip– Errors during breakfast

Different maintainers setup their device inheritance rules differently. Some require a vendor directory to be populated before breakfast will even succeed. If you receive an error here about vendor makefiles, then jump down to the next section Extract proprietary blobs. The first portion of breakfast should have succeeded at pulling in the device tree and the extract blobs script should be available. After completing that section, you can rerun breakfast hammerhead
....

How To Build CyanogenMod Android for Google Nexus 5 ("hammerhead") - CyanogenMod
 
@vetzki @fromfuture habt ihr die muppets in der manifest am laufen?
Falls ja, würde mich die Zeile interessieren.

Bei mir haute es nicht hin, repo error o.ä., musste auf lge-devs ausweichen.

@xz1c der ccache wächst mit der Zeit bzw. während compiled wird. Nach gut 8h, kurz vor dem Ende hatte ich ca. 8.6G
 
Ne so richtig läuft es noch nicht durch. Habe aber auch erst gestern das Nexus 5 bekommen von wegen Vendor ziehen etc. Aber theoretisch sollte es ja auch ohne gehen.
 
  • Danke
Reaktionen: fromfuture
@mratix alles klar kann ich wenn ich nachher wieder zuhause in potsdam bin ja gleich mal nachsehen da mein build ja noch durch lief (mit erfolg) meine mitbewohnerin hat mich extra angerufen um bescheid zu sagen.
Aber mein Lösungsweg scheint mir so...
Ich weiß nicht er hat funktioniert aber richtig wäre es doch glaube ich anders gewesen. Hat vielleicht da jemand ne Idee??
 
Das ist nun der Fehler.

The present kernel configuration has modules disabled.
Type 'make config' and enable loadable module support.
Then build a kernel with module support enabled.

Nur wenn ich make config eingebe kann ich nichts einschalten.
local_manifest sieht jetzt so aus:


<manifest>
<project name="Cyanogenmod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" revision="cm-12.1" />
<project name="lg-devs/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1" />
</manifest>
 
make menuconfig (mit ARCH=arm und k.a. ob wirklich nöitg SUBARCH=arm, bzw. falls 64bit arm64 )

oder einfach in der config folgendes ändern:
# CONFIG_MODULES is not set
in z.b.
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set


Das propertiäre vendor zeug kann man (zumindest fürs nexus) auch einfach von der factory image seite von google runterladen (aber achtung soweit ichs in erinnerung habe hat cm alles in einem ordner und in /device/... ist eine andere mk datei eingetragen)
 
  • Danke
Reaktionen: fromfuture
@fromfuture ich hatte das problem auch schonmal und habe es nur lösen können indem ich folgendes eingegeben habe. Bedenke bei dir heißt sicher der ordner des Kernels etwas anders:
Code:
make -C kernel/sony/msm8974 menuconfig

EDIT: kannst ja danach mal bescheid geben ob bzw wie du es nun gelöst hast. Gibt ja auch immer einige die mitlesen und die interessiert es vielleicht auch, mal ganz abgesehen von mir :D

@mratix
@xz1c der ccache wächst mit der Zeit bzw. während compiled wird. Nach gut 8h, kurz vor dem Ende hatte ich ca. 8.6G
In der tat :D es sind nun geschlagen 10 G geworden nach dem (ota) build. An der Stelle möchte ich nochmal Danke an alle sagen, und an dich besonders!
Was ich allein in den letzten 7 Tagen schon gelernt habe bzw verstanden habe ist ungefähr genauso viel von der menge wie ich in dem ganzen letzten jahr gelernt habe, aber halt in einer Woche :D
Also wirklich fettes Danke, da es dafür ja keinen button gibt. Ich finde es echt cool das du dir auch immer die Zeit und mühe machst das ganze zu "testen" und drüber zu Philosophieren.
Dabei muss ich nun nochmal auf dein Ursprüngliches Problem zurück kommen und fragen, hast du denn nun die TheMuppets repoś integriert bekommen??
Ich werde jetzt mal versuchen sie in meinem manifest zu zu fügen und mal schauen..hast du denn eigentlich mal versucht irgendeine andere repo von denen mit rein zu nehmen oder bisher immer nur die 3 oder 4 die du brauchst?
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: mratix und fromfuture
@mratix hau das in deinen local manifests ordner und dann sync
bei mir hauts hin ;)

und ich nehme zwar an du hast es inzwischen bemerkt aber mir ist beim studieren deiner "custom-rom.txt" datei aufgefallen das du versucht hast nach dem init der build umgebung mit
#breakfast brunch
weiter zu machen, aber da musst du entweder breakfast oder brunch eingeben genauer genommen erst das frühstück und danach gehts mit brunch weiter ;)

KORREKTUR: ändere die zeile project path in:"vendor/lge" statt vendor/lge/d802 denn die gesamte repo heißt vendor_lge und behinhaltet alle vendor blobs für lge geräte (also auch inclusive deiner g2-common) daher brauchst du nur die eine Zeile und halt die deklaration des remoteś
 

Anhänge

  • themuppets-vendor.xml.zip
    314 Bytes · Aufrufe: 99
Zuletzt bearbeitet:
  • Danke
Reaktionen: mratix
Hallo zusammen,

hab mich mit dem Thema kernelconfig nur oberflächlich und am Rande beschäftigt. Daher... purer Gedankenaustausch. Verbessert mich einfach.

Müsste da, nach einem make blabla nicht ein make clean, make clobber od.. etwas i.d.A. folgen? Beim zweiten Anlauf.

@xz1c du hattest mal das ganze /kernel gelöscht und neu gesynced. Käme dem Schritt mit clean und aufräumen ungefähr hin.

Die mitgegebenen Parameter wie ARCH etc. für module ggf. auch kernel? sollten doch irgendwo aus der deviceconfig/devicetemplate (oder wie das Teil heißt) bezogen werden?

@fromfuture wieso holst du den kernel von lge-devs? Im CM-Baum ist er doch drinnen. Evtl. angepasst od. vorkonfiguriert?
Bei mir fragt es das ganze kernel-config-Zeugs gar nicht ab. Und macht es trotzdem. Nur so als Idee.
Aber Nexus ist halt etwas anders. Viel leichter, zumindest lt. Doku. Da hat @vetzki Recht, die precompiled Sachen hab ich mal gesehen. Bin mir jetzt nicht sicher ob es nur für AOSP war.
 
Ich hatte das irgendwo gelesen. Dann werfe ich den Kernel mal raus und lege nur die Vendor Geschichte in das Local_manifest
 
Müsste da, nach einem make blabla nicht ein make clean, make clobber od.. etwas i.d.A. folgen? Beim zweiten Anlauf.

korrekt. :D hab ich vergessen das ja vorher bereits ein build gestartet wurde
also kommt zuerst
#make clean/ make clobber
#make -C [kernel/path/] menuconfig

@xz1c du hattest mal das ganze /kernel gelöscht und neu gesynced. Käme dem Schritt mit clean und aufräumen ungefähr hin.

stimmt zwar aber hat das allein glaube ich nicht gereicht.. aber seis drum daran will ich mich garnicht weiter festhalten, sag mir lieber ob die xml dir deine TheMuppets blobs syncd?! Gehe ja nicht davon aus das das schon durch ist da meiner auch noch dabei ist :D

[doublepost=1449435102,1449434979][/doublepost]
@fromfuture
Ich hatte das irgendwo gelesen. Dann werfe ich den Kernel mal raus und lege nur die Vendor Geschichte in das Local_manifest

oder du lässt es erstmal weg also fügst die vendor geschichte nicht ins manifest ein sondern gibst
breakfast [dein gerat] ein und gehst dann in deinen device ordner und
./extract-files.sh mit angeschlossenem gerät und adb + debug

EDIT: falls du nun doch bereits versucht hast den kernel per menuconfig zu konfigurieren, musst du evtl bevor alles klappt nochmal
. build/envsetup.sh
make -C [kernel/location] mrproper
eingeben damit keine dateien von vorher den vorgang stören.
 
xz1c schrieb:
@mratix hau das in deinen local manifests ordner und dann sync
bei mir hauts hin
Danke werd ich mal testen. Bin gerade auf crdroid und 6.0.

Ja, richtig. Den vendor-Baum hab ich komplett geladen. Nicht nur d802+common. Da gab es ja das Problem einzelne Verzeichnisse aus dem Projekt zu picken. Wahrscheinlich pure deklarationsgeschichte. Und Muppets hatte da gestreikt. Seitdem nicht mehr geändert.
 
@mratix jo weil es die beiden nicht einzeln in deren repos gibt.
was du versucht hast wäre vergleichbar damit eine einzelne datei aus der repo synchronisieren zu wollen daher der error :D

Danke werd ich mal testen. Bin gerade auf crdroid und 6.0.
sag bescheid wenn du nen marshmallow build lauffähig bekommst
da bin ich nämlich immernoch nicht weiter als die preview version also ohne sim kram etc und somit unbrauchbar.

und dann mal ne andere frage ich habe ja wie erwähnt deine "custom-rom.txt" mal genauer studiert und dabei ist mir das ins auge gestochen
Code:
# repo backup
rsync --stats --progress --numeric-ids -aAhHSP ../system/ /media/filebase/_android/cm/
rsync --stats --progress --numeric-ids -aAhHSPc ../system/ /media/filebase/_android/cm/
könntest du so lieb sein mir das etwas erläutern?
jedenfalls den teil bis ../system/media/filebase/_android/cm/ weil ich annehme dass das dein Pfad zum cm Tree ist. Weil son Backup meines Source Trees (also ohne versionskontrolle ) wäre doch sehr interessant für mich.
 
Zuletzt bearbeitet:
Das ist der pendant zum einfachen filecopy und macht ein 1:1 backup vom workspace ~/android/system/*. Inkl Besitzer, Dateirechte, Symlinks und trallala.

In eine Richtung ist es nur Backup. Dreht man es aber um (Quelle/Ziel) hat man ein Restore und kann "das verbockte" schnell wieder geradebiegen.

Beim Restore kann man sich ein paar Optionen sparen. Probiers einfach mal aus
Code:
rsync --help

Unter Windows gibts das Tool: robocopy, ist genauso mächtig. Nicht nur zum einfachen synchronisieren.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: xz1c
Unter Windows gibts das Tool: robocopy, ist genauso mächtig. Nicht nur zum einfachen synchronisieren.
nette info aber (für mich) völlig latte, da ich windows nicht mehr nutze :D dennoch danke.

Und unter "trallala" nehme ich an zählt bspw. auch Speichermenge bzw Platz bedarf,korrekt?

edit:

--help seiten sind für mich immer schwierig aber kriege ich hin, aber
Code:
-aAhHSP -aAhHSPc

Wenn du mir die beiden evtl entschlüsseln könntest wäre das ein traum kurz und knapp am besten in ein zwei worten das reicht mir schon,damit kann ich manchmal mehr anfangen als mit den (teilweise) umständlichen linux erklärungen :D
 
Zuletzt bearbeitet:
xz1c schrieb:
Code:
--stats --progress --numeric-ids -aAhHSP quelle ziel
Mit einfachen Worten ist es eine 1:1 copy. Damit kann man ein ganzes Linuxsystem von A nach B kopieren und es wäre lauffähig.

--help gibt dir Auskunft zu den Optionen (einzelne Buchstaben)

OT: ein einfaches copy wäre (aus Kopfmemory):
Code:
rsync -avz quelle ziel
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: xz1c
Ich mal wieder.
Also ich habe nun mit menuconfig die Einträge passend gemacht.
Dann wieder gestartet und er sagt mir Ich soll mrproper machen.
Nur wenn ich das mache sind die Änderungen auch weg. Also geht die Modul Sache wieder los.

Ich hatte den Kernel gelöscht und neu gesynct. Nur noch die Vendor in der Local_manifest. Aber immer zickt der Kernel
 
du musst die änderung in der defconfig machen bzw. übernehmen oder eine neue erstellen
 

Ähnliche Themen

cehuisken
  • cehuisken
Antworten
1
Aufrufe
883
Andy
Andy
D
Antworten
0
Aufrufe
2.520
Defier
D
E
Antworten
4
Aufrufe
2.204
Kardroid
Kardroid
Zurück
Oben Unten