编译内核

来源:互联网 发布:英菲克网络机顶盒破解 编辑:程序博客网 时间:2024/05/16 07:55
首先,说明下make mrproper和make clean的区别:
make mrproper:保证源代码的干净.即清除原来配置时产生的一些文件和配置文件,使源代码恢复到最初
              状态.一般得到源代码后都应先执行下此命令.
make clean:清除配置时产生的大部分文件,但是保留配置文件.
下面说说我对编译2.4和2.6内核还有2.4升级到2.6内核的一些理解和简单步骤.
编译2.4内核.
第一步
下载内核源代码,地球人都知道可以从http://www.kernel.org/下载到最新的源代码.
第二步
将其解压缩在/usr/src/目录下.
  如果是.tar.gz格式:
    1)tar xzvf ****.tar.gz 或
    2)gzip -cd ****.tar.gz | tar xvf -
  如果是.tar.bz2
    1)tar xjvf ****.tar.bz2 或
    2)bzip2 -cd ****.tar.bz2 | tar xvf -
第三步
#make mrproper         得到源代码后,将其净化.
第四步
#make menuconfig       对内核选项进行配置.
第五步
#make dep              建立模块间的依赖信息.
第六步
#make clean            删除配置时留下的一些不用的文件.
第七步
#make bzImage          编译内核.内核较小时可以用make zImage
第八步
#make modules          编译模块.
第九步
#su -                  切换到管理员状态,之后输入管理员密码.
第十步
#make modules_install   安装模块.
此时/lib/modules/下应该新生成一个KERNEL_VERSION文件.
第十一步
#mkinitrd /boot/initrd-KERNEL_VERSION.img KERNEL_VERSION  生成启动镜像文件
到此为止,构建内核完毕,第十二步把内核映象和System.map拷贝到/root/下
第十三步为修改gurb配置文件.
第十二步
#cp arch/i386/boot/bzImage /boot/bzImage-KERNEL_VERSION
#cp System.map /boot/System.map-KERNEL_VERSION
#ln -s /boot/System.map-KERNEL_VERSION /boot/System.map
第十三步
#vi /etc/grub_conf     修改grub配置文件
在里面加上如下行:
title Redhat Linux(KERNEL_VERSION)
root (hd0,0)
kernel /boot/bzImage-KERNEL_VERSION ro root=LABEL=/
initrd /boot/initrd-KERNEL_VERSION.img
保存即可,grub修改后不用重新启动.直接生效.
重启,启动grub时就可看到自己新的内核.
步骤总结如下:
解压内核源代码到/usr/src/下后
1,  make mrproper
2,  make menuconfig
3,  make dep
4,  make clean
5,  make bzImage
6,  make modules
7,  su -
8,  make modules_install
9,  mkinitrd /boot/initrd-KERNEL_VERSION.img KERNEL_VERSION 
10, cp arch/i386/boot/bzImage /boot/bzImage-KERNEL_VERSION
11, cp System.map /boot/System.map-KERNEL_VERSION
12, ln -s /boot/System.map-KERNEL_VERSION /boot/System.map
13, 修改grub_conf
编译2.6内核
编译2.6内核要比编译2.4内核简单一些,大体过程和2.4的类似.
但是不用第三步即make dep,然后make(2.6)=make bzImag + make modules(2.4). 其余和上述步骤相同.
2.4升级到2.6的过程:
2.4升级到2.6前需要先阅读2.6内核源代码中的README和Documentation/Changes文件,其中包含了2.6内核所需要的一些软件的最低版本信息和一些其他有用的信息.
在进行升级之前,先要对机器上一些重要的数据做好备份,此点非常重要.
Documentation/Changes中列出了2.6所需要的一些软件的最低版本,可以根据自己的需要,选择性的升级其中的一些软件,但是对于像我一样的菜鸟们建议把软件包都升级,因为暂时还不太了解所有软件包的作用...
其中比较重要的是module_init_tools和glibc.可以使用rmp -U ***.rpm进行软件包的升级.
当把重要的数据备份完,和需要的软件包升级完成后,编译内核.
同2.6内核编译过程.