Probleme beim Aufsetzen eines Build-Environments

ui_3k1

ui_3k1

Gesperrt
197
Hallo,

ich bin ein wenig am Verzweifeln.

Ich habe mein building environment auf meinem 64 Bit System mit Ubuntu 13.10 nach dieser Anleitung eingerichtet.
Nach dieser Anleitung versuche ich einen Kernel für das S2 (i9100) zu kompilieren.

Die Terminalaus- bzw. eingabe:

Code:
martin@lenmar:~$ cd /home/martin/android_kernel_samsung_smdk4412/
martin@lenmar:~/android_kernel_samsung_smdk4412$ export ARCH=arm
martin@lenmar:~/android_kernel_samsung_smdk4412$ export SUBARCH=arm
martin@lenmar:~/android_kernel_samsung_smdk4412$ CROSS_COMPILE=/home/martin/android_toolchain/arm-eabi-4.6/bin/arm-eabi-
martin@lenmar:~/android_kernel_samsung_smdk4412$ make i9100_defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/lex.zconf.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
arch/arm/mach-exynos/Kconfig:875:warning: choice value used outside its choice group
arch/arm/mach-exynos/Kconfig:877:warning: defaults for choice values not supported
***
*** Can't find default configuration "arch/arm/configs/i9100_defconfig"!
***
make[1]: *** [i9100_defconfig] Fehler 1
make: *** [i9100_defconfig] Fehler 2
martin@lenmar:~/android_kernel_samsung_smdk4412$ make menuconfig 
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
  HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  HOSTCC  scripts/kconfig/lxdialog/menubox.o
  HOSTCC  scripts/kconfig/lxdialog/textbox.o
scripts/kconfig/lxdialog/textbox.c: In function ‘print_line’:
scripts/kconfig/lxdialog/textbox.c:323:9: warning: variable ‘x’ set but not used [-Wunused-but-set-variable]
  int y, x;
         ^
scripts/kconfig/lxdialog/textbox.c:323:6: warning: variable ‘y’ set but not used [-Wunused-but-set-variable]
  int y, x;
      ^
  HOSTCC  scripts/kconfig/lxdialog/util.o
  HOSTCC  scripts/kconfig/lxdialog/yesno.o
  HOSTCC  scripts/kconfig/mconf.o
  HOSTLD  scripts/kconfig/mconf
scripts/kconfig/mconf Kconfig
arch/arm/mach-exynos/Kconfig:875:warning: choice value used outside its choice group
arch/arm/mach-exynos/Kconfig:877:warning: defaults for choice values not supported
#
# using defaults found in /boot/config-3.11.0-15-generic
#
/boot/config-3.11.0-15-generic:1169:warning: symbol value 'm' invalid for NET_DSA
/boot/config-3.11.0-15-generic:1552:warning: symbol value 'm' invalid for MTD_CMDLINE_PARTS
/boot/config-3.11.0-15-generic:2244:warning: symbol value 'm' invalid for NET_DSA_MV88E6XXX
/boot/config-3.11.0-15-generic:2245:warning: symbol value 'm' invalid for NET_DSA_MV88E6060
/boot/config-3.11.0-15-generic:2247:warning: symbol value 'm' invalid for NET_DSA_MV88E6131
/boot/config-3.11.0-15-generic:2248:warning: symbol value 'm' invalid for NET_DSA_MV88E6123_61_65
/boot/config-3.11.0-15-generic:3380:warning: symbol value 'm' invalid for SPI_PXA2XX_PCI
/boot/config-3.11.0-15-generic:4687:warning: symbol value 'm' invalid for FB_VESA
/boot/config-3.11.0-15-generic:6696:warning: symbol value 'm' invalid for NFS_V3
/boot/config-3.11.0-15-generic:6698:warning: symbol value 'm' invalid for NFS_V4
warning: (GFS2_FS) selects DLM which has unmet direct dependencies (EXPERIMENTAL && INET && SYSFS && CONFIGFS_FS && (IPV6 || IPV6=n))
warning: (SCHED_AUTOGROUP) selects CGROUP_SCHED which has unmet direct dependencies (CGROUPS && EXPERIMENTAL)
warning: (SCSI_SRP) selects SCSI_TGT which has unmet direct dependencies (SCSI && EXPERIMENTAL)
#
# configuration written to .config
#


*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

