rotation
Dauer-User
- 228
Ein Tutorial für jene, die selbst Kernel Kompilieren wollen:
Grundsätzlich basiert alles auf dem Folgenden für das G Tablet:
[GUIDE] Compiling and Installing Custom Kernel (based on pershoot's Kernel from git) - xda-developers
Hier nur kleine Ergänzungen, bzw. Erweiterungen.
1. Vorbereitung:
Ich empfehle eine Virtuelle Maschine und Ubuntu. Das hat den Vorteil, dass man keinen PC neu aufsetzen muss, Windows kann weiterverwendet werden. Ein Doppelbildschirm ist aber sehr praktisch, dann kann auf einem der Code betrachtet werden, auf dem anderen z.B. Internet Explorer und Infos suchen.
Im Terminal die Packages installieren:
Weiters muss ein Verzeichnis erstellt werden und ihr müsst Besitzer sein, damit nicht dauernd sudo verwendet werden muss.
Weiters die Toolchain, bzw. der Crosscompiler:
https://android-build.linaro.org/jenkins/job/linaro-android_toolchain-4.6-linaro-master-with-generic-target/21/artifact/build/out/android-toolchain-eabi-linaro-4.6-2011.10-21-2011-10-15_01-08-47-linux-x86.tar.bz2
Das ist der Crosscompiler, mit dem keine SoD's mehr auftraten (zumindest bei mir). Fards scheint nun auch mit diesem zu arbeiten.
Diese Entpacken.
Für den Cross Compiler muss die der Pfad ...\arm-eabi\bin angegeben werden, sonst wird der nicht gefunden.
Weiters die Kernel Sources.
Fards: git://github.com/fards/ab73kernel-Hannspad-2632.git
oder meine: git://github.com/Gott/ab73kernel-Hannspad-2632.git
Github hat den Vorteil, dass man Änderungen einfach anderen mitteilen kann.
Weiters kann man auch nach Infos in Google suchen, z.B.: "ondemand governor tweak github".
2. Config
Die Configs sind in /arch/arm/config
Da sind mehrere drin.
Für uns "ab_per_adam_tegra_harmony_android_newbl_defconfig".
Wenn nun
(Der Punkt zeigt an, dass die Datei unsichtbar ist)
Ich weiß aber nicht, ob die ab_per_..... Config verändert wird.
Ich hab ein Script benutzt, die die .config automatisch wieder zurückkopiert.
3. Kompilieren
Damit wird as zImage kompiliert. Es befindet sich anschließend im Ordner /arch/arm/boot/zImage.
Wichtig ist, dass der CrossCompile Pfad richtig ersetzt wird, gegen euren, oben heruntergeladen.
Hierdurch werden die Module kompiliert.
4. Packen
Wir verwenden die Methode von Koush.
Das erlaubt das Installieren beliebiger Dateien im CWM.
Koushs Methode ist auch auf github zu finden, es reicht aber, wenn wir ein ab73 Zip Archiv verwenden.
Einfach die Module und zImage darin löschen.
Ich hab mir damit mal das WLAN gebrickt, weil das Modul alt war, es wurde schlicht das alte verwendet, siehe Test Kernel Thread.
Nicht vergessen, das bcm4329 Modul mit dem dhd.ko zu ersetzen. Die dhd.ko ist das WLAN Modul.
Anschließend die Symlinks entfernen, im Ordner /system/lib/modules/2.6.32.28-cyanogenmod/
build und source. Windows Usern ist so etwas unbekannt, Windows kennt keine Symlinks.
Anschließend alles zippen, in den richtigen Pfaden. Das ab73 Kernel Zip ist eigentlich selbsterklärend.
Bitte verwendet dazu NUR Linux. Schlimmstenfalls 7zip unter Windows. Keinesfalls Winrar, das funktioniert nicht richtig. Die Zips haben dann nicht das richtige Format und können nicht installiert werden.
Vorteil von Linux ist, dass man auch Scripte schreiben kann. Die Befehle werden nacheinander abgearbeitet.
Anschließend via CWM installieren.
Zum Programmieren:
Ihr habt dann ein Verzeichnis .../ab73kernel-Hannspad-2632/
Darin sind alle Dateien, aus dem der Kernel besteht.
Wenn etwas zu einer bestimmten Funktion verändert werden soll, muss erst die betreffende Stelle gesucht werden. Das kann schonmal recht lange dauern. Bis man dann auch noch den Code versteht dauert es nochmal länger.
Kleine Liste:
Swappiness: mm/vmscan.c
touchscreen: /drivers/input/touchscreen/tegra_odm.c
Clocks und Voltages: /arch/arm/mach-tegra/nvrm/core/common/nvrm_clocks_limits.c
Für alles weitere müsst ihr Google bemühen.
Evtl. hab ich euch den Einstieg ins Kernel Programmieren etwas erleichtert.
Grundsätzlich basiert alles auf dem Folgenden für das G Tablet:
[GUIDE] Compiling and Installing Custom Kernel (based on pershoot's Kernel from git) - xda-developers
Hier nur kleine Ergänzungen, bzw. Erweiterungen.
1. Vorbereitung:
Ich empfehle eine Virtuelle Maschine und Ubuntu. Das hat den Vorteil, dass man keinen PC neu aufsetzen muss, Windows kann weiterverwendet werden. Ein Doppelbildschirm ist aber sehr praktisch, dann kann auf einem der Code betrachtet werden, auf dem anderen z.B. Internet Explorer und Infos suchen.
Im Terminal die Packages installieren:
Ich weiß noch, dass es manche Packages nicht mehr gab, ich hab die dann selber gesucht, welche das waren, weiß ich aber nicht mehr. Die leiten sich aber aus den Namen ab, haben aber am Ende andere Bezeichnungen.sudo apt-get install git-core libncurses-dev lib32stdc++6 lzma
Weiters muss ein Verzeichnis erstellt werden und ihr müsst Besitzer sein, damit nicht dauernd sudo verwendet werden muss.
Weiters die Toolchain, bzw. der Crosscompiler:
https://android-build.linaro.org/jenkins/job/linaro-android_toolchain-4.6-linaro-master-with-generic-target/21/artifact/build/out/android-toolchain-eabi-linaro-4.6-2011.10-21-2011-10-15_01-08-47-linux-x86.tar.bz2
Das ist der Crosscompiler, mit dem keine SoD's mehr auftraten (zumindest bei mir). Fards scheint nun auch mit diesem zu arbeiten.
Diese Entpacken.
Für den Cross Compiler muss die der Pfad ...\arm-eabi\bin angegeben werden, sonst wird der nicht gefunden.
Weiters die Kernel Sources.
Fards: git://github.com/fards/ab73kernel-Hannspad-2632.git
oder meine: git://github.com/Gott/ab73kernel-Hannspad-2632.git
Github hat den Vorteil, dass man Änderungen einfach anderen mitteilen kann.
Weiters kann man auch nach Infos in Google suchen, z.B.: "ondemand governor tweak github".
2. Config
Die Configs sind in /arch/arm/config
Da sind mehrere drin.
Für uns "ab_per_adam_tegra_harmony_android_newbl_defconfig".
Wenn nun
eingegeben wird, wird die Config geladen, nach dem verändern wird die in .config gespeichert.make -C /usr/src/tegratab/gtab-2632/ ARCH=arm ab_per_adam_tegra_harmony_android_newbl_defconfig menuconfig
(Der Punkt zeigt an, dass die Datei unsichtbar ist)
Ich weiß aber nicht, ob die ab_per_..... Config verändert wird.
Ich hab ein Script benutzt, die die .config automatisch wieder zurückkopiert.
3. Kompilieren
make -C /usr/src/tegratab/gtab-2632/ ARCH=arm CROSS_COMPILE=/usr/src/tegratab/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- zImage
Damit wird as zImage kompiliert. Es befindet sich anschließend im Ordner /arch/arm/boot/zImage.
Wichtig ist, dass der CrossCompile Pfad richtig ersetzt wird, gegen euren, oben heruntergeladen.
make -C /usr/src/tegratab/gtab-2632/ ARCH=arm CROSS_COMPILE=/usr/src/tegratab/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- modules
Hierdurch werden die Module kompiliert.
4. Packen
Wir verwenden die Methode von Koush.
Das erlaubt das Installieren beliebiger Dateien im CWM.
Koushs Methode ist auch auf github zu finden, es reicht aber, wenn wir ein ab73 Zip Archiv verwenden.
Einfach die Module und zImage darin löschen.
Hierdurch werden die Module kompiliert und im Pfad .../staging/system gespeichert. Dort habt ihr dann einen Pfad /system/lib/modules/2.3.32-cyanogenmod/ ... mit weiteren Unterordnern. Die .ko Dateien sind die Module. Diese müssen ins ZIP archiv in den Ordner /lib/modules kopiert werden.make -C /usr/src/tegratab/gtab-2632/ ARCH=arm INSTALL_MOD_PATH=/usr/src/tegratab/staging/system modules_install
Ich hab mir damit mal das WLAN gebrickt, weil das Modul alt war, es wurde schlicht das alte verwendet, siehe Test Kernel Thread.
Nicht vergessen, das bcm4329 Modul mit dem dhd.ko zu ersetzen. Die dhd.ko ist das WLAN Modul.
Anschließend die Symlinks entfernen, im Ordner /system/lib/modules/2.6.32.28-cyanogenmod/
build und source. Windows Usern ist so etwas unbekannt, Windows kennt keine Symlinks.
Anschließend alles zippen, in den richtigen Pfaden. Das ab73 Kernel Zip ist eigentlich selbsterklärend.
Bitte verwendet dazu NUR Linux. Schlimmstenfalls 7zip unter Windows. Keinesfalls Winrar, das funktioniert nicht richtig. Die Zips haben dann nicht das richtige Format und können nicht installiert werden.
Vorteil von Linux ist, dass man auch Scripte schreiben kann. Die Befehle werden nacheinander abgearbeitet.
Anschließend via CWM installieren.
Zum Programmieren:
Ihr habt dann ein Verzeichnis .../ab73kernel-Hannspad-2632/
Darin sind alle Dateien, aus dem der Kernel besteht.
Wenn etwas zu einer bestimmten Funktion verändert werden soll, muss erst die betreffende Stelle gesucht werden. Das kann schonmal recht lange dauern. Bis man dann auch noch den Code versteht dauert es nochmal länger.
Kleine Liste:
Swappiness: mm/vmscan.c
touchscreen: /drivers/input/touchscreen/tegra_odm.c
Clocks und Voltages: /arch/arm/mach-tegra/nvrm/core/common/nvrm_clocks_limits.c
Für alles weitere müsst ihr Google bemühen.
Evtl. hab ich euch den Einstieg ins Kernel Programmieren etwas erleichtert.
Zuletzt bearbeitet: