编译内核及制作RPM包

简介: 一、前言       由于目前部分平台所使用的Linux发行版版本比较低,自带的内核版本远低于主流内核,无法使用到一些优秀的新内核特征,包括对我们比较有用的per-task storage I/O、改善在SMP系统中I/O的吞吐量、Ext4文件格式、虚拟化支持等。
一、前言
       由于目前部分平台所使用的Linux发行版版本比较低,自带的内核版本远低于主流内核,无法使用到一些优秀的新内核特征,包括对我们比较有用的per-task storage I/O、改善在SMP系统中I/O的吞吐量、Ext4文件格式、虚拟化支持等。因此决定采用目前最新稳定版内核Linux-2.6.32.6(更新于2010-01-25)进行重新编译,生成一个更加小巧、稳定、安全、高效率的新内核。

二、编译步骤
第一步:

# cd /home
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.5.tar.gz
# tar -zxvf linux-2.6.32.5.tar.gz -C /usr/src
# cd /usr/src
# ln -s linux-2.6.32.5 linux
# cd linux

第二步:

# make mrproper (初次编译内核这步也可以省略,方便第二次编译初始用。)
# make menuconfig
# make bzImage && make modules && make modules_install(需30~40分钟,具体看服务器配置)
# make install

如需制作RPM内核安装包,运行以下命令,相当于第二步的操作,但不编译本机内核。
# make rpm
生成位置:
/usr/src/redhat/RPMS/x86_64/kernel-2.6.32.6-2.x86_64.rpm
/usr/src/redhat/SRPMS/kernel-2.6.32.6-2.src.rpm

三、安装步骤
1、二进制rpm包安装步骤
# rpm -ivh  kernel-2.6.32.6-1.x86_64.rpm
# vi /boot/grub/menu.lst添加以下并修改default项。

    title CentOS (2.6.32.6)
    root (hd0,0)
    kernel /vmlinuz-2.6.32.6 ro root=LABEL=/
    initrd /initrd-2.6.32.6.img

# cd /lib/modules && mkinitrd /boot/initrd-2.6.32.6.img 2.6.32.6/
2、RPM源码包安装步骤,好处便是在原有基础上再进行编译,更灵活。

# rpm -Uvh kernel-2.6.32.6-2.src.rpm
# rpmbuild -bp --target=$(arch) /usr/src/redhat/SPECS/kernel-2.6.32.6-2.spec
# cd /usr/src/redhat/BUILD/kernel-2.6.32.6-2
# vi Makefile <-- Change "EXTRAVERSION" to avoid kernel overwriting
# cp /lib/modules/2.6.32.6/build/.config .
# make menuconfig
# 重复第二步

四、ChangeLog

2.1、裁减了51M内核模块,目前大小为46M。
2.2、No Forced Preemption(Server)适合服务器环境的禁止内核抢占。
2.3、High Memory Support->64GB。
2.4、Default I/O scheduer(Deadline)使用Deadline作硬盘存取排程器,非常适合IO较大的数   据库服务器。
2.5、添加Ext4 FileSystem。
2.6、删除Dell laptop support、Toshiba Laptop support。
2.7、开启Netfilter支持。
2.8、Export task/process statistics through netlink(sys task相关选项)。
2.9、Enable extended accounting over taskstats(sys task相关选项)。
2.10、Enable per-task storage I/O accounting(sys task相关选项)。
2.11、Support for Large Block Devices (LBD) - 支持超过 2TB 大小的储存设备。
2.12、Support for Large Single Files (LSF) - 支持处理超过 2TB 大小的文件
2.13、裁减sound card support。
2.14、裁减Bluetooth subsystem support。
2.15、裁减Wireless。
2.16、裁减Kernel hacking 。

如需编译后的RPM包请联系我(文件太大,不好传)。
kernel-2.6.32.6-2.x86_64.rpm(17M)
kernel-2.6.32.6-2.src.rpm(84M)
目录
相关文章
|
缓存 前端开发 Linux
71Linux - 本地YUM源制作
71Linux - 本地YUM源制作
150 0
|
7月前
|
缓存 关系型数据库 Linux
linux(三十八)编译安装软件与使用yum源安装软件
linux(三十八)编译安装软件与使用yum源安装软件
161 0
|
Linux
Linux 制作安装程序(rpm,deb)的几个心得
Linux 制作安装程序(rpm,deb)的几个心得
105 0
|
C语言
手动制作rpm包
制作RPM包的过程,简单的说,就是为制作过程提供一个“工作车间”,即一个目录,里面需要包含以下几个子目录:           BUILD        ————编译相关源码包时的工作目录;           RPMS         ————生成的二进制格式的RPM包存放的位置;     ...
1442 0
|
应用服务中间件 nginx 开发工具
|
应用服务中间件 C语言