martin@lenmar:~/android_kernel_samsung_smdk4412$ make -j 4
make: ../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: Kommando nicht gefunden
scripts/kconfig/conf --silentoldconfig Kconfig
arch/arm/mach-exynos/Kconfig:875:warning: choice value used outside its choice group
arch/arm/mach-exynos/Kconfig:877:warning: defaults for choice values not supported
warning: (GFS2_FS) selects DLM which has unmet direct dependencies (EXPERIMENTAL && INET && SYSFS && CONFIGFS_FS && (IPV6 || IPV6=n))
warning: (SCHED_AUTOGROUP) selects CGROUP_SCHED which has unmet direct dependencies (CGROUPS && EXPERIMENTAL)
warning: (SCSI_SRP) selects SCSI_TGT which has unmet direct dependencies (SCSI && EXPERIMENTAL)
warning: (GFS2_FS) selects DLM which has unmet direct dependencies (EXPERIMENTAL && INET && SYSFS && CONFIGFS_FS && (IPV6 || IPV6=n))
warning: (SCHED_AUTOGROUP) selects CGROUP_SCHED which has unmet direct dependencies (CGROUPS && EXPERIMENTAL)
warning: (SCSI_SRP) selects SCSI_TGT which has unmet direct dependencies (SCSI && EXPERIMENTAL)
make: ../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: Kommando nicht gefunden
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
  HOSTCC  scripts/genksyms/genksyms.o
  CC      scripts/mod/empty.o
/bin/sh: 1: ../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: not found
make[2]: *** [scripts/mod/empty.o] Fehler 127
make[1]: *** [scripts/mod] Fehler 2
make[1]: *** Warte auf noch nicht beendete Prozesse...
  SHIPPED scripts/genksyms/lex.c
  SHIPPED scripts/genksyms/parse.h
  Generating include/generated/mach-types.h
  SHIPPED scripts/genksyms/keywords.c
  SHIPPED scripts/genksyms/parse.c
  HOSTCC  scripts/genksyms/lex.o
  CC      kernel/bounds.s
/bin/sh: 1: ../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: not found
make[1]: *** [kernel/bounds.s] Fehler 127
make: *** [prepare0] Fehler 2
make: *** Warte auf noch nicht beendete Prozesse...
  HOSTCC  scripts/genksyms/parse.o
  HOSTLD  scripts/genksyms/genksyms
make: *** [scripts] Fehler 2
Wer kann mir sagen warum das nicht funktioniert? Ist echt schon mega frustrierend. oO
Bis dato sind alle meine Kernelbauversuche gescheitert.

Kann mir jemand einen guten Einstieg empfehlen? Mir gehts momentan erstmal nur darum die Basics zu lernen - mit Linux bzw. Ubuntu und besonders mit den Terminalbefehlen kenne ich mich auch nur gaaaaanz rudimentär aus - ist das vielleicht der Grund für mein Scheitern?

Dagegen ist das Programmieren von Apps ja Kindergeburtstag oO

Nachtrag:
Ist das Root-Verzeichnis des Kernels überhaupt der Ordner, in dem alle weiteren zum Kernel gehörenden Dateien und Unterverzeichnisse enthalten sind?

In meinem Fall..
android_kernel_samsung_smdk4412 <-- Root?
---arch
--------alpha
[...]
---block
[...]
---drivers

Nachtrag (bzw. mögliche Fehlerquelle) Nr.2:
In der Cyanogen Doku habe ich gelesen "You want to use a 64-bit version of Linux. According to Google, 32-bit Linux environment will only work if you are building older versions prior to Gingerbread (2.3.x)/CyanogenMod 7. However, as of 10.1 CyanogenMod does not build with 64bit host binaries on some systems. You will have to set something like BUILD_HOST_32bit=1 in your environment when building on such 64bit system."
Ist es möglich das der Fehler dadurch bedingt ist? Wenn ja, weiß jemand wie man das fixt? :)
 
Zuletzt bearbeitet von einem Moderator:
Code:
 make i9100_defconfig

...
*** Can't find default configuration "arch/arm/configs/i9100_defconfig"!

Die angegebene Config existiert halt nicht. Schau mal in den angegebenen Ordner (arch/arm/configs) die Config Datei heißt sicher anders. Such sie ;)

Wenn du den installierten Kernel erstellen willst, kannst du auf dem Gerät of die Datei /proc/config.gz vorfinden.
 
  • Danke
