การ Compile Kernel บน Centos OS อย่างง่าย Support ทั้ง Centos4.x และ 5.x และสามารถประยุคใช้กับ Redhat Fedora ใด้เช่นกัน ตามมาดูเลยครับ ไม่ยากเลย
1 . Download The Kernel Sources
Download Sources จาก mirror ต่างๆ ตัวอย่างเช่นที่ http://www.kernel.org
เลือก Kernel ตัวล่าสุด ( ตอนที่เขียน 2.6.23.9 ) เลือกดาวโหลดแบบ Full มาเลยนะครับ
โดยใช้คำสั่ง
#cd /usr/src
#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.9.tar.bz2
รอจนเสร็จ
2. ทำการแตก File ออกมา โดย
#tar xjf linux-2.6.23.9.tar.bz2
#ln -s linux-2.6.23.9 linux
#cd /usr/src/linux
3. Configure The Kernel โดยคำสั่งง่ายๆ
#make clean && make mrproper
#cp /boot/config-`uname -r` ./.config
ขั้นตอนที่ผ่านมาคือการเก็บ .config ของ Kernel เก่าไว้
#make menuconfig
เพื่อสร้าง Menu Config Kernal ขึ้นมา
เมื่อพบหน้าจอ Config แล้ว ให้ Load ตัว config ที่เก็บไว้ขึ้นมา แล้ว Save ทับไป
ก่อน Save สามารถแก้ไข Kernel ได้เอง ( ไม่แนะนำให้มั่ว อาจจะเจอปัญหา Kernel Panic )
เมื่อเสร็จแล้วก็ จัดการ Compile ได้เลย
#make all
#make modules_install
#make install
ขั้นตอนที่ผ่านมาคือการ Compile Module ต่างๆ และ Install เข้าสู้ Boot Loader
ขั้นตอนสุดท้ายแล้ว ก็คือ การเปลี่ยนต่ำแหน่ง Boot Kernel
#vi /boot/grub/menu.lst
สังเกตุดูจะมี Kernal ที่เราสร้างขึ้นมา
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda3
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.23.8)
root (hd0,0)
kernel /vmlinuz-2.6.23.9 ro root=LABEL=/
initrd /initrd-2.6.23.9.img
title CentOS (2.6.9-55.0.9.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-55.0.9.ELsmp ro root=LABEL=/
initrd /initrd-2.6.9-55.0.9.ELsmp.img
title CentOS (2.6.9-55.0.9.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-55.0.9.EL ro root=LABEL=/
initrd /initrd-2.6.9-55.0.9.EL.img
title CentOS-4 i386 (2.6.9-55.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-55.ELsmp ro root=LABEL=/
initrd /initrd-2.6.9-55.ELsmp.img
title CentOS-4 i386-up (2.6.9-55.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-55.EL ro root=LABEL=/
initrd /initrd-2.6.9-55.EL.img
ตรง default=1 ให้เราแก้เป็น Number ของเราเช่น 0 ดังตัวอย่าง ( มันจะเรียงไป 0 1 2 3 ... )
จากนั้นก็ Reboot ได้เลยครับ โชคดีจงอยู่กับท่านครับ
ถ้า Boot ผ่าน มา ก็สามารถเชค Version ได้เลยจาก
#uname -a จะพบ Kernel ของเราเองครับ ^^
- hack3rb43's blog
- Login or register to post comments

Sun, 02/12/2007 - 01:49
เปิด Section Server ให้ 1 Section เลยเขียนหน่อย ๆ จ้าตี่ เอาเรื่อง YUM
เรื่องที่ตี่เจอทุกวันหละ เอามาเขียนเป็นบทความลง PCLinuxos Mag ให้
คนอ่านได้ความรู้หน่อยจ้า
Sun, 02/12/2007 - 01:45
เยี่ยมเลยครับ คุณ hack3rb43 ไม่ทราบว่า สนใจเขียน review Centos ใน PCLinuxClub Magazine ไหมครับ
-----------------------------------------------------------------------------
RedLine Software - http://www.redlinesoft.net