Android_Sourcen_kompilieren
Geändert am Mi, 05 Jan 2011 18:45 von Administrator — Kategorisiert als: Nicht kategorisiert
Ich habe mich rangemacht einen neuen Kernel für das
WeTab
zu kompilieren. Das ist aber mit einigen Hürden gepflastert, die ich aber (dank Internet) umschiffen konnte.
VMWare
¶
Als erstes habe ich mir auf meinem großen Rechner eine VMWare eingerichtet. Zum Download von VMWare-Player gehts hier
http://downloads.vmware.com/de/d/info/desktop_downloads/vmware_player/3_0
Ubuntu
¶
Dann hab ich mich für Ubuntu 10.10 als Betriebssystem entschieden. Also das derzeit Neueste. Zum Download gehts hier
http://www.ubuntu.com/desktop/get-ubuntu/download
Man braucht eine große Maschine mit viel Platz um Ubuntu in der VMWare ordentlich laufen zu lassen. Meine hat 4Gig Hauptspeicher und bin im (fast) Terrabytebereich mit verschiedenen Festplatten.
Für den normalen (Windows)Entwickler sollte es kein Problem sein, auch mal ein Ubuntu aufzusetzen. Wenn doch... Lass die Finger vom Android-kompilieren :-)
Ich habe Ubuntu 2,7 Gig Hauptspeicher und 20 Gig Platte gegönnt.
Nun habe ich folgende Webseite befolgt
http://forum.sdx-developers.com/android-2-1/(how-to)-compile-android-2-1/
Quintessenz hier zum abtippen in der Rootshell (Terminal)
Installiere die notwendigen Zusatzprogramme
¶
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
Installiere Java JDK in Version 5
¶
Es soll zwar die Froyo version bereits mit der 6er laufen, aber ich halte mich an die Angaben um nichts falsch zu machen. Man muss dazu sagen, dass Java 5 bereits durch Java 6 abgelöst wurde und dadurch am System etwas geändert werden muss um die alten Programme zu bekommen.
Zuerst mal die sources.list Datei editieren
¶
gksudo gedit /etc/apt/sources.list
Am Ende dann diese Zeilen einfügen
deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
Nun das System Updaten und java 5 installieren
sudo apt-get update sudo apt-get install sun-java5-jdk
Für Lizenzgeschichten noch das hier
sudo apt-get install valgrind
Nun ein bin Verzeichnis anlegen, in dem man Programme ablegen kann, die automatisch im Pfad gefunden werden
¶
cd ~ mkdir bin PATH=$PATH:~/bin
Das Programm repo laden und ausführbar machen
¶
curl http://android.git.kernel.org/repo >~/bin/repo chmod a+x ~/bin/repo
Unser Androidverzeichnis anlegen
¶
mkdir android cd android
Ab hier muss man sich entscheiden ob man
Android von Google
oder
Android-X86 von www.android-x86.org
machen will.
Android von Google
¶
Da bekommt man die original Sourcen geliefert. Die sind für ARM-Rechner, also Handys, optimiert. Originalinfos unter
https://sites.google.com/a/android.com/opensource/download
repo init -u git://android.git.kernel.org/platform/manifest.git
Man wird nach Name und Email gefragt. Ist nur dann notwendig, wenn man Bugs oder ähnliches melden möchte.
Das Androidverzeichnis muss nun noch aus dem Repository gefüllt werden.
repo sync
Und das dauert ein wenig. der repo init muss nur einmal gemacht werden, dann nur noch der sync um an neue Sourcen zu kommen.
Mit
make
kann man das kompilieren anstossen. Nimm Zeit mit, oder geh ein paar Stunden spazieren :-)
Android von www.android-x86.org
¶
Hier sind die teilweise geänderten Sourcen um das ganze unter X86 Maschinen laufen zu lassen. Der Link zum Original:
https://sites.google.com/a/android.com/opensource/download
Hier muss man sich schon beim init für einen "branch" entscheiden. Also welche Version man haben will.
Ich habe mich für die 2.2 also froyo entschieden.
repo init -u git://git.android-x86.org/manifest.git -b froyo-x86
Den Sourcecode holen mit
repo sync
Nun schaut auf die Originalpage. da ist eine Liste an Platformen, für die man kompilieren kann. Der Touchscreen hat mit der sparta (Dell Inspirion Mini Duo) bereits am wetab funktioniert. Also wäre ein kompilieren eines iso-files für diese Platform ein
make iso_img TARGET_PRODUCT=sparta
Ich habe mich entschieden eine komplett neue Platform anzulegen. Dazu verwendete ich auch den lunch-Befehl und das m -jX iso_img zum kompilieren (das X ist die Anzahl an Prozessorkernen am Zielsystem)
Dazu habe ich mir die viewpad10-Einstellungen kopiert und neue Verzeichnisse angelegt.
Da der Hersteller offiziell Medion ist habe ich unter /android/device/medionag/wetab die ganzen Inhalte von /android/device/viewsonic/viewpad10 rein kopiert. Der Touchscreen von der sparta-Version hat funktioniert, also hab ich mir eine Mischung erzeugt. So wie ich dachte das es stimmen müsste.
Dann mit
. build/envsetup.sh
(da ist wirklich ein Punkt vorne) das Environment neu erzeugt.
Nun einfach mal
lunch
aufrufen, dann kann man die richtige Platform mit einer Nummer auswählen.
Und das kompilieren eines iso startet dann mit
m -j1 iso_img
will man ein USB-Image dann eben
m -j1 usb_img