Inhaltsverzeichnis
Aufsetzen der Entwicklungsumgebung
Dieser Artikel beschreibt auf Basis von Ubuntu 12.04, wie man die Entwicklungsumgebung aufsetzt. Mit der Entwicklungsumgebung kann man dann eigene Firmware-Images für die Box bauen und über den Upgrade-Mechanismus installieren.
Installation von Ubuntu 12.04
Es kann die normale Desktop Installation genutzt werden. Es sollte nur genügend Festplattenplatz eingeplant werden. 10GB sollten für das Medion SDK und das Kompilieren der Images aber ausreichen.
Installation der verfügbaren Updates
Nach der Installation sollten alle verfügbaren Updates über die Aktualisierungsfunktion von Ubuntu installiert werden. Im Normalfall weist Ubuntu einen auf neue Updates hin.
Gasterweiterungen installieren
Dieser Schritt ist nur notwendig, wenn man Ubuntu in einer virtuellen Machine mit VirtualBox installiert. Die Gasterweiterungen können über das Menu Geräte → Gasterweiterungen installiert werden.
Installation von Sun Java JDK
Android benötigt für Froyo (Version 2.2) und früher Java 1.5.
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse" $ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse" $ sudo apt-get update $ sudo apt-get install sun-java5-jdk
Installation zusätzlich benötigter Pakete
Zum Kompilieren von Android werden folgende zusätzliche Pakete installiert. Dieser Schritt stammt von http://source.android.com/source/initializing.html
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386
Gemeinsames Verzeichnis von VM und Host-System anlegen
Auch dieser Schritt wird nur benötigt, wenn man Ubuntu in einer virtuellen Machine betreibt. Wir legen ein Verzeichnis fest, das zwischen der virtuellen Machine und dem Host-System geteilt wird. Auf diese Weise kann man leicht Dateien zwischen den Systemen austauschen.
- Menu Geräte → Gemeinsame Ordner
- Verzeichnis auswählen, in dem das Medion SDK (zip) liegt und Namen für das Gemeinsame Verzeichnis festlegen
- Mountpoint für das gemeinsame Verzeichnis anlegen:
$ sudo mkdir /mnt/shared
- Gemeinsames Verzeichnis mounten:
$ sudo mount -t vboxsf <Name von vorher> /mnt/shared
Medion SDK installieren
Wir installieren das Medion SDK in unserem Home-Verzeichnis
$ cd $ sudo tar xzvf /mnt/shared/gpl_source_md86597_86589.tar.gz $ sudo chown -R hacker:hacker ~/MediOn_SDK_v1.3_SVAFDP02D
PATH setzen
Die PATH-Variable muss noch gesetzt werden, damit auch tatsächlich Java 1.5 zum Kompilieren benutzt wird. Dieser Befehl kann auch in ~/.bashrc
eingetragen werden, damit man ihn nicht jedes mal vor dem Kompilieren eingeben muss.
$ export PATH=/usr/lib/jvm/java-1.5.0-sun-1.5.0.22/bin:$PATH
Cross Compile Toolchain installieren
Dieser Schritt ist nur beim ersten Ausführen notwendig. Die Cross Compile Toolchain wird benötigt, weil wir für die ARM-Plattform kompilieren und die Entwicklungsumgebung auf x86 läuft. Die Installation wurde aber von Skyviia sehr vereinfacht.
$ cd ~/MediOn_SDK_v1.3_SVAFDP02D $ ./8860_menu.sh 9)
Dateien anpassen
Der Kompiler schlägt an einigen Stellen fehl, wenn man diese Dateien nicht anpasst. Das Verhalten kann von System zu System unterschiedlich sein. Auf meinem Gentoo Linux konnte ich zum Beispiel mit weniger Anpassungen kompilieren. Für Ubuntu 12.04 sind diese Anpassungen nötig:
$BASIS/skydroid-2.2/device/skyviia/Tools/scan_f/Android.mk # Zeile 21 auskommentieren $BASIS/skydroid-2.2/build/core/combo/HOST-linux-x86.mk # Zeile 33 -lpthread ergänzen $BASIS/skydroid-2.2/frameworks/base/libs/utils/Android.mk # Zeile 57 -fpermissive ergänzen $BASIS/skydroid-2.2/device/skyviia/sv8860/Android.mk # alles auskommentieren $BASIS/skydroid-2.2/frameworks/base/tools/aapt/Android.mk # Zeile 41 -lpthread ergänzen $BASIS/skydroid-2.2/frameworks/base/tools/localize/Android.mk # Zeile 37 -lpthread ergänzen
Kompilieren
./8860_menu.sh 3) Build FW of Hybrid STB 1) Make world -- Debug build -- adb enable
Bei dem Build-Vorgang werden jeweils der Bootloader u-boot, der Linux-Kernel und die Android-Plattform gebaut. Wenn man u-boot und Kernel bei einem Durchlauf bereits erfolgreich gebaut hat, kann man den Build-Vorgang beschleunigen, indem man diese beiden Teile auskommentiert in $BASIS/build_script/build_firmware.sh
ab Zeile 304.
Flashen
Wenn man ein fertiges .fw Image gebaut hat, kann man es in den Flash-Speicher der Box flashen.