Linux内核编译与基础管理

准备工作:

  • 准备好开发环境
  • 获取目标主机上硬件设备相关信息
  • 获取目标主机系统功能的相关信息
  • 获取内核源代码
    www.kernel.org

开发环境准备

包组(Centos 7):Development Tools
yum grouplist 查看包组信息

目标主机硬件设备相关信息:
CPU: cat /proc/cpuinfo
lscpu

PCI设备:
lspci (-v|-vv)
lsusb (-v|-vv)
lsblk 块设备

由于是在虚拟环境下进行,我们可以将cpu设置成最大使用核心数,已到达加速编译的目的
步骤如下:
1、下载源码文件:linux-4.12.tat;并解压缩至当/root下或/usr/src

[root@CentOS7 ~]#tar xvf linux-4.12.tar

2、安装对应开发包组

[root@CentOS7 ~]#yum groupinstall “Development Tools”

3、准备编译内核配置文件,将系统现有的config配置文件复制并命名为.config

cp /boot/config-$(uname -r) ./.config

4、配置内核选项,基于curses的文本窗口界面来定义内核参数
注意:运行 #make menucofig命令过程中,可能会提示缺少相应的依赖包组。只需将对应缺少的包组依次安装即可

Linux内核编译与基础管理_第1张图片
menuconfig 界面

上图中”[ ]“ 里 * 表示打到核心里,M 是以模块方式打到核心里,空白就表示不设置

上图中选中General setup ,回车展开如下图:

Linux内核编译与基础管理_第2张图片
设置版本

在下图中输入内核的版本,以及编译者信息,可以自己随便设定:

Linux内核编译与基础管理_第3张图片
版本信息

设置完内核选项后,按TAB建切换 保存然后退出

设置好的内核选项,可以查看已经设置的内容

设置参数内容.png

5、开始编译,操作如下图:

Linux内核编译与基础管理_第4张图片
cpu.png

通过lscpu 命令看到有4个CPU,内核编译支持多线程编译,这里编写for循环,编译结束提示声音。
make -j 4 && for i in {1..10} ;do echo -e “\a”;sleep 1 ;done

注意:编译过程中,可能会提示缺少相应的依赖包组。只需将对应缺少的包组依次安装即可

Linux内核编译与基础管理_第5张图片
提示缺少包组信息.png

由于编译过程比较长,此时我们可以打开多一个终端窗口,实时观察编译大小

[root@CentOS7 ~/linux-4.12.10]#watch -n 5 du -sh linux-4.12.10

6、编译完成后,执行如下操作:

[root@CentOS7 ~/linux-4.12.10]#make modules_install
安装模块,生成到/lib/modules目下

modules.png

8、重启选择linux-4.12的内核启动加载。

uname.png

至此编译内核安装结束


编译后续管理:

在已经执行过编译操作后可对编译后遗留的文件进行选择性清理

  • make clean :清理大多数编译生成的文件,但会保留
    config 文件等
  • make mrproper: 清理所有编译生成的文件、config 及某
    些备份文件
  • make distclean :mrproper 、patches 以及编辑器备份
    文件

如果编译后有错误,或不需要使用当前编译好后的内核的话,也可进行删除内核操作,只需将上述编译生成的文件目录删除即可

  • rm -rf /lib/modules/VERSIONS-NAME/
  • rm -rf /boot/4.12
  • 删除/boot/grub2/grub.conf文件下生成的配置文件

你可能感兴趣的:(Linux内核编译与基础管理)