1、到http://www.kernel.org/下载源码包
2、解压压缩包
#tar -zxvf linux-xx.xx.xx.tar.gz (注:xx.xx.xx.表示内核版本号)
3、3、删除以前可能失败的编译配置信息
#cd /usr/src/linux-xx.xx.xx
#make mrproper
注:make mrproper 把原来编译产生的垃圾删除
4、内核模块配置
编译内核最关键的地方就是配置内核,在这个步骤中,可以根据需要选择增加新的功能 --例如支持NTFS ,无线网络,蓝牙等,或者裁剪掉不需要用到的功能。配置内核可以根据需要与爱好使用下面命令中的一个:
#make config (基于文本的最为传统的配置界面)
#make menuconfig (基于文本选单的配置界面)
#make xconfig (基于图形窗口模式的配置界面)
#make oldconfig (如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
进行配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。例如,如果需要内核支持DOS分区的文件系统,则要在文件系统部分选择FAT或DOS系统支持;系统如果配有网卡、PCMCIA卡等,需要在网络配置中选择相应卡的类型。
选择相应的配置时,有三种选择,它们分别代表的含义如下:
“Y”- 将该功能编译进内核
“N”- 不将该功能编译进内核
“M”- 将该功能编译成可以在需要时动态插入到内核中的模块。
将与核心其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响。许多功能都可以这样处理,例如像上面提到的网卡的支持、对FAT等文件系统的支持 。
5、创建压缩内核镜像
#make bzImage
6、编译选择的模块
#make modules
7、将编译后的模块转移到系统标准位置
#make modules_install
8、安装内核
#make install
make install将执行以下操作:
(1)把压缩内核映象拷贝到/boot目录下, 并创建相应的System.map符号链接;
(2)修改bootloader的配置文件;
(3)调用mkinitrd程序创建内核的initrd映象. 对于GRUB而言, 将在/boot/grub/grub.conf配置文件增加如下类似的配置行:
title Red Hat Linux (2.***)
root(hd0, 1)
kernel /boot/vmlinuz-2.*** ro root=LABEL=/
initrd /boot/initrd-2.***.img
模块在系统中的标准目录位于/lib/modules/x.y.z,后面的x.y.z是版本号,为安全起见,在运行#make modules_install之前最好对/lib/modules进行备份。模块通常是带有扩展名.o的文件,使用命令#lsmod可以对当前内核的模块进行列表。
9、重启系统,即可测试最新的内核了。