Reaktionen: ui_3k1
Vielen, vielen Dank für den Hinweis. Ein Stück weiter bin ich schon mal.. Aber komischerweise war der Build auch wieder nach wenigen Sekunden fertig. Hmm.. ich probiere es gleich nochmal.

Hast du vielleicht noch einen Tipp für mich wo ich das ganze gut nachlesen kann?

Ich will auch nicht die ganze Zeit Fragen stellen, die wahrscheinlich schon 100.000x gestellt wurden. Aber ganz ehrlich: ich tue mir bei der Suche nach "vollständigem" Lehrmaterial irgendwie sehr schwer.. Entweder ist die Anleitung unvollständig, oder fängt bei Schritt C, statt A, an. Oder die Kommentare lassen darauf schließen, dass das was der Autor geschrieben hat, nicht funktioniert.

Nachtrag:
Beim Note 3 beispielsweise steige ich schon wieder gar nicht durch. Das ist als hlte bei Cyanogen "gelistet".
Hier die Configs auf github. Welche config ist es dort?

Okay, das mit dem Note habe ich nachlesen können. Hier braucht man dem Anschein nach einen anderen Befehl bedingt durch Knox...

Aber jetzt habe ich diesen Fehler noch:
"is your Path set correctly?" -> wahrscheinlich nicht.

Jo, das mit der Toolchain wird den Fehler hervorrufen...
 
Zuletzt bearbeitet:
logs? ;)

Irgendwo war doch eine Anleitung...

Aber gib mal erst die Logs, vielleicht kann man darin sehen an was es hapert.

Edit: oben ist noch ein Fehler:
/bin/sh: 1: ../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: not found

deine Toolchain ist falsch installiert

Der ursprüngliche Beitrag von 22:48 Uhr wurde um 23:08 Uhr ergänzt:

Schau mal in den Thread: https://www.android-hilfe.de/forum/...acer-iconia-tab-a210.355232.html#post-4829777

Ist so ziemlich die einfachste Art einen Kernel zu erstellen, mit den Compilern aus den Ubuntu repos. Zum Kernel erstellen ist es oft schnuppe, welchen Toolchain man nimmt. Gibt ganz selten mal einen Source, der sich nur mit einem bestimmten Toolchein kompilieren lässt.
 
  • Danke
Reaktionen: ui_3k1
Genau so was habe ich gesucht :)
Perfekt, vielen Dank.

Eine ganz "elementare" Frage habe ich noch. Geht um die Unterschiede zwischen einem CM-Kernel und einem reinen TouchWiz-Kernel (beispielsweise).
Der Kernel ist der Vermittler zwischen API und Hardware. Wieso unterscheiden sich dann die Varianten? Und kann man pauschal sagen wo Vor- und Nachteile liegen?

Verstehe ich das richtig, dass mit
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

immer der Pfad angesprochen wird, der für das Kompilieren zuständig ist?

Wieder nach wenigen Sekunden durchgelaufen. Jetzt kommt diese Meldung:
/home/martin/android_kernel_samsung_smdk4412/scripts/gen_initramfs_list.sh: Cannot open 'source/usr/galaxys2_initramfs.list'
 
Zuletzt bearbeitet:
Das fragst du mal lieber wen, der Ahnung vom Samsung Kernel hat. Habe zwar ein S4, der läuft jedoch ohne Root und Schnick Schnack ;)

Das mit der Anleitung, probiere es halt mal aus, ob es mit deinem Source Code auch klappt (ich weiß jetzt halt nicht, warum er bei dir einen anderen Toolchain Pfad genommen hat statt den exportierten, aber nach der meinen müsste das Wegfallen)

Edit: doch noch ein Erklärungsversuch.
Bei den meisten Geräten ist der CM Kernel auch der Stock Kernel bzw wenn dann nur mit minimalen und den nötigsten Änderungen.
Samsung macht aber viel eigenes Zeug rein, so das ihr Kernel mit einer AOSP ROM wohl nicht ganz läuft bzw. es fehlen bei eine AOSP ROM die Userspace Bibliotheken und Treiber, die eben Closed Source sind. Deswegen müssen die AOSP ROM Entwickler größere Änderungen am Kernel vornehmen, damit es eben mit den verfügbaren/selbererstellten Bibliotheken und Treibern läuft.

Der ursprüngliche Beitrag 22.03.2014 von 23:27 Uhr wurde 23.03.2014 um 00:00 Uhr ergänzt:

