Build Kernel Android Dari Source


Kernel merupakan bagian yang penting dalam sistem operasi, dengan kontrol penuh atas semua yang ada di sistem. Pada kebanyakan sistem, kernel merupakan salah satu dari acara yang dijalankan dalam urutan pertama ketika komputer dinyalakan. Kernel menangani fungsi-fungsi selanjutnya atas proses penyiapan komputer dari sejak komputer dinyalakan seperti menangani layanan input/output dari program lain, menerjemahkanya ke dalam instruksi-instruksi untuk dieksekusi oleh prosesor. Kernel menjadi penghubung antara hardware dengan software pada sistem operasi.


Kernel merupakan komponen penting dalam Android. Android menggunakan Linux Kernel, tetapi tidak sama persis dengan kernel yang ada di Sistem Operasi berbasis Linux lainnya. Terdapat banyak penambahan dan modifikasi biar kernel linux dapat bekerja dengan baik di Android. Para developer lah yang mem-porting linux kernel agar kompatibel dan mampu bekerja dengan Android. Para developer tersebut huga yang membuatkan aneka macam fitur yang bisa ditanamkan di Android.

Dimana kita bisa mendapatkan source code kernel untuk device kita? Kita bisa mencarinya dari website manufaktur device tersebut. Manufaktur-manufaktur besar biasanya merilis source code device mereka di website resminya. Namun, ada juga manufaktur yang merilisnya di website lain mirip Github, Gitlab, dll. Atau bisa juga mengambil langsung dari Code Aurora Forum (CAF) kalau device tersebut memiliki chipset qualcomm. Silahkan cari source code kernel untuk dicompile. Perlu diketahui bahwa source code dari CAF merupakan source code murni untuk chipset tertentu yang belum tersentuh campur tangan dari oem/manufaktur. Sehingga kalau meng-compile dari caf eksklusif tanpa modifikasi mungkin akan gagal atau ada fitur yang tidak bekerja. Untuk itu, carilah kernel source yang khusus untuk device tersebut.

Compile Kernel Android dari Source

Untuk melaksanakan build/compile kernel, perlu PC dengan OS berbasis Linux. Disini aku anggap agan sudah paham dengan perintah/command dasar linux mirip cd, ls, sudo, dll. Pastikan juga PC agan mempunyai koneksi internet yang stabil.

Langkah 1 - Persiapan

Buka Terminal lalu copas command berikut untuk menginstal tools yang diharapkan

sudo apt-get install -y build-essential libncurses5-dev bzip2 git bc 


Lalu buat folder khusus dengan nama bebas semoga gampang diingat

mkdir kernel-source && cd kernel-source 

Langkah 2 - Download Source Kernel

Jika sudah menemukan repo source kernel untuk device agan, lalu git clone dengan command berikut. 

git clone https://github.com/dev-harsh1998/kernel_lenovo_msm8916  

Ganti yang bergaris bawah dengan alamat repo device agan. sebagai contoh saya akan mencompile kernel untuk Lenovo A6000 dari repo milik devharsh1998 di github.

Langkah 3 - Download Toolchain

Toolchain diharapkan untuk mencompile kernel. Ada beberapa pilihan source seperti Google Toolchain, Linaro Toolchain, SaberMod Toolchain, UberTC Toolchain, dan lain-lain. Silahkan pilih yang sesuai selera. Untuk versi biasanya memakai versi 4.9. Jika gagal, silahkan coba toolchain lain yang cocok. Perlu diperhatikan juga arsitektur yang dipakai apakah arm64 (armv8) atau arm (armv7).

git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9 

Contoh diatas aku memakai toolchain untuk arm dari google. Untuk yang lain silahkan cari sendiri :v

Langkah 4 - Waktunya Compile

Jika semua dirasa sudah siap mulai dari OS, Source kernel, dan Toolchain maka sekarang waktunya proses compile/build kernel.

Masuk dulu ke directory source kernel yang sudah di clone tadi dengan cara 'cd '

cd kernel_lenovo_msm8916 

Lalu, masukkan command berikut satu persatu

export ARCH=arm export KBUILD_BUILD_USER=adislice export KBUILD_BUILD_HOST=LaptopApik export CROSS_COMPILE="/home/adislice/kernel-source/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-" 

Contoh diatas untuk arsitektur arm, untuk yang arm64 tinggal ubah saja arm ke arm64. Untuk export CROSS_COMPILE silahkan sesuaikan dengan lokasi/path toolchain agan. Cermati teladan penulisan diatas agar tidak error.

Jika sudah, kemudian masukkan command berikut

make clean && make mrproper make lineageos_a6000_defconfig make -j4 

Contoh diatas untuk Lenovo A6000. Untuk device lain silahkan ganti lineageos_a6000_defconfig dengan defconfig device agan yang berada di arch/arm/configs/ atau arch/arm64/configs
Tunggu sampai simpulan. Berharap saja tidak ada yang error.

Hasil compile/build kernel ada di folder arch/arm/boot/zImage untuk arm atau arch/arm64/boot/Image untuk arm64

Jika proses compile/build gagal, silahkan cari solusi di mbah google. Karena hampir semua solusi ada di mbah google. Jadi, jangan malas yaa :v

Thanks to :
Google
XDA
androguider.com
devharsh1998 untuk source kernel a6000 sebagai teladan
My beloved family
etc.

No comments for "Build Kernel Android Dari Source"