Cross-Compiling Android Kernel – Samsung GalaxyS2

closeDieser Beitrag wurde vor mehr als drei Monaten veröffentlicht. Bedenke bitte, dass die hier angebotene Information nicht mehr aktuell und gültig sein könnte. Informiere dich daher bitte auch an anderer Stelle über dieses Thema. Sollten sich neue Informationen ergeben haben, so kannst du mich auch gerne auf diese über einen Kommentar hinweisen. Vielen Dank!

Das GalaxyS2 läuft ziemlich gut mit dem neuen nightly-builds von CM9 (Android 4.0.4) & den neusten Google-Apps & dem SiyahKernel.

Ich möchte hier kurz erklären, wie du einen Kernel für das Samsung S2 (CM9) auf Basis vom SiyahKernel kompilierst. :) 

 

1.) Installiere Linux + Cross-Compiler 

Als erstes solltest du Linux bereits installiert haben (z.B. Ubuntu, Debian …) ggf. einfach auf einen virtuellen PC z.B. via VirtualBox. Für Ubuntu gibt es bereits ab Werk GCC für ARM, bei Debian habe ich bisher folgende Paket-Quellen ( /etc/apt/sources.list ) mit aufgenommen und anschließend gcc-4.6-arm installiert, jedoch bisher nur mit Debian *sid* getestet.

deb http://www.emdebian.org/debian/ unstable main

Install:

sudo apt-get install build-essential git gcc-4.5-arm-linux-gnueabi wget libncurses5-dev

 

2.) Download der Quellen via github

Fork via github die Quellen welche du kompilieren möchtest und lade deine eigenen “Sources” herunter, um später ggf. “Pull Requests” zu stellen. Daher musst du bei den folgenden Befehlen “voku” durch deinen eigenen User-Namen bei github ersetzen.

 mkdir -p ~/sgs2/kernel/

cd ~/sgs2/kernel/

git clone https://github.com/voku/siyahkernel3

git clone https://github.com/voku/initramfs3

PS: “~” (tilde) = home-Verzeichnis -> info

Falls du nun einen anderen Cross-Compiler installiert hast als ich, musst du in der Datei (build_kernel.sh) die CROSS_COMPILE Variable anpassen. (whereis – locate the binary, source, and manual page files for a command)

cd ~/sgs2/kernel/siyahkernel3

./build_kernel.sh

 

Sobald der Kernel kompiliert wurde findest du folgende Datei “zImage”, welche wiederum der Kernel selber ist. ;)

 

PS: hier meine Version kompiliert mit gcc-4.6 & -Ofast & neuem Tweak-Script ->  http://samdroid.voku-online.de/index.php?action=list&dir=SGS2&order=name&srt=yes

 

Tipps: 

- CyanogenMod 9 Flashen -> AOSP 4.0.4 Cyanogen (mod) 9 Flash Anleitung

- keine Angst vor git -> man braucht meistens nur ein paar Befehle -> “git pull” & “git  push” & “git add –all” 

- git? -> http://rogerdudler.github.com/git-guide/index.de.html 

- Kernel-Config -> ~/sgs2/kernel/siyahkernel3/arch/arm/configs/siyah_defconfig 

- Tweak Skript ->  ~/sgs2/kernel/initramfs3/sbin/ext/thunderbolt.sh

- Makefile ->  ~/sgs2/kernel/siyahkernel3/Makefile 

  • http://suckup.de/about voku

    … habe ich im Blog-Post noch vergessen!!
    Nutze “ExTweaks App” um Kernel-Einstellungen während der Laufzeit zu ändern: https://play.google.com/store/apps/details?id=com.darekxan.extweaks.plus

  • Mario

    Ich bin in der Zwickmühle. ich habe Debian 7.1 Wheezy Stable Installiert. Ich hab das Repo geaddet. Die Public Key Warnung kann man ja ignorieren. Nun sagt mir Debian beim installieren das gcc-4.7-arm-linux-gnueabi von libgomp1-armel-cross (>= 4.7.2-5) abhängt was aber nicht installiert werden soll. Was soll ich jetzt machen?