copyright by Moh_Alfian. Diberdayakan oleh Blogger.
RSS

Seputar Kompilasi Android System


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-jdk
JDK5 :
$ 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
3. 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 45
2. Pesan error berikut ini disebabkan karena libx11-dev belum terinstal.
make: *** [out/host/linux-x86/obj/executables/emulator_intermediates/android/skin/window.o] Error 1
3. Pesan error berikut ini disebabkan karena libncurses5-dev belum terinstal.
...cannot find -lncurses 
4. 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 1
Solusinya 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 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
0Comments

0 komentar:

Posting Komentar

Sms Gratis gan..


Make Widget

Pengikut