yum -y install gcc gcc-c++ ncurses ncurses-devel cmake elfutils-libelf-devel openssl-devel
或者可以安装开发工具包
yum groupinstall "development tools"
推荐下载地址https://www.kernel.org/
cd /usr/src && wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.12.3.tar.xz && tar -xvf linux-4.12.3.tar.xz && cd linux-4.12.3
make mrproper
make mrproper命令会删除所有的编译生成文件、内核配置文件(.config文件)和各种备份文件
可以使用当前系统的config文件作为模板
cp /boot/config-3.10.0-514.el7.x86_64 .config
然后make menuconfig,进入编译配置界面
此处每一个有三种选择
[ ] :不选 [ *] :集成到vmlinux文件中 [M ] :集成到模块中
其实对应着.config文件中:
=y:打到核心里,以后放在vmlinux中
=m:模块方式,以后就表现为ko文件
not set:该功能不启用
注:配置内核的方法主要有如下几种:
#make menuconfig //基于ncurse库编制的图形工具界面 #make config //基于文本命令行工具,不推荐使用 #make xconfig //基于X11图形工具界面 #make gconfig //基于gtk+的图形工具界面
make
make其实包含了两步:make bzImage和make modules
make bzImage — 编译基本的内核(make menuconfig这一步中选[ *]的部分),并制成压缩镜像
make moudles — 编译内核模块(make menuconfig这一步选择[M ]的部分)
make modules_install — 将上一步编译好的模块(.ko文件)拷贝到/lib/modules/liunx-x.xx.x文件夹,内核启动时需要加载的模块,会在这个路径下寻找
make install — 编译出来的压缩内核镜像拷贝到/boot/文件夹下,并且修改/boot/grub2/grub.cfg这个grub配置文件
或者make –jN以多线程编译,N代表线程数,比如电脑是双核4线程,N填4
编译大概需要2个小时左右
make modules_install
安装完毕后可以到/lib/modules目录下查看
make install
安装完毕后可以到/boot目录下查看
cat /boot/grub2/grub.cfg | grep menuentry //查看系统可用内核
grub2-set-default ‘CentOS Linux (4.12.3) 7 (Core)’ //修改开机默认使用的内核
reboot
uname -r
安装完成~~
原文:https://www.cnblogs.com/muen2020/p/14597974.html