版本号:1.0.1

作者:石硕

更新:2014-05-09 15:04:53

============================================================

出于工作须要。定制CentOS内核,以改进TCP的传输效率,怎样改进这里暂且不提,以下重点解说怎样获取源代码,编译。

1. 编译前的准备

以【root】用户安装下列组件:

su root

yum -y groupinstall "Development Tools"

yum -y install ncurses-devel qt-devel

yum -y install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed xmlto

yum -y install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel

yum -y install newt-devel python-devel zlib-devel

2. 安装内核的源码组件

【注】必须使用【非root】用户运行命令

rpm -i http://vault.centos.org/6.5/updates/Source/SPackages/kernel-2.6.32-431.11.2.el6.src.rpm 2>&1 | grep -v mock



附:kernel-2.6.32-431.11.2.el6.src.rpm 源在国外。下载速度可能会比較慢。能够借助BGP机房或VPN加速。



附源码地址:

http://vault.centos.org/6.5/os/Source/SPackages/

http://vault.centos.org/6.5/updates/Source/SPackages/

3. 解压及预备源码文件

【注】必须使用【非root】用户运行命令

cd ~/rpmbuild/SPECS

rpmbuild -bp --target=$(uname -m) kernel.spec



附:如今内核的源码文件夹树能够在 ~/rpmbuild/BUILD/kernel*/linux*/ 这个文件夹内找得到。

4. 编译新内核

【注】必须使用【非root】用户运行命令

cd ~/rpmbuild/SPECS

rpmbuild -bb --with baseonly --without debug --without debuginfo --target=`uname -m` kernel.spec 2> build-err.log | tee build-out.log

附:此过程可能须要花费90分钟左右,请耐心等待。

附:如今自己定义内核的 rpm 文件能够在 ~/rpmbuild/RPMS/`uname -m`/ 文件夹内找到。

5. 安装新内核

【注】必须使用【root】用户运行命令

su root

rpm -ivh kernel-*.rpm

6. 验证

重新启动,查看内核版本号

uname -a





參考资料:

[1]CentOS Wiki http://wiki.centos.org/zh/HowTos/Custom_Kernel#head-981e27f326384c58516d3b2051b225526bb0a50a

CentOS内核定制的更多相关文章

  1. yum和编译两种方式升级or降级Centos内核

    http://blog.51cto.com/renzhiyuan/1882599 今天探讨用yum和编译两种方式升级或者降级内核版本: 升级:比如玩kvm,docker等虚拟化,centos内核则升级 ...

  2. 升级CentOS内核 - 2.6升级到3.10

    *因为学习docker的需要,docker的官方推荐内核使用3.8以上,所以本人决定把CentOS内核升到长期稳定版的3.10. ##记得切换到root用户执行升级操作. [root@localhos ...

  3. Linux:centos内核升级

    centos内核升级 centos升级2.6内核到3.10 在yum的ELRepo源中,有 m ain l ine(3.13.1). l ong- t erm(3.10.28)这2个内核版本,long ...

  4. Centos内核升级的三种方法

    本文出自 “存储之厨” 博客,请务必保留此出处http://xiamachao.blog.51cto.com/10580956/1755354 在基于CentOS平台的工作过程中,难免有时需要升级或者 ...

  5. 【转】Linux CentOS内核编译:下载CentOS源码、编译2.6.32-220的错误(apic.c:819 error 'numi_watchdog' undeclared)

    一.下载CentOS源码 1.1 查看CentOS版本 cat /etc/issue 1.2 查看Linux内核版本 uname -r 1.3 下载 文件名:kernel-2.6.32-220.el6 ...

  6. CentOS内核升级

    CentOS 6.5自动内核升级的主要步骤: 1)内核文件下载到/usr/src/kernel/目录下: 如:2.6.32-431.5.1.el6.x86_64编译后差不多有48M大小: 2)生成的引 ...

  7. 通过YUM升级centOS内核,以便安装docker

    安装Docker要满足一定的条件,对于cents系统,要求必须是64位,并且内核版本是3.10以上. 如果你的centos操作系统内核低于3.10,需要升级到这个版本以上,才能安装docker. 第一 ...

  8. 第三节 - centos 内核启动、救援模式、 ls 、目录结构

    Linux 第三节一.CentOS 启动: 1.内核引导: 1.win/linux 通电,2.BISO自检(CPU,内存,硬盘等 | U盘.光驱.网卡.硬盘启动 通过MBR知道内核内存硬件驱动位置并加 ...

  9. 升级CentOS内核 - 2.6升级到3.10/最新内核

    ##记得切换到root用户执行升级操作. [root@localhost ~]# uname -a ##旧版 Linux localhost.localdomain 2.6.32-279.el6.i6 ...

随机推荐

  1. 1601O_HOME

    马kaiyu   https://blog.csdn.net/debugbugbg 胡guoxin https://blog.csdn.net/qq_41995727 张yizhong  https: ...

  2. 多源复制遇到CREATE USER FAILED错误

    MySQL Multi-Source Replication enables a replication slave to receive transactions from multiple sou ...

  3. __class__属性与元类

    class M(type): def __str__(self): return "gege" aa = "ccf" cc = "ccc" ...

  4. C#调用Java WebService int、DateTime等类型值接收到为空

    今天在调用Java接口时,有个int类型的值很明确的传了1,但接口一直返回没有接收到这个值. 解决方法: 引用接口时,VS会自动生成一个类,类中对于非string类型的字段会生成一个xxSpecifi ...

  5. css-position属性实例1

    一:position说明 position fixed 实现固定在某个位置 正常情况写两个div是在一层中,通过position属性,可以实现分两层和固定,就像在墙上贴了一层纸,就分了两层了. pos ...

  6. apollo配置相关

    一.运维 1. 数据库ConfigDB,PortalDB 2. 基础服务 :Config-Service,(Meta-Server),Admin-Service,Portal 3. 应用在SIT.UA ...

  7. SOA 设计的 9 大原则

    面向服务的架构 (SOA) 设计要尽可能地简单.在设计一个 SOA 服务的时候要谨记这 9 大设计原则: 1. 标准服务契约 服务要遵循一个服务描述. 2. 松耦合 服务之间的依赖最小化. 3. 服务 ...

  8. SqlServer批量Sql一个表的数据导入到另一个数据

    一个表的导入: SET IDENTITY_INSERT [master_new].[dbo].[OpinionList] ON INSERT INTO [master_new].[dbo].[Opin ...

  9. Luogu P1318 积水面积

    题目描述 一组正整数,分别表示由正方体迭起的柱子的高度.若某高度值为x,表示由x个正立方的方块迭起(如下图,0<=x<=5000).找出所有可能积水的地方(图中蓝色部分),统计它们可能积水 ...

  10. oracle的sql语句大小写

    我相信大家都知道,oracle数据库是区分大小写的,而且oracle的默认为大写的,也就是说你在sql脚本上面写的sql语句,oracle运行的时候,它会自动转化为大写的.注意一下,我这里举例子的计算 ...