linux内核系列(一)编译安装Linux内核 2.6.18

1、配置环境

操作系统:CentOS 5.2

下载linux-2.6.18版本的内核,网址:http://www.kernel.org

说明:该编译文档适合2.6.18以上的Linux内核版本,只需所编译的 Linux内核版本不能低于Linux操作系统自身的内核版本,不然会遇到很多问题;

 

2、开始编译

    • cp  ./ linux-2.6.18.tar.gz  /usr/src/
    • tar –zxvf ./linux-2.6.18.tar.gz
    • cd /usr/src/linux-2.6.18
    • //会删除所有的编译生成文件第一次编译时执行
    • make mrproper
    • // 使用本系统内核配置文件(简化配置编译)
    • cp /boot/config-* ./.config
    • make –j8 all
  • 说明:-j8中的8为线程数目(加快编译速度)
  • 内核配置命令

make menuconfig(这个比较常用)
或 make xconfig:图形化配置, 需要qt3
或 make oldconfig:将已有的 .config 放到源码根目录下后执行, 目的是为了复用之前的内核编译选项的配置;
或 make config

linux内核系列(一)编译安装Linux内核 2.6.18

    • 安装内核模块到 /lib/modules 下

        make modules_install

    • 安装内核二进制映像, 生成并安装boot初始化文件系统映像文件

        make install

  • vim /etc/grub.conf后看到如下图所示即可;

linux内核系列(一)编译安装Linux内核 2.6.18

  • 以下参数配置根据安装的linux系统不同可选配置

为新内核创建一个ramdisk,否则系统不能引导;

mkinitrd /boot/initramfs-2.6.18.img 2.6.18

启动效果图:

linux内核系列(一)编译安装Linux内核 2.6.18

 

3、编译中问题总结

  • 提示:Error  not define PATH_MAX...
    解决办法:(编辑) vi /user/src/linux-2.6.18/scripts/mod/sumversion.c文件,添加头文件#include <limits.h>重新编译即可;
  • 错误提示:/user/bin/ld: cannot find –lc
    Collect2: ld returned 1 exit status

解决办法:yum install glibc-static
http://www.360doc.com/content/13/1117/19/9206388_330036790.shtml

 

  • 在make menuconfig时,提示:
    *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. ***  *** Install ncurses (ncurses-devel) and try again. *** make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1make: *** [menuconfig] Error 2
    解决方法:
    用yum install ncursesyum install ncurses-devel解决
上一篇:【转】6.4.6 将驱动编译进Linux内核进行测试


下一篇:将MPLS编译进linux内核中