-=- LogCode.net -=- ::Daily Hacker Log:: -------------------- Subject : Linux Kernel Hacking for Newbies Part 1 Author : th3c0d3c Contact : th3c0d3c@gmail.com License : BSD -=- Intro Perkembangan linux (baca:kernel linux) yang demikian pesat membutuhkan sedikit perhatian bagi para penggiatnya. Hal yang paling dasar adalah mengetahui bagaimana cara kerja dan alur dari linux itu sendiri. Tanpa banyak basa-basi, artikel ini akan membahas alur kerja secara mendalam dari linux kernel itu sendiri. Karena pembahasan yang sangat luas, maka artikel ini akan dibagi menjadi beberapa bagian. Untuk pengenalan awal, saya akan memberi tutorial singkat mengenai cara recompile dari kernel linux. Here we go... -=- Ubuntu Kernel Recompile ( Quick & Dirty Tutorial ) Ini hanyalah contoh sederhana bagaimana cara melakukan recompile terhadap kernel linux. Contoh ini dilakukan diatas mesin Ubuntu ( the most popular linux distro[1]). Tentu caranya sedikit berbeda ketika anda melakukannya pada jenis distro yang lain. 1. Link sh to bash Pada dasarnya shell sh yang dipakai oleh ubuntu itu melakukan symbolic link terhadap dash. ubuntu$ ls -l /bin/sh lrwxrwxrwx 1 root root 4 2009-03-17 11:53 /bin/sh -> dash Pada beberapa kasus shell dash tersebut memiliki masalah ketika melakukan compilasi terhadap kernel. Untuk mengatasinya lakukan symbolic link dari shell sh ke bash. ubuntu$sudo rm -f /bin/sh ubuntu$sudo ln -s /bin/bash /bin/sh 2. Install all kernel recompile software needed Install semua aplikasi yang dibutuhkan untuk melakukan recompile kernel ubuntu$sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 3. Get your kernel source Donwload source code linux kernel dari www.kernel.org. Pada contoh ini saya mengambil source code versi 2.6.29 ubuntu$cd /usr/src ubuntu$wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.bz2 4. unpack the kernel package ubuntu$tar xjf linux-2.6.29.tar.bz2 ubuntu$ln -s linux-2.6.29 linux 5. Patch if thats available Lakukan patch terhadap source code jika terdapat perbaikan terhadap bug yang ada. ubuntu$wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.29.bz2 ubuntu$cd /usr/src/linux ubuntu$sudo bzip2 -dc /usr/src/patch-2.6.29.bz2 | patch -p1 --dry-run ubuntu$sudo bzip2 -dc /usr/src/patch-2.6.29.bz2 | patch -p1 6. Make your current kernel configurations as your new kernel config ubuntu$sudo cp /boot/config-`uname -r` ./.config 7. Hacking the kernel configurations ubuntu$sudo make menuconfig 8. Build the kernel Pada tahap ini, kita melakukan membuild ulang kernel image berdasarkan configurasi yang telah kita buat sebelumnya. ubuntu$sudo make-kpkg clean ubuntu$sudo fakeroot make-kpkg --initrd --append-to-version=-logcode kernel_image \ kernel_headers 9. install your f*ck*ng kernel ubuntu$cd /usr/src ubuntu$sudo dpkg -i linux-headers-2.6.29-logcode_2.6.29-logcode-10.00.Custom_i386.deb ubuntu#sudo dpkg -i linux-image-2.6.29-logcode_2.6.29-logcode-10.00.Custom_i386.deb 10. reboot you box and check your new kernel ubuntu$ uname -a Linux Byteskrew 2.6.29-logcode #1 SMP Thu Jun 4 15:37:39 SGT 2009 i686 GNU/Linux if there any fails, its your stupidity and patch your brain first...!!! -=- Link 1. http://distrowatch.com/ -=- Referensi - Google.com Best Documentations:: /usr/src/linux/README o0o LogCode Documentations o0o