ui_3k1 schrieb:
Verstehe ich das richtig, dass mit
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

immer der Pfad angesprochen wird, der für das Kompilieren zuständig ist?

Wieder nach wenigen Sekunden durchgelaufen. Jetzt kommt diese Meldung:
/home/martin/android_kernel_samsung_smdk4412/scripts/gen_initramfs_list.sh: Cannot open 'source/usr/galaxys2_initramfs.list'
Hab ich ja ganz überlesen. Was ist den das für ein Source? Samsung halt...

Der ursprüngliche Beitrag von 00:00 Uhr wurde um 00:27 Uhr ergänzt:

Ich hab mal kurz gegooglet.

Der Build von deinem Kernel braucht auch das Zeugs für die Initramfs. Mit den deinen zwei verlinkten Anleitungen kommst du da natürlich nicht weiter, da sie sich nicht explizit auf deinen Kernel beziehen. Ich habe auf die schnelle nur eine Anleitung zum I9100G bei XDA gefunden [HOW-TO][TUTORIAL]ROOT, DEODEX, BUILD KERNEL, BUILD CUSTOM ROM and MORE - xda-developers (die Initramfs solltest du jedoch passend zu deinem Gerät nehmen und nicht die dort)

oder https://www.android-hilfe.de/forum/...nel-development-tuts.261602.html#post-3529478
 
Zuletzt bearbeitet von einem Moderator:
  • Danke
Reaktionen: ui_3k1
Okay, auch vielen Dank dafür schon mal. Ich versuche es nochmal mit dem Note und wenn das nichts wird, dann soll es eben nicht sein. Mich bringt Ubuntu halt auch echt krass auf die Palme, ich habe jetzt in meinem home-Verzeichnis so viele Ordner, die ich nicht löschen kann - pff...
und die größte Kacke ist, dass ich das System neben Windows am Laufen habe und so komisch installieren musste, damit der Bootloader (UEFI) funktioniert... Allein das war schon wieder ein abenteuerlicher Spaß, ich traue mich es nicht von der Platte zu hauen, da sonst der GNU(?)Bootloader mit weg ist und dann läuft am Ende gar nichts mehr :/
Unter windows kenne ich meine hotkeys und die Funktionen. In Ubuntu bin ich immer wieder sprachlos, dass so ein System überhaupt von irgendjemandem genutzt wird...
Mein Fall ist es definitiv nicht :)

Und wenn ich schon mal meinen Frust ablasse. Was die Google Dokumentation angeht finde ich die im Vergleich zu denen aus dem Hause Microsoft (VisualStudio, XNA, usw) absolut unter aller Kanone oO
Aber ich glaube mit der Meinung stehe ich ziemlich alleine da, jedenfalls ist die Szene, die für Google "arbeitet" mindestens 10x so groß - warum auch immer. (Das Einkommen wird nicht die entscheidende Rolle spielen)

Oder kann es sein man das msm-Paket für das Note 3 braucht? Ich meine einen Qualcomm hat es ja..
http://source.android.com/source/building-kernels.html

(ich hoffe ich mache mich mit der Frage nicht lächerlich - aber genau das finde ich bei google halt so mies, die Informationen sind so vage, dass ich nicht mal das Gefühl habe "auf dem richtigen Weg" zu sein)
 
Zuletzt bearbeitet:
Moment mal, nicht so hastig.

1. die nicht löschbaren Ordner im Home Verzeichnis sind entstanden, weil du irgendwann mal Befehle, vor allem mkdir, mit Rootrechten ausgeführt hast. Das sollte man nie tun. Auch make sollte man nie mit root ausführen (außer make install, wenn man etwas erstellt hat direkt ins laufende System installieren will, also in deinem Fall nie nötig gewesen)
Linux kann ja nun nichts dafür, dass du fehlerhaften Anleitungen gefolgt bist bzw. als root Ordner erstellt hast. Auch nichts dafür, dass du nicht die Linux Grundlagen hast. In Windows musstest du sie doch auch erst lernen ;)

