在centos6,7 上编译安装内核

  小编之前写过一篇软件的源码编译安装,今天小编再给你们带来一篇内核的编译安装。
  今天,就以centos7 编译安装最新版本4.13.2 内核为例,给你们详解。编译安装以前,检查一下本身的磁盘空间,大约需10G左右。linux

1、去官网(www.kernel.org)下载最新版本4.13.2


① rz上传
② 建立一个放内核的空目录 /app/kernel4.13,mv linux-4.13.2.tar.xz /app/kernel4.13/
tar xvf linux-4.13.2.tar.xz 解包,解包以前大约只有100M,解包以后875M
④ 扩展小知识:for i in `find /app/linux-4.13.2 -name *.c |xargs -n1` ;do file=`cat $i |wc -l` ;let sum+=file ;done ;echo sum=$sum 能够查出以.c结尾的文件有17233537行代码,还不是全部文件,可知编写一个内核有多么难!!!vim

2、准备文本配置文件(菜单): .config

以系统上原有的操做系统为模板,拷一个模板文件到咱们的目录,并命名为.config的隐藏文件
  cp /boot/config-3.10.0-514.el7.x86_64 /app/kernel4.13/linux-4.13.2/.config
这个文件的做用:定义编译内核时,功能的特性centos

=y:打到核内心,之后放在 vmlinux中
=m:模块方式,之后就表现为 ko文件
not set:该功能不启用

3、安装编译安装须要的包组

yum groupinstall "development tools"

注意要加"",这个包组提供了编译安装所须要的工具
若是已安装就无需再安装网络

4、配置内核选项:make menuconfig

(1) cd /app/kernel4.13/linux-4.13.2/ 必定要进入本身的目录文件去完成后边的执行
(2) make menuconfig 就至关于小编之前博客中编译安装服务的.config脚本相似的功能
执行后会发现出错,由于缺包

  
(3) 缺什么包,安装什么包
yum install ncurses-devel -y
  
(4) 继续执行make menuconfig,成功后,会显示这样的窗口菜单

  
(5) 窗口菜单中的一些设置,回车就进入子菜单,在这个菜单中,想要设置什么功能,均可以本身设置app

按m,打到模块中,之后就表现为 ko文件
    按y,打到核内心,之后放在 vmlinux中
    空 ,就是关闭该功能

① General setup --->的子菜单
   Local version - append to kernel release 进入这一项能够写本身编译安装后的内核版本名
后续都是和硬件相关的,先不改了,按exit 退到上一层

② File systems ---> 文件系统,ext4 xfs ntfs ... 里边有不少文件系统
  DOS/FAT/NT Filesystems ---> 进入ntfs 的子菜单,为了实验后边的证实,咱们把这个功能打开

③ Networking support ---> 网络的支持,有各类网络
   Wireless ---> 例如无线网络
④ Device Drivers ---> 设备的驱动
......
(6)退到最后,会有弹框,选择yes保存退出

  
(7)这一步进行的全部操做都放入了.config中,为了验证,咱们刚才的操做保存了,
grep -i ntfs .config 查询ntfs,发现和咱们修改的同样

  less

5、开始编译:make

(1)由于这一步须要很长的时间,为了让你们看到我花费的时间,我加了date,而且设置执行完成后提示10次警报提醒我
date >> /app/date.log ;make -j 8 ;date >> /app/date.log ;for i in {1..10} ;do echo -e "\a" ;sleep 0.5 ;done
你们执行这一步,只需 make -j 8 就行
(2)初次执行,也会报错,缺乏包

  
(3)yum -y install openssl-devel 老方法,缺啥按啥
  
(4)继续执行
date >> /app/date.log ;make -j 8 ;date >> /app/date.log ;for i in {1..10} ;do echo -e "\a" ;sleep 0.5 ;done

编译完成,个人机器配置较低,用时48分钟,目录大小变为: 9.2G工具

6、安装模块:make modules_install

安装完成后ls /lib/modules 会出现我们本身编译的内核

  centos7

7、安装内核相关文件:make install

安装完成后ls /boot 会出现我们本身编译的内核相关文件
执行后,会有个报错,不用管,不用终止,等它生产文件

  操作系统

8、查询grub的配置文件,看有没有多新的菜单

cat /boot/grub2/grub.cfg

reboot 重启时,发现有我们的内核新菜单
3d

到此,咱们的编译安装内核就完成了!!!咱们就能够愉快的用咱们的新内核了。可是企业中应该不多会换内核,由于新的内核可能不适合本身的系统,有各类各样的BUG,固然,咱们仍是要掌握这高大上的技术,由于能够出去装B。。。
  

9、卸载内核

若是发现本身编译安装的内核版本不适合本身的系统,能够卸载,不能只会安装。
一、cd /boot 删除(本身安装的版本eg:4.13)启动的内核和内核映像文件
二、cd /lib/modules/ 删除不须要的内核库文件
三、cd/app (本身安装源码的目录) 删除不须要的内核源码
四、vim /boot/grub/grub.conf 更改grub的配置文件,删除不须要的内核启动列表菜单
这样本身编译安装的内核就清干净了。
  

好了,今天就到这里了,有什么不懂的能够联系我。

相关文章
相关标签/搜索