Pages

Friday, 13 February 2015

Cara Build Kernel Android Dari Awal (untuk pemula) BASIC 1

Hi, kali ini mumpung punya waktu luang dan kesempatan, saya mau membagikan sedikit pengetahuan mengenai cara membuat/build kernel android.

Banyak para pemula yang ingin memulai develop android, tapi tidak tahu harus memulai darimana, maka saat ini saya ingin berbagi pengetahuan cara membuilding kernel from source code.

Hal pertama yang dibutuhkan adalah PC/Laptop yang sudah terinstall OS Linux dan mempunyai koneksi internet yang baik, saya sarankan memakai Ubuntu (32/64 bit).

Pada ubuntu kita harus menyesuaikan building environment terlebih dahulu agar dapat memulai compiling kernel.

1. Menginstall JDK, ubuntu membutuhkan OpenJDK, caranya buka terminal (ctrl+alt+t), lalu ketik perintah berikut:

sudo apt-get update
sudo apt-get install openjdk-7-jdk

2. Install library yang diperlukan,

sudo apt-get install git 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 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

sudo apt-get install lzop

3. Tambahan untuk ubuntu 14.04,

sudo apt-get install bison g++-multilib git gperf libxml2-utils

Nah, sekarang environment untuk membuild kernel sudah selesai.

Langkah selanjutnya, kita mengkonfigurasi USB access agar dapat membaca device android.

- membuat file android rules

mkdir -p tmp

di dalam folder tmp tersebut buat file kosong dan beri nama android.rules
lalu tulis baris berikut ini dalam file tersebut

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"

lalu save file tersebut.

Buka terminal, jalankan perintah berikut:

sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 0644 /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules

- selanjutnya mendownload toolchains untuk building (saya contohkan disini untuk processors ARM)

Toolchains bisa didownload disini --> Toolchains ARM Embedded
Lalu ekstrak di home ubuntu
Rename foldernya jadi toolchain

- download source code kernel untuk device anda dari vendor masing-masing

Sekarang persiapannya sudah selesai, mari kita memulai building kernel :)

Buka terminal:

mkdir -p kernel

lalu ekstrak seluruh source code dalam folder kernel tersebut.

cd kernel
gedit Makefile

Edit Makefile cari line berikut CROSS_COMPILE=
Lalu ubah sesuai  lokasi toolchain kalian, contoh toolchain saya

CROSS_COMPILE    ?= /home/khristian/toolchain/bin/arm-none-eabi-

Save Makefilenya.

Ketikan perintah config sesuai codename device kalian yang berada pada arch/.../configs/
Contoh device saya adalah S6310 royss, maka config ada pada kernel/arch/arm/configs/

make "config sesuai devicenya" contoh yang saya jadi:

make royss_defconfig
make -j2

Angka 2 bisa diganti sesuai dengan jumlah proccesor yang digunakan pada laptop/PC yang anda gunakan untuk compiling. 2 berarti proccesornya dual core, jika quadcore berarti ganti dengan 4.

Maka akan compile secara otomatis, tunggu hingga selesai, hasilnya akan ada pada /kernel/arch/.../boot/

Berupa zImage.

Ok sekian cara membuild kernel from the source. Tapi ini masih basic saja, masih banyak tahapan lainnya yang diperlukan agar kernel bisa digunakan pada device.

Salah satunya menyatukan image dengan ramdisk, editing, update, menambahkan fitur, dan lain-lain. Untuk hal itu kita akan bahas dilain waktu.

Regards, Shinkumara 2015 (Khristian Swandy Chandra)
Thanks to Saumitra Yadav, ocoot, mamutos, and all XDA developers

Donasi: Rek BCA 5420374927 


Follow @Shin_kumara
Facebook Shinkumara


tags: build kernel, kernel, source code, ubuntu, android, xda, tools, modifikasi

No comments: