编译linux内核初体验

来源:互联网 发布:英语音译软件 编辑:程序博客网 时间:2024/05/18 03:32
 20130515
编译的步骤如下:
1.从www.kernel.org 网站上下载linux内核源代码
2.解压到/usr/src/kernel    tar -Jxv -f linux.xxxx   -C  /usr/src/
3.进入解压后的文件夹
4. make mrproper  清除原有的配置文件和中间文件
5. make menuconfig  定制相关的内核功能和模块并save 为config文件,方便下次载入配置
6. make bzImage(编译内核,I为大写的i)
    make modules 编译模块
    make modules_install 安装模块
    make clean 
6.cp /usr/src/kernel/arch/x86/boot/bzImage     /boot/vmlinuz-2.6.34.14  将内核镜像拷到/boot目录下
    cp usr/src/kernel/.config      /boot/config-2.6.34.14  将配置文件拷到/boot目录下备份
7. mkinitrd -v /boot/initrd-2.6.34.14.img   2.6.34.14  创建initrd,开机启动的时候要用到
8.vim /boot/grub/menu.lst 修改开机菜单
title CentOS (2.6.34.14)
root (hd0,0)
kernel /vmlinuz-2.6.34.14   
initrd /initrd-2.6.34.14.img
9.reboot 完毕
问题:内核和源代码编译完占用磁盘空间5031M,其中driver占用2461M,结果导致空间不足,编译失败,用U盘启动进入WINPE后重新分配分区大小后,重新编译。以后编译的时候要保证磁盘空间足够!
统计:make bzImage 耗时7分钟,make modules 耗时30分钟
知识链接:
内核的删除
有时我们基于各种原因可能删除一些老的内核,基本步骤如下:
1. 查看当前系统的内核版本,千万不要删除错了
      #uname -r  或者  uname -a
2. 对于通过rpm方式安装的内核,删除就很简单了。直接用rpm -e 相应的内核版本就能删除掉了。
   对于手工编译安装的内核,删除起来稍微就要麻烦些了。
    (1)、修改 /etc/grub/grub.conf 或 /etc/grub/menu.lst ,删除那些不想要的内核选项。
    (2)、删除 /lib/modules/相对应的内核版本的目录
    (3)、删除 /boot/相对应的内核版本的文件

欢迎补充和指点。
原创粉丝点击