关于CK的介绍我就不多说了,大家可以拜读下bfs (http://ck.kolivas.org/)。
第一步下载内核源码。
www.kernel.org 中找,但是我想找特定的内核代码的时候在主页翻 了半天没有找到,后来在这里发现了ftp://ftp.kernel.org/pub/linux/kernel/v2.6/,想找3.0的版本可以把v2.6修改为v3.0。
我找的是2.6.32.59 stable的分支。
[root用户下操作]
解压:tar jxvf linux-*
[ck 的安装]
补丁:cp 2.6.32.40-sched-bfs-404.patch linux-*
patch -p1 < 2.6.32.40-sched-bfs-404.patch
配置:make menuconfig
编译:make bzImage (比较耗时)
make modules modules_install
安装:make install
[这样只会安装zImage,和System.map]
[启动配置]
添加 initrd.img:
mkinitramfs 2.6.32.59 -o /boot/initrd.img-2.6.32.59
ubuntu@ubuntu-laptop:/boot$ ls
abi-2.6.32-24-generic System.map-2.6.32-24-generic
abi-2.6.32-31-generic System.map-2.6.32-31-generic
Bak_System.map-2.6.32-24-generic <span style="color:#CC0000;">System.map-2.6.32.59</span>
config-2.6.32-24-generic System.map-2.6.32.59.old
config-2.6.32-31-generic System.map-2.6.37
<span style="color:#CC0000;">config-2.6.32.59</span> System.map.old
config-2.6.32.59.old vmcoreinfo-2.6.32-24-generic
config-2.6.37 vmcoreinfo-2.6.32-31-generic
grub vmlinuz-2.6.32-24-generic
initrd.img-2.6.32-24-generic vmlinuz-2.6.32-31-generic
initrd.img-2.6.32-31-generic <span style="color:#CC0000;">vmlinuz-2.6.32.59</span>
<span style="color:#CC0000;">initrd.img-2.6.32.59-richard</span> vmlinuz-2.6.32.59.old
memtest86+.binvmlinuz-2.6.37
System.mapvmlinuz-2.6.37.old
ubuntu@ubuntu-laptop:/boot$
修改/boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
set saved_entry=${prev_saved_entry}
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z ${boot_once} ]; then
saved_entry=${chosen}
save_env saved_entry
fi
}
function recordfail {
set recordfail=1
if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod ext2
set root='(hd0,3)'
search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
fi
fi
insmod ext2
set root='(hd0,3)'
search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
if [ ${recordfail} = 1 ]; then
set timeout=-1
else
set timeout=10
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
#menuentry 'Ubuntu, with Linux 2.6.37' --class ubuntu --class gnu-linux --class gnu --class os {
# recordfail
# insmod ext2
# set root='(hd0,3)'
# search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
# linux /boot/vmlinuz-2.6.37 root=/dev/sda3 ro quiet splash
#}
#menuentry 'Ubuntu, with Linux 2.6.37 (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
# recordfail
# insmod ext2
# set root='(hd0,3)'
# search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
# echo'Loading Linux 2.6.37 ...'
# linux /boot/vmlinuz-2.6.37 root=/dev/sda3 ro single
# echo'Loading initial ramdisk ...'
#}
#menuentry 'Ubuntu, with Linux 2.6.37.old' --class ubuntu --class gnu-linux --class gnu --class os {
# recordfail
# insmod ext2
# set root='(hd0,3)'
# search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
# linux /boot/vmlinuz-2.6.37.old root=/dev/sda3 ro quiet splash
#}
#menuentry 'Ubuntu, with Linux 2.6.37.old (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
# recordfail
# insmod ext2
# set root='(hd0,3)'
# search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
# echo'Loading Linux 2.6.37.old ...'
# linux /boot/vmlinuz-2.6.37.old root=/dev/sda3 ro single
# echo'Loading initial ramdisk ...'
#}
#menuentry 'Ubuntu, with Linux 2.6.32-31-generic' --class ubuntu --class gnu-linux --class gnu --class os {
# recordfail
# insmod ext2
# set root='(hd0,3)'
# search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
# linux /boot/vmlinuz-2.6.32-31-generic root=UUID=886aea56-c98a-4b80-a0e3-026900d0b720 ro quiet splash
# initrd /boot/initrd.img-2.6.32-31-generic
#}
#menuentry 'Ubuntu, with Linux 2.6.32-31-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
# recordfail
# insmod ext2
# set root='(hd0,3)'
# search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
# linux /boot/vmlinuz-2.6.32-31-generic root=UUID=886aea56-c98a-4b80-a0e3-026900d0b720 ro single
# echo'Loading initial ramdisk ...'
# initrd /boot/initrd.img-2.6.32-31-generic
#}
menuentry 'Ubuntu, with Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,3)'
search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
linux /boot/vmlinuz-2.6.32-24-generic root=UUID=886aea56-c98a-4b80-a0e3-026900d0b720 ro quiet splash
initrd /boot/initrd.img-2.6.32-24-generic
}
menuentry '<span style="color:#CC0000;">Ubuntu, with Linux 2.6.32-59-Richard BFS</span>' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,3)'
search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
linux /boot/<span style="color:#CC0000;">vmlinuz-2.6.32.59</span> root=UUID=886aea56-c98a-4b80-a0e3-026900d0b720 ro quiet splash
initrd /boot/<span style="color:#CC0000;">initrd.img-2.6.32.59-richard</span>
}
menuentry 'Ubuntu, with Linux 2.6.32-24-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,3)'
search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
echo'Loading Linux 2.6.32-24-generic ...'
linux /boot/vmlinuz-2.6.32-24-generic root=UUID=886aea56-c98a-4b80-a0e3-026900d0b720 ro single
echo'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-24-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_memtest86+ ###
#menuentry "Memory test (memtest86+)" {
# insmod ext2
# set root='(hd0,3)'
# search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
# linux16 /boot/memtest86+.bin
#}
#menuentry "Memory test (memtest86+, serial console 115200)" {
# insmod ext2
# set root='(hd0,3)'
# search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
# linux16 /boot/memtest86+.bin console=ttyS0,115200n8
#}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 10f010f4f010e1b0
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### 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.
### END /etc/grub.d/40_custom ###
重启您的系统,有的驱动需要更新下,我的现在是nvidia GF9300M ,幸好我之前有备份。