2. du hast sicher diese "irgendwie anders" oder wie auch immer Installation gewählt. Ist auch richtig so gewesen. Einfach so runterschmeißen kannst du es nicht, auch nicht wenn es keine UEFI Installation gewesen wäre, da du nun GRUB2 als Bootloader hast.
Schau dir EasyBCD an (Anleitungen sollte es im Netz zu genüge geben), wenn du relativ einfach wieder den Windows Bootmanager wiederherstellen willst, danach kannst du Ubuntu auch entfernen. Jedoch wirst du mit dem Windows Bootmanager nicht mehr so einfach nach Ubuntu booten können. Unter Windows 8 funktioniert es nicht mehr(unter Windows 7 mit UEFI wahrscheinlich auch nicht mehr), da muss man irgendwo in den Windows Einstellungen über den erweiteren Start bla blub, mach dich halt erst schlau, bin Linuxnutzer, kenn mich mit Windows nicht mehr so aus :p
Du kannst auch mit einem Windows Recovery Medium den Bootloader wiederherstellen.

3. Ich kenne auch meine Hotkeys... nur nicht in Windows :D Wie man es nutzen kann, frage ich mich bei Windows auch ständig :p

4. Die Doku ist eigentlich ok, richtet sich aber auch an Systementwickler, die müssen halt wissen, was sie machen. Bei Windows ist doch auch nirgends erklärt, wie man den Kernel kompiliert. Ach, ich vergaß, der ist ja closed, wie alle anderen wichtigen Systemkomponenten ;)
Das was an Doku da ist, genügt um aus dem AOSP für die offiziell unterstützten Devices die ROMs zu erstellen. Wenn sich nun dein Hersteller, also Samsung, nicht an diese Vorgabe hält und sein eigenes Süppchen kocht, dann kann man das nicht Google in die Schuhe schieben. Auch nicht, dass bei den großen AOSP Entwickler Gruppierungen und deren Code, wie eben CM, Schrottcode vom Hersteller noch mit drin ist.
Das alles liegt nun mal nicht an Google.
Ein anderer zu erwähnender Punkt ist, man sollte sich immer an die Dokus halten, die es zu der ROM gibt. CM z.B. hat für fast jedes Gerät eine Build Anleitung, z.B. How To Build CyanogenMod Android for Samsung Galaxy S II ("i9100") ist dann natürlich für die gesamte ROM.

5. Für dein Note3 wirst du bei Google nichts finden, da dein Note 3 kein Nexus Gerät ist. Google stellt nur alles für die Nexen bereit, dass sind die vom AOSP offiziell unterstützten Geräte. Für alle anderen sind deren Hersteller und ihre Seiten heranzuziehen oder eben die Community. Schau mal bei XDA im Geräte Forum. Außer bei den Nexen, ist alles nur bei der Community oder beim Hersteller zu finden und nicht bei Google.
 
Zuletzt bearbeitet von einem Moderator:
  • Danke
Reaktionen: ui_3k1
Guten Morgen (bzw. Mittag) :)
Neuer Tag, neue Motivation, neuer Versuch.

Du hast schon recht, das mit dem Löschen ging jetzt ohne Probleme über -rm im Terminal. Wenn ich schnell was auf die Reihe bekommen will, sind das die kleinen Unwegsamkeiten, die mich dann die Geduld verlieren lassen :D

Aber wie gesagt, heute will ich noch mal mit neuem Elan an die Sache herangehen.

Ich habe nur das Gefühl, dass irgendwas an meinem System "verstellt" sein könnte. Was diese Path-Angaben betrifft fehlt mir absolut der Überblick. (Bei der einen Anleitung wurde so ein .bashrc-File erstellt und dort auch nochmal ein Path hinterlegt, kann es sein, dass das System von dieser Datei / diesen Dateien "abgelenkt" wird?)
Braucht man eigentlich die kompletten CM-Sources um den Kernel zu builden?
Btw: was brauche ich eigentlich genau?
Derzeit gehe ich davon aus, dass ich mit
-Kernel-Sources
-Toolchain
(-ggf. fürs S2 noch diese init-List)
ans Ziel kommen müsste.
 
Mahlzeit! :)

Hast du dir die Anleitung für das I9100G in Beitrag 6 angsehen?
Dort gehen drei Dinge hervor:
1. du brauchst die initramfs für dein Gerät
2. In der Makefile ist ein Pfad zum Cross Compiler festgelegt. Dieser überschreibt den Pfad, wenn du deinen Pfad exportierst, aber bleibt z.B. bei meiner Anleitung wirkungslos. Wenn du also den Weg über das exportieren gehen willst, muss du du die Makefile anpassen (exportieren brauchst dann jedoch nicht mehr, es weiß ja dann wo der CrossCompiler ist ;))
3. Pfad zur initramfs wird in der config mit CONFIG_INITRAMFS_SOURCE festgelegt. Das muss du also auch anpassen und da den Pfad zu deiner initramfs vorgeben.

Dann müsste es hoffentlich klappen. Das ist mal für das S2. Beim Note 3 werde ich mich jetzt jedoch nicht einlesen ;)
Im Grunde genommen sind die Schritte einfach, du musst halt nur eine Anleitung für das Gerät finden. Ist halt nicht nett von Samsung bei jedem Gerät etwas an der Vorgehensweise zu ändern. (ich weiß schon warum mein S4 untouched ist, muss ich mir nicht antun ;))

Edit: im Normalfall braucht man zum Kernel erstellen nicht alle CM Sourcen. Was du jedoch noch an zusätzlichem für dein Note 3 brauchst, kann ich dir nicht sagen. Wenn ich mal schnell einen Blick bein Github reinwerfe, sehe ich build_msm8974pro_kernel.sh . Dies ist ein Build Script. Hast du es mal ausgeführt? (solltest es auch mal mit einem Texteditor öffnen und den Pfad anpassen ;))
 
Zuletzt bearbeitet von einem Moderator:
  • Danke
Reaktionen: ui_3k1
Vielen Dank für deine Bemühungen und die hilfreichen Hinweise, dadurch habe ich glaube ich schon etwas mehr Überblick über die Sache. Das werde ich jetzt gleich mal alles abarbeiten und dich auf dem neusten Stand halten :)

BINGO!!!
Ich weiß gar nicht wie oft ich dir danken soll.
Auch wenn ich jetzt selbst auf den Fehler kam - deine analytische Beschreibung hat mich nochmal die Sache genau betrachten lassen und da ich mir dann doch ziemlich sicher war, dass die Toolchain so passt, habe ich den Mut nicht verloren
:D

Aber kommen wir nun zu dem "Fehler" -> Information: Samsung Galaxy S II ("i9100") - CyanogenMod dort habe ich meinen Kernel her. Ist die Seite vom S2 (i9100) und der Link unter "Kernel" führt aber zu einem S3 Kernel, was dann recht gut erklärt warum der Build nach wenigen Sekunden abbricht. :laugh:
Letztlich habe ich mir wahrscheinlich auch zwei Paradebeispiele herausgesucht um in die Materie einzusteigen. :razz:

Also noch mal vielen Dank.
:thumbsup:

Wobei ich jetzt schon wieder die nächste Frage habe^^ wenn ich jetzt einen Kernel fürs Note fertig habe, gibt es dann eine Hardware schonende Möglichkeit den vorher zu testen? Ich würde nur ungern mein 4 Tage altes Gerät riskieren (und jemand anderem will ich dieses Risiko genauso wenig zu muten) :p
 
Zuletzt bearbeitet:
*lach*
Das ist mir gestern schon aufgefallen, dass das der Source Code vom S3 ist, da jedoch bei den Configs auch die für andere Geräte drin sind, dachte ich du wüsstest warum du den S3 Kernel Code hast :D

Nun, fastboot gibt es sicher nicht beim Note 3 oder? Mit Fastboot kann man von einer boot.img booten ohne es zu installieren. Ohne fastboot gibt es, glaube ich, nur den Weg übers installieren.
Was hat dir denn der Build Prozess beim Note 3 ausgespuckt? Nur den Kernel oder auch das fertige boot img, also mit Ramdisk und Kernel vereint. Falls es nur der Kernel ist, musst du dir noch das boot.img erstellen.
 
Hehe, ja bei CM sind ja in den configs immer alle möglichen Geräte enthalten.. Aber scheinbar funktioniert es dann mit dem Build nicht, weil in der Inhalt in den Ordnern wohl anders verlinkt ist (bzw. andere Inhalte hat) - so denke ich es mir jedenfalls gerade auf die Schnelle.

Habe bis jetzt fürs Note noch keinen fertigen Build, lese mich da gerade ein. Vermutlich muss noch etwas mit dem Selinux angepasst werden und zur build.sh muss ich mich auch noch mal genauer informieren.

Irgendwie lassen sich ja auch Patches in einem Kernel "hinterlegen"? (wobei das auf meiner Agenda derzeit noch ganz hinten steht, da ich erstmal diese ersten beiden Baustellen fertig bekommen will^^)
 
Was meinst du mit Patches hinterlegen? Patches sind "nur" Differenzdateien zum original Code, diese wendet man vor dem Build auf den Source Code an, so dass eben der Code dann die Änderungen beinhalten und kompiliert dann.
 
  • Danke
Reaktionen: ui_3k1
Ok, mir gings darum, dass man die CPU vom Takt heruntersetzt ist und es möglich wird, dass die Spannung herabsetzbar ist, zB über eine App.

Was mir allerdings auch noch nicht ganz klar ist, ist wie Makefile und build.sh zusammenhängen.
How to compile kernel for Note 3 N9005 Kit Kat Step by Step Guide
In der Anleitung wird der Crosscompiler über das Makefile angepasst:
Schritt 4 ->
$ sudo gedit Makefile
this command will open the Makefile file and we have to edit the following line:
CROSS_COMPILE ?=/home/opensource.m/toolchains/arm-eabi-4.7/bin/arm-eabi-

Wohin gegen du ja gesagt, dass in dem Skript diese Anpassung durchgeführt wird. Kommt das am Ende dann aufs gleiche raus?

Nachtrag:
Wenn ich nach dieser Anleitung vorgehe passt alles. Derzeit habe ich noch Probleme mit der Source von CM... das Skript hingegen ist bei beiden Versionen gleich. Weißt du wo man eine Information darüber findet welche "config" man nehmen muss? Bei Cyanogen siehts meiner Meinung nach sehr mau aus.


Ahh.. ich glaube ich habs gefunden :)
 
Zuletzt bearbeitet:
ui_3k1 schrieb:
Ok, mir gings darum, dass man die CPU vom Takt heruntersetzt ist und es möglich wird, dass die Spannung herabsetzbar ist, zB über eine App.

Und genau dafür braucht es Änderungen am Kernel Source. Da musst du suchen, ob ein versierter Entwickler das schon für dein Gerät erstellt hat. Da solltest du mit quasi null Ahnung vom Kernel selber nichts ändern. Kann man viel falsch machen. ich würde dir da raten schon einen fertigen Kernel von jemandem zu nehmen, der Ahnung davon hat.

$ sudo gedit Makefile
this command will open the Makefile file and we have to edit the following line:
CROSS_COMPILE ?=/home/opensource.m/toolchains/arm-eabi-4.7/bin/arm-eabi-
Was habe ich gestern über Rootrechte geschrieben? 1. ist es da vollkommen unnötig sudo zu nutzen, 2. wenn man ein UI Programm aus dem Terminal mit Rootrechten starten will, sollte man gksudo nutzen ->sudo

Wohin gegen du ja gesagt, dass in dem Skript diese Anpassung durchgeführt wird. Kommt das am Ende dann aufs gleiche raus?
Kann ich dir nicht sagen, da ich nur einen kurzen Blick in das Script geworfen und dir den Anhaltspunkt gegeben habe, das es damit evtl. einfacher geht. Das Script ist normalerweise in einem Kernel Source Verzeichnis nicht drin. Wenn jedoch so ein Script da ist, dann um den Build Prozess zu vereinfachen.
Wenn das Script schon im orginial Code vorhanden war und jetzt auch im CM Code drin ist, dann muss du natürlich prüfen, ob es noch funktioniert oder ob Veränderungen von CM es unbrauchbar gemacht haben.
Wenn es gescheit geschrieben ist, sollte es die Makefile aufrufen und die im Script definierten Variablen richtig dahin weitergeben.

Welche config hängt immer davon ab, für was du erstellst und welche configs für dein Gerät verfügbar sind und benötigt werden. Bei CM steht z.B im Device Tree in der Datei BoardConfig.mk

Edit: und die restlichen sudos in der Anleitung sind auch für die Tonne. Außer bei Punkt 1 braucht man sie nirgends. Man braucht sie nicht nur nirgends, man sollte einen Kernel auch nie mit sudo oder gar als root eingelogt(wie in der Anleitung) erstellen!
 
Zuletzt bearbeitet von einem Moderator:
  • Danke
Reaktionen: ui_3k1

Ähnliche Themen

I
Antworten
1
Aufrufe
1.734
Ishgalad
I
Slinthorax
  • Slinthorax
Antworten
1
Aufrufe
1.168
Slinthorax
Slinthorax
H
Antworten
1
Aufrufe
1.214
halorx
H
Zurück
Oben Unten