+++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    秀脱linux实战笔记linux-kernel-3.0.3实战片篇:
    
    
       QQ:     6541657 
    
    EMAIL:xiutuo@gmail.com
    
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    
    一:环境
    
    linux: centos6
    
    kernel:linux-3.0.3.tar.bz2
    
    使用root用户编译内核
    
    内核裁剪:
    
    驱动:保留常用USB驱动,支持常用磁盘接口如SCSI,sATA
    
    去掉无线,蓝牙,ISDN,,其他游戏手柄,手持设备等都已去掉
    
    支持ext3,ext4,cifs,nfs,不支持虚拟化
    
    内核debug模式已经关闭,编译方式采用优化code size方式编译
    
    CPU架构:只保留intel,去掉AMD等,cpu采用非抢占调度(server)模式
    
    语言:只保留UTF-8,ISO,简体中文
    
    
    
    二:编译准备
    
    1.准备相关软件包
    
    yum install rpmdevtools yum-utils ncurses-devel make rpm-build rpm-devel
    
    
    三. 源码编译安装步骤
    
    0. 解压源码
    
    tar xvf linux-3.0.3.tar.bz2
    
    cd linux-3.0.3
    
    1. make mrproper 
    
    如果是第一次编译,省略该步骤,该步骤主要删除编译后生成的一些文件,如果.config,makefile,*.o等文件
    
    如果是第一次编译失败,再一次编译,则必须执行。
    
    
    2. make menuconfig  | make config | make menuconfig | make xconfig | make gconfig
    
    定制内核配置,请以上方式任选一种。我这里选择make menuconfig
    
    
    3. make
    
    编译内核
    
    
    4. make modules_install 
    
    安装内核模块, 把上一步构建出来的内核放入一个模块子目录中:
    
    /lib/modules/内核版本,这里是/lib/modules/3.0.3/
    
    
    5. make install
    
    把编译好的内核放入/boot中,并且会更新引导文件,会把vmlinuz和System.map复制到/boot目录下同时修改grub
    
    主要会生成一下文件:
    
    config-3.0.3   --内核编译配置文件内容就是make menuconfig出来的文件.config的内容,只是文件名不同而已
    
    initrd-3.0.3.img 
    
    vmlinux-3.0.3.bz2
    
    System.map-3.0.3 
    
    vmlinuz-3.0.3
    
    
    6. new-kernel-pkg --mkinitrd --depmod --install 3.0.3
    
    安装grub,new-kernel-pkg --mkinitrd --depmod --install 内核版本号
    
    修改/boot/grub/grub.conf文件,增加一下内容
    
    title CentOS Linux (3.0.3)
    
            root (hd0,6)
    
            kernel /vmlinuz-3.0.3 ro root=UUID=db5edc6d-d16b-4308-8c7b-6df9f4f4e26c 
    
    rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYS
    
    FONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
    
            initrd /initrd-3.0.3.img
    
    
    
    四. 编译成rpm包
    
    0. 解压源码
    
    tar xvf linux-3.0.3.tar.bz2
    
    cd linux-3.0.3
    
    vi scripts/package/mkspec 
    
    增加一下几行,目的:当rpm -i kernel-3.0.3-1.x86_64.rpm 自动配置grub.conf
    
    
    echo "%post"
    
    echo 'if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ]; then'
    
    echo  'if [ -f /etc/sysconfig/kernel ]; then'
    
    echo  '/bin/sed -i -e 's/^DEFAULTKERNEL=kernel-smp$/DEFAULTKERNEL=kernel/' /etc/sysconfig/kernel || exit $?'
    
    echo  'fi '
    
    echo 'fi '
    
    echo '/sbin/new-kernel-pkg  --mkinitrd --make-default --depmod --install %{version} || exit $?' 
    
    
    1. make mrproper 
    
    如果是第一次编译,省略该步骤,该步骤主要删除编译后生成的一些文件,如果.config,makefile,*.o等文件
    
    如果是第一次编译失败,再一次编译,则必须执行。
    
    
    2. make menuconfig  | make config | make menuconfig | make xconfig | make gconfig
    
    定制内核配置,请以上方式任选一种。我这里选择make menuconfig
    
    生产内核配置文件.config
    
    
    
    3. make rpm-pkg
    
    生成一下文件
    
    
    Wrote: /root/rpmbuild/SRPMS/kernel-3.0.3-1.src.rpm
    
    Wrote: /root/rpmbuild/RPMS/x86_64/kernel-3.0.3-1.x86_64.rpm
    
    Wrote: /root/rpmbuild/RPMS/x86_64/kernel-headers-3.0.3-1.x86_64.rpm
    
    
    4. 安装内核
    
    rpm -ivh /root/rpmbuild/RPMS/x86_64/kernel-3.0.3-1.x86_64.rpm
    
    
    五.附录
    
    kernel-3.0.3-1.src.rpm下载地址
  
    
      http://dl.dbank.com/c0x5qcm826
    
    
    kernel-3.0.3-1.x86_64.rpm下载地址
    
    
      http://dl.dbank.com/c0twilsoi1
    
    
    
    kernel-headers-3.0.3-1.x86_64.rpm下载地址
    
    
      http://dl.dbank.com/c0056pznuh
    
  
转载自: http://hi.baidu.com/xiutuo/blog/item/194a7497c5fe3a7655fb96c7.html


 
					 
					