redhat 9.0 kernel 2.4.20-8.tar.gz
1.先确定是升级内核还是用自己带的内核心,如果是升级你可以到www.kernel.org上下载内核.
然后把它#mv kernel-2.4.20-8.tar.gz /usr/src目录下.
2.然后如果是用自己带的内核,需要检查kernel, kernel-source,kernel-headers,rpm软件包是否被安装.
用#rpm -qa 软件包名确定是否安装,如果没有用自带的cdrom装用rpm -ivh 软件包名
3.然后确定/usr/include/linux是否指向 /usr/src/linux/include/linux一些头文件,前提要把原来的linux符号链接给删除,cd /usr/src,rm linux删除符号链接.然后ln -s kernel-版本号 linux.
4.然后以上步骤好了之后然后进入/usr/src/linux目录
5.最好vi Makefile把EXTRAVERSION最后的-8后面加上你喜欢的后缀比方xx这是一个内核心出现不同的变体以区别不同的内核版本.
6.然后cd ..回到上级目录就是/usr/src/linux目录,然后最好make mrproper清除以前编译过的文件,一般下载新的不需要但最好清楚一下避免一些麻烦,然后make menuconfig/xconfig config配置内核,我本人比较喜欢菜单形式的配置,就用第一个吧,然后配置好内核后保存,内核的配置网上比较多况且配置选项特多有几千个,有些可以编译到内核里去,有些可以不编译可以以模块modules形式以后加载这也是为了节约内存的使用.模块就是一些设备的驱动程序,有MTD子系统,一些网卡的驱动模块,一些fs文件系统模块,一些网络协议的模块,还有些程序调试模块反正挺多的.有些你根本用不到.但了解一些也是有好处的.配置好之后 ESC然后询问你是否保存就yes
其实你只要编译一次最好把隐藏的.config文件保存起来以后恢复有帮助.这个文件要用ls -a才能被看到.
7.make bzImage压缩过的映像.如果要arm就看ReadMe或Install文档吧在内核源代码下.
8.make modules编译模块,编译时候就慢慢等吧.
9.make modules_install安装编译好的内核心一般安装到/lib/modules/目录下
8.最后把编译好的内核cp -rf /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-内核心版本的目录下(这个目录前提要自己创建.
9.然后cp -rf /usr/src/linux/System.mp /boot/System.map-内核版本号目录下需先创建目录
接着rm System.map自身的链接,然后ln -s System.map-内核版本号目录下需先创建目录 System.map
10.接着mkinitrd /boot/initrd-内核心版本.img 内核版本好具体用发.看帮助在终端#mkinitrd就可以
11.最后配置grub或lilo引导装载程序照着系统/boot/grub/grub.conf上面写,集体内容可以
title test标题
root (hd0,x)
kernel /vmlinuz-内核心版本号/bzImage ro root=根分区所在区(/dev/xx)或opition
initrd /initrd-内核心版本号
总结如果想了解grub或lilo最好多实验,有时候会error15的错误要不找不root根分区,要panic内核恐慌init=opition的错误.其实都是grub.conf配置文件的错误.多用grub的编辑模式修改然后就可以找出问题的所在.然后进系统修改保存即可.
我写的内核编译文档难免会出错希望能提出宝贵的意见.
本文转自zh888 51CTO博客,原文链接:http://blog.51cto.com/zh888/327838,如需转载请自行联系原作者