+++++++++++++++++++++++++++++++++++++++++++++++++++++++
秀脱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