发新话题
打印

RedHat AS 4.0 U2内核编译指南

RedHat AS 4.0 U2内核编译指南

OS redhat as4.0 u2 kernel 2.6.9.tar.gz
1.先确定是升级内核还是用自己带的内核心,如果是升级你可以到www.kernel.org上下载内核.
然后把它#mv kernel-2.6.9.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 dep 然后make bzImage压缩过的内核映像.

8.make modules编译模块,编译时候就慢慢等吧.

9.make modules_install安装编译好的内核心一般安装到/lib/modules/目录下(最后一部也可以用make install来完成以下工作但本人采用以下方法)

10.最后把编译好的内核cp -rf /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-内核心版本的目录下(这个目录前提要自己创建).
11.然后cp -rf /usr/src/linux/System.mp /boot/System.map-内核版本号目录下需先创建目录

接着rm System.map自身的链接,然后ln -s System.map-内核版本号目录下需先创建目录 System.map
12.接着mkinitrd /boot/initrd-内核心版本.img  内核版本号具体用法.看帮助在终端#mkinitrd就可以

13.最后配置grub或lilo引导装载程序照着系统/boot/grub/grub.conf上面写,具体内容可以为
  title test标题
  root (hdx,y)//x和y都是从零开始的,比如(hd0,1)代表第一个硬盘第二个分区为hda2
 kernel /vmlinuz-内核心版本号/bzImage ro root=根分区所在区(/dev/xx)
    initrd /initrd-内核心版本号

  总结如果想了解grub或lilo最好多实验,有时候会error15的错误要不找不root根分区,要panic内核恐慌init=option的错误.其实都是grub.conf配置文件的错误.多用grub的编辑模式修改,然后就可以找出问题的所在,然后进系统修改保存即可.我写的内核编译文档难免会出错希望能提出宝贵的意见.      

TOP

发新话题