此文档只做步骤总结,具体每个步骤细节部分可在网络上搜索,有大量资料可供参考。
编译环境:VMware9.0+Fedora9.0
内核版本:2.6.32.67
内核运行平台:x86
第一步:获取内核源码
编译内核之前,首先是获取内核源码,这里强调一点,必须从官网http://kernel.org/下载内核源码,因为我们的运行环境是x86平台,在别处下载的源码文件可能被别人修改过而无法在x86下运行。
我下载的版本是2.6.32.67.tar.xz,获取到源码后在将源码解压到linux系统下/mylinux目录下
第二步:配置内核
这里推荐将已安装的的linux系统的配置文件拷贝到我们刚下载的linux根目录下,我的linux系统的配置文件在
/boot/config-2.6.25-14.fc9.i686,所以执行下面这三条命令配置自己的内核
# cd /mylinux/linux-2.6.32.67
# cp /boot/config-2.6.25-14.fc9.i686 ./.config
# make menuconfig
第三步:编译内核
# make
这里需要较长的时间编译,我在虚拟机下使用了一个小时Fedora下如何编译自己的linux内核(x86平台),耐心等待吧。
编译好之后,在/mylinux/linux-2.6.32.67/arch/x86/boot下有一个bzImage文件,该文件就是编译好的内核文件
第四步:编译内核模块
# make modules
第四.一步:安装内核模块
# make modules_install
此步骤安装完成后,在 /lib/modules/ 目录下将会有一个文件路径,2.6.32.67
第五步:安装内核
做这一步,有两种办法,第一种是通过文件拷贝的方法;第二种是通过命令 make install
第一种:
1)#cp /mylinux/linux-2.6.32.67/arch/x86/boot/bzImage /boot/vmlinuz-2.6.32.67
将编译好的内核文件拷贝到/boot目录下,并重命名为 vmlinuz-2.6.32.67
2)# cd /mylinux/linux-2.6.32.67
# mkinitrd initrd-2.6.32 2.6.32.67
使用mkinitrd命令只做内核的ramdisk, initrd-2.6.32为目标文件,2.6.32.67是在第四步操作中的文件路径
3)# cp /mylinux/linux-2.6.32.67/initrd-2.6.32 /boot/initrd-2.6.32.67.img
将刚制作的ramdisk文件拷贝到/boot目录下并重命名为initrd-2.6.32.67.img
4)# vi /etc/grub.conf
文件中有以下五行,将该5行复制并粘贴
title Fedora(2.6.25-14.fc9.i686)
root (hd0,0)
kernel /vmlinuz-2.6.25-14.fc9.i686 ro root=UUID=22e71db5-cace-421c-94a0-39376ddad2dc rhgb quiet
initrd /initrd-2.6.25-14.fc9.i686.img
粘贴后并修改为以下所示
title Fedora(2.6.25-14.fc9.i686)
root (hd0,0)
kernel /vmlinuz-2.6.25-14.fc9.i686 ro root=UUID=22e71db5-cace-421c-94a0-39376ddad2dc rhgb quiet
initrd /initrd-2.6.25-14.fc9.i686.img
title My_Linux (2.6.32.67)
root (hd0,0)
kernel /vmlinuz-2.6.32.67 ro root=UUID=22e71db5-cace-421c-94a0-39376ddad#2dc rhgb quiet
initrd /initrd-2.6.32.img
部分为需要修改的地方,改完后保存退出
5)# reboot
第二种:
直接使用命令
# cd /mylinux/linux-2.6.32.67
# make install
# reboot
如何更新Linux内核来提升系统性能:http://www.linuxdiyf.com/linux/13327.html
64位ubuntu15.04升级Linux内核到linux4.1.0:http://www.linuxdiyf.com/linux/11805.html
Linux内核3.19.3编译过程:http://www.linuxdiyf.com/linux/11499.html