Recent

Kamis, 29 Mei 2014

Compile Kernel



apt-get update
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 \
fakeroot kernel-wedge build-essential makedumpfile libncurses5
Copy source code kernel
cd /usr/src
rm -Rf /usr/src/linux
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.2.tar.xz
tar xJf linux-3.14.2.tar.xz -C /usr/src
ln -s /usr/src/linux-3.14.2 /usr/src/linux
Compile kernel 3.14.2 di Linux
cd /usr/src/linux
cp -vi /boot/config-`uname -r` ./.config
Langkah cp /boot/config* dibutuhkan jika kita ingin konfigurasi kernel yang digunakan sama dengan konfigurasi kernel dari system operasi yang sedang kita gunakan. Kita dapat meloncati hal ini dan langsung ke make menuconfig.
cd /usr/src/linux
make menuconfig
make-kpkg clean

Beberapa alternatif lain untuk mengkonfigurasi kernel linux adalah
cd /usr/src/linux
make menuconfig
atau
vi /usr/src/linux/.config 
 

Proses Compile

Mungkin akan lebih mudah untuk memaksa compile semua source code melalui perintah
cd /usr/src/linux make all Pada awal compile kernel kadang kala kita harus menjawab pertanyaan konfigurasi kalau ternyata konfigurasi kernel yang kita gunakan agak berbeda dengan konfigurasi kernel yang lama.
Proses compile kernel akan memakan waktu lumayan lama, bisa mencapai 2-3 jam atau lebih. Sabar.
Selanjutnya, (atau tanpa "make all") jalankan fakeroot
cd /usr/src/linux fakeroot make-kpkg --initrd --append-to-version=-custom kernel-image kernel-headers Alternatif lain, kalau tidak mau ada kata-kata "-custom" dalam versi yang dibuat bisa menggunakan
cd /usr/src/linux fakeroot make-kpkg --initrd kernel-image kernel-headers
Setelah selesai fakeroot, install image & header kernel menggunakan perintah
cd /usr/src dpkg -i linux-image-3.14.2-custom_3.14.2-custom-10.00.Custom_amd64.deb dpkg -i linux-headers-3.14.2-custom_3.14.2-custom-10.00.Custom_amd64.deb File linux-image dan linux-headers mungkin akan berbeda. Sebaiknya lakukan dulu
cd /usr/src ls pastikan nama file linux-image dan linux-headers-nya apa ..

[edit] GRUB di Ubuntu 9.04 ke bawah

Ubah GRUB untuk menambahkan menu untuk booting
vi /boot/grub/menu.lst Pastikan ada menu untuk booting dari kernel yang baru seperti
title Ubuntu 9.04, kernel 2.6.29.2-custom uuid d0a32d6c-3176-4b92-8cac-6e75acc4348a kernel /boot/vmlinuz-2.6.29.2-custom root=UUID=d0a32d6c-3176-4b92-8cac-6e75acc4348a ro quiet splash initrd /boot/initrd.img-2.6.29.2-custom quiet title Ubuntu 9.04, kernel 2.6.29.2-custom (recovery mode) uuid d0a32d6c-3176-4b92-8cac-6e75acc4348a kernel /boot/vmlinuz-2.6.29.2-custom root=UUID=d0a32d6c-3176-4b92-8cac-6e75acc4348a ro single initrd /boot/initrd.img-2.6.29.2-custom

[edit] GRUB di Ubuntu 9.10 ke atas

Gunakan cara nekad
update-grub Jika perintah di atas sudah dilakukan, kita tidak perlu lagi melakukan perintah di bawah ini. Kalau mau iseng mencoba mengedit juga bisa mengubah file,
vi /boot/grub/grub.cfg Isi informasi kernel yang baru
### BEGIN /etc/grub.d/40_custom ### # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry "Ubuntu, Linux 2.6.32.3-custom" { recordfail=1 if [ -n ${have_grubenv} ]; then save_env recordfail; fi set quiet=1 insmod ext2 set root=(hd0,6) search --no-floppy --fs-uuid --set e2482ccc-1480-4c25-adf8-bc77a255b3b3 linux /boot/vmlinuz-2.6.32.3-custom root=UUID=e2482ccc-1480-4c25-adf8-bc77a255b3b3 ro crashkernel=384M-2G:64M,2G-:128M quiet splash initrd /boot/initrd.img-2.6.32.3-custom } menuentry "Ubuntu, Linux 2.6.32.3-custom (recovery mode)" { recordfail=1 if [ -n ${have_grubenv} ]; then save_env recordfail; fi insmod ext2 set root=(hd0,6) search --no-floppy --fs-uuid --set e2482ccc-1480-4c25-adf8-bc77a255b3b3 linux /boot/vmlinuz-2.6.32.3-custom root=UUID=e2482ccc-1480-4c25-adf8-bc77a255b3b3 ro single initrd /boot/initrd.img-2.6.32.3-custom } ### END /etc/grub.d/40_custom ###

[edit] Shutdown dan Reboot komputer

shutdown -r now Setelah reboot & masuk lagi ke shell lakukan ..
uname -r akan keluar versi kernel yang anda gunakan, misalnya
3.14.2-custom