Kamis, 30 Januari 2014

Cara Bikin Kernel Sendiri


oke mungkin sekaranglah saatnya untuk berbagi kepada orang banyak. dan merasakan bagaimana bikin kernel dan disalahin gara2 kernel sendiri. pffft

ini cara tergampang, langsung aja

Persyaratan:
1. ubuntu, linux gakmasalah, 32/64 bit juga gakmasalah, mau dualboot atau apa juga gakmasalah
2. beberapa package untuk mengcompile kernel
3. source kode untuk device anda
4. toolchains

=======================================================================
Package 1:
buka terminal, lalu pastekan ini

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 git

jika ente make ubuntu 12.04, pastekan ini juga setelah progress diatas kelar
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

oke sekarang kita kelar untuk menginstall yang dibutuhkan untuk compile kernel

Package 2:
sekarang kita disini butuh java untuk mensupport. buka terminal lalu pastekan ini

sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get-install sun-java6-jdk

dan sekarang ente sudah memenuhi persayaratan untuk membuat kernel
=======================================================================
Next sekarang ente butuh bootimagetools,source code of kernel dan toolchains untuk compile kernel:

Bootimagetools: https://github.com/SaumitraYadav/Boot-Image-tools
Source code kernel: ente cari di opensource.samsung.com/di doc juga ada (kalo gak salah)
toolchains: nah disini ane makenya toolchains arm-eabi-4.4.3 yg di share di githubnya si DoomLord, ente cari sendiri, ane gak nyimpan link nya :v

=========================================================================

sekarang, waktunya buat build kernel....

1. buka terminal lalu pastekan ini
mkdir kernel
itu untuk membuat direktori baru di folder home anda

2. ekstrack source kernel yang udah ente download ke dalam folder kernel
3. lalu ketikkan ini di terminal
gedit Makefile
lalu file makenya akan terbuka, dan lihat di CROSS_COMPILE= "your toolchain path"

4. lalu bikin folder baru di dir home ente untuk naroh toolchains ente, dan ekstrak toolchainsnya
5. balik lagi ke makefile tersebut, "your toolchain path" itu ganti dengan path toolchains dimana ente ngeletakkinnya, misal 
CROSS_COMPILE?= /home/octo/NDK/arm-eabi-4.4.3/bin/arm-eabi-
itu punya ane, sesuaiin aja kek punya ente
6. lalu save dan exit makefilenya
7. nah ini last step....
8. sekarang runnning file konfig punya device kita, ketik  di terminal 
make royss_user_defconfig
pastiin gakada yang salah pas di step itu, lalu kemudian pastekan ini ke terminal
make -j5
dan tunggu hingga kelar dan gakada error muncul (kalo cuma warning doang gak masalah) ini cukup lama nunggu bisa sampe 15menit an so tinggal ngopi/ngerokok dulu aja :3 nanti kalo udah kelar pasti ada tulisannya zImage ready
file hasilnya bisa di ambil di Kernel/arch/arm/boot/zImage

=================================================================================

So, sekarang kita akan menyatukan zImage dengan boot.img

-download atau ambil file boot.img dari stock maupun custom kernel
-download dan ekstrak file bootimgtools
-lmasuk ke bootimagetools Directory melalui terminal

===================================================
1. unpack boot.img(This Will extract the boot.img)

$ mkdir -p unpack
$ tools/unpackbootimg -i source_img/boot.img -o unpack

2. Extracting boot.img-ramdisk.gz(This Will Extract The ramdisk From the boot.img)

$ mkdir -p boot
$ cd boot
$ gzip -dc ../unpack/boot.img-ramdisk.gz | cpio -i
$ cd ../

3. Packing a new ramdisk(This Will Pack A new ramdisk which will be used in your kernel)

$ tools/mkbootfs boot | gzip > unpack/boot.img-ramdisk-new.gz

sekarang kita disini akan menyatukan file zImage dengan boot.img, jadi copy zImage dariarch/arm/boot
ke folder unpack di bootimagetools directory dan delete boot.img-zImage. sekarang file zImage yang telah di copy tadi, rename jadi boot.img-zImage

4. Create a new boot.img:

$ mkdir -p target_img
$ tools/mkbootimg --kernel unpack/boot.img-zImage --ramdisk unpack/boot.img-ramdisk-new.gz -o target_img/boot.img --base `cat unpack/boot.img-base`

5. Done. hasilnya bisa dilihat di folder target_img
6. disini filenya berbentuk boot.img, bisa di flash via CWM tapi untuk odin keknya gakbisa, kudu diubah lagi ke boot.tar.md5 kalo gaksalah jadi ente kudu download tool lagi buat itu
7. test kernelnya dan jalankan, jika wifi gak nyala ikutin step berikutnya

=============================================================================

sekarang disini kita akan membuat blutut/mobile data/wifi berkerja. kita disini butuh module nya untuk itu. ketik di terminal

cd kernel
mkdir modules
find . -name '*ko' -exec cp '{}' modules \;

Okay sekarang file modulenya ada di dalam kernel/modules. eksekusinya tinggal flash aja lewat cwm, masukin file module nya ke system/lib/modules

NB:
Untuk flashable nya bisa pake punya ane yg di kernel2 itu. itu flashable khusus untuk ngflash kernel buat nih device, tinggal masukin2 aja dan gakusah pake ngedit lagi updater.scriptnya

Buatan Octo O

Tidak ada komentar:

Posting Komentar