Untuk
memporting Android System kedalam sebuah mesin (misal ARM processor)
setidaknya ada 4 komponen software yang diperlukan yaitu :
1. Bootloader
2. Linux Image (Kernel)
3. Android System (Root File System)
4. Application
Tulisan kali ini tidak akan membahas
keempat komponen software tersebut namun hanya sedikit catatan teknis
berkaitan dengan proses kompilasi Android System (komponen nomer 3).
Perlu diketahui bahwa proses kompilasi Linux Kernel dan Android System
adalah terpisah sehingga masing-masing dapat dilakukan sendiri-sendiri
dan tidak harus berurutan. Linux kernel perlu di re-kompilasi ulang jika
kita merubah segala sesuatu yang berkaitan dengan kernel dan device
driver. Sedangkan android system perlu di re-kompilasi ulang jika kita
melakukan perubahan di bagian android systemnya seperi misalnya
memodifikasi library, aplikasi default dan lain-lain.
Berikut ini akan saya tuliskan beberapa
hal penting yang perlu diperhatikan dan juga beberapa problem yang
mungkin muncul selama proses kompilasi android system. Dalam proses
kompilasi disini saya menggunakan Ubuntu 11.10 dengan target board
Mini210 FriendlyARM dan compiler arm-linux-gcc versi 4.5.1.
Kompilasi Android memerlukan persiapan
seting environment dan kebutuhan resource yang cukup besar. Bayangkan
saja, setidaknya 6 GB diperlukan untuk menyimpan source code nya sendiri
dan sekitar 25 GB (bahkan bisa sampai 90 GB atau lebih untuk fitur
lengkap) untuk proses kompilasi (sumber referensi disini).
Dalam eksperimen saya, source code linux kernel sebesar 400 MB
memerlukan hardisk space minimal 900MB sedangkan android source code
sebesar 3 GB memerlukan hardisk space minimal 20 GB. Jika kebutuhan
space hardisk tersebut tidak terpenuhi, maka kemungkinan akan
menyebabkan error dimana komputer seperti hang up dan diakhiri dengan munculnya pesan "... killed" seperti contoh berikut ini :
... /bin/bash: line 1: 18273 Killed
Beberapa tool yang perlu dipersiapkan sebelum proses kompilasi android antara lain adalah :
1. Compiler Toolchain. Untuk target
processor arm bisa menggunakan gcc-arm-linux-gnueabi(free),
arm-linux-gcc (free) atau ARMCC RVDS (license).
2. Java Development Kit (JDK). Untuk
Android 2.3 (Gingerbread) ke atas memerlukan JDK6 sedangkan untuk
Android 2.2 (Froyo) kebawah memerlukan JDK5. Karena JDK tidak terdapat
dalam repository Ubuntu 11.10 maka kita perlu mendownloadnya terlebih
dahulu dari repository yang menyediakannya.
JDK6 :$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" $ sudo apt-get update $ sudo apt-get install sun-java6-jdkJDK5 :
$ 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-jdk3. Library dan program berikut ini juga perlu di install terlebih dahulu.
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \ libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \ libxml2-utils xsltproc
Kemungikan error selama proses kompilasi :
1. Jika muncul pesan error berikut ini,
maka berarti anda belum menginstal JDK atau instalasi JDK anda
bermasalah atau setingan path nya belum benar. Silahkan cek dengan
perintah java -version untuk mengetahui apakah instalasi JDK anda sudah benar.
make: *** Waiting for unfinished jobs.... make: *** [out/target/common/docs/doc-comment-check-timestamp] Error 45 make: *** [out/target/common/docs/api-stubs-timestamp] Error 452. Pesan error berikut ini disebabkan karena libx11-dev belum terinstal.
make: *** [out/host/linux-x86/obj/executables/emulator_intermediates/android/skin/window.o] Error 13. Pesan error berikut ini disebabkan karena libncurses5-dev belum terinstal.
...cannot find -lncurses4. Error berikut ini khusus muncul di Ubuntu 11.10 dan processor Intel x86.
error: "_FORTIFY_SOURCE" redefined [-Werror] cc1plus: all warnings being treated as errors make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1Solusinya adalah dengan memodifikasi file build/core/combo/HOST_linux-x86.mk
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0 menjadi HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
5. Pesan-pesan error lain yang
kemungkinan muncul adalah belum terinstalnya library atau program
tertentu yang biasanya ditunjukan dari isi pesan error yang ditampilkan
seperti misalnya :
...it cannot find bison ...it cannot find zlibg ...it cannot find flex
sumber : http://www.agusbj.staff.ugm.ac.id/web/index.php?option=com_content&view=article&id=96:problem-seputar-kompilasi-android&catid=37:programming&Itemid=91
0 komentar:
Posting Komentar