设为首页 收藏本站
查看: 680|回复: 0

[经验分享] 在CentOS7.2上编译kernel

[复制链接]

尚未签到

发表于 2018-4-24 11:42:01 | 显示全部楼层 |阅读模式
  1、准备工作
  1.1前提:
  (1) 准备好开发环境;
  (2) 获取目标主机上硬件设备的相关信息;
  (3) 获取到目标主机系统功能的相关信息,例如要启用的文件系统;
  (4) 获取内核源代码包:www.kernel.org
  

  1.2准备开发环境:
  CentOS 6.7:
  包组:
  Development Tools
  Server Platform Development
  

  CentOS 7:
  包组:
  Development Tools
  Server Platform Development
  使用yum grouplist可以查看所有的包组;
  使用yum groupinstall安装包组
[root@wlm ~]# yum groupinstall  "Development Tools" "Server Platform Development"  1.3查看主机硬件设备信息
  安装包:
  ncurses-devel
[root@wlm ~]# yum install ncurses-devel  

  获取目标主机上硬件设备的相关信息:
  CPU:
~]# cat  /proc/info
~]# lscpu
~]# x86info -a  

  PCI设备:
~]# lspci
-v
-vv
~]# lsusb
-v
-vv
~]# lsblk  

  了解全部硬件设备信息:
~]# hal-device  2、内核编译过程:
  步骤:
将从官网下载内核压缩包解压到/usr/src目录下,创建软连接。
~]# tar  xf  linux-3.10.67.tar.xz  -C  /usr/src
~]# cd  /usr/src
~]# ln  -s  linux-3.10.67  linux
~]# cd  linux
~]# make menuconfig       配置内核选项
~]# make  [-j #]编译内核,可使用-j指定编译线程数量
#这个过程比较漫长,可以从/boot/目录下拷贝config-3.10.0-327.el7.x86_64到/usr/src/linux目录
#config-3.10.0-327.el7.x86_64为已安装好的内核默认配置
~]# make modules_install安装内核模块
~]# make install安装内核
重启系统,选择使用新内核;  

  过程的详细说明:
  (1)  配置内核选项
  支持“更新”模式进行配置:在已有的.config文件的基础之上进行“修改”配置;
  (a) make config:基于命令行以遍历的方式去配置内核中可配置的每个选项;
  (b) make  menuconfig:基于cureses的文本配置窗口;
  (c) make  gconfig:基于GTK开发环境的窗口界面;  包组“桌面平台开发”
  (d) make  xonfig:基于QT开发环境的窗口界面;
  支持“全新配置”模式进行配置:
  (a) make  defconfig:基于内核为目标平台提供的“默认”配置为模板进行配置;
  (b) make   allnoconfig:所有选项均为“no”;
  (2) 编译
  (a) 多线程编译:make  [-j #]
  (b) 编译内核中的一部分代码:
  (i) 只编译某子目录中的相关代码:
  # cd  /usr/src/linux
  # make  path/to/dir/
  (ii)只编译一个特定的模块
  # cd  /usr/src/linux
  # make  path/to/dir/file.ko
  (c) 如何交叉编译:
  目标平台与当前编译操作所在的平台不同;
  # make  ARCH=arch_name
  要获取特定目标平台的使用帮助:
  # make  ARCH=arch_name help
  (3) 如何在执行过编译操作的内核源码树上做重新编译:
  事先清理操作:
  # make clean:清理编译生成的绝大多数文件,但会保留config,及编译外部模块所需要的文件;
  # make mrproper:清理编译生成的所有文件,包括配置生成的config文件及某些备份文件;
  # make distclean:相当于mrproper,额外清理各种patches以及编辑器备份文件;
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-451356-1-1.html 上篇帖子: Centos7 Yum安装MySql 下篇帖子: centos7 系统修改网卡名称
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表