内核编译步骤


本文摘自PHP中文网,作者巴扎黑,侵删。

第一步 我们首先应该下载kernel的软件包,可以点击进行下载

第二步 然后解压linux*对应版本的软件包到到当前目录,当前本人所在目录为用户家目录

1

tar xvf linux-4.12.tar.xz

第三步 cd切换进解压后的目录中,如cd linux-4.12,并之后的编译安装等操作都只能在此目录下执行
第四步 复制系统本身的内核模块功能文本配置文件并重命名为.config

1

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

第五步 安装开发包组

1

yum -y groupinstall "Development Tools"

第六步 执行编译,使用菜单配置内核选项,若编译报错,则根据报错提示安装对应的软件包

1

make menuconfig

第七步 编译内核,编译过程有点长,请耐心等待,请勿终止操作

1

make -j 2   使用2个CPU多线程同时编译

第八步 根据错误提示安装软件包,如下图

image
提示安装openssl-devel软件包

1

yum -y install openssl-devel  根据错误提示安装相应的软件开发包

第九步 然后继续编译 make -j 2
第十步 在编译完成之后,更新数据库,然后就可以查看我们编译进内核的模块是否成功

1

2

updatedb   更新数据库

locate ntfs.ko  查看我们编译进内核的ntfs模块是否存在于内核中

第十一步 安装复制模块文件,安装过程有点长,请耐心等待

1

make modules_install

第十二步 将内核拷贝到/boot目录下并修改grub文件,make执行报错,若报错,则根据提示安装对应的软件包

1

2

3

make install 将内核拷贝到/boot目录下并修改grub文件

 

报错信息如下

image

1

2

yum -y install elfutils-libelf-devel  安装elfutils-libelf-devel包

make install  继续执行

第十三步 查看/boot目录下已生成vmlinuz-4.12.0-danran内核文件和grub.cfg或grub.conf文件是否改变

1

2

/boot/vmlinuz-4.12.0-danran 

cat /boot/grub2/grub.cfg 查看grub配置文件,里面多了一个新内核菜单

image

第十四步 reboot 重启系统选择新内核启动

清理内核编译产生的文件

1

2

3

4

cd linux-4.12

make clean:清理大多数编译生成的文件,但会保留config文件等;

make mrproper:清理所有编译生成的文件、config及某些备份文件

make distclen:mrproper、patches以及编辑器备份文件

内核编译操作流程如下

  1. 下载linux*相应软件包

  2. tar xvf linux-4.12.tar.xz 解压内核到当前目录

  3. cd linux-4.12

  4. cp /boot/config-3.10.0-514.el7.x86_6 .config 复制系统本身的功能配置文件到内核解压目录下并命名为.config

  5. ls .config

  6. yum -y groupinstall "Development Tools" 安装Development Tools开发包组

  7. make menuconfig 打开图形功能配置界面
    image

  8. 如果上一步骤报错,则按照报错提示安装相应的软件包,eg ncurses-devel软件包

  9. 修改内核的版本号为danran
    image
    image
    image
    image

  10. 添加内核的支持ntfs功能
    image
    image
    image

  11. vim .config 查看配置文件,确认ntfs功能是否开启,内核版本号是否改变

  12. lscpu 查看cpu信息,和cpu核数

  13. make -j 2 编辑内核

  14. 根据编译报错提示安装相应的软件包
    image
    上图所示,提示安装openssl-devel软件包

  15. yum -y install openssl-devel 根据错误提示安装相应的软件开发包

  16. yum -y install elfutils-libelf-devel

  17. make -j 2 继续编译,编译时间有点长,请耐心等待,请勿终止

  18. updatedb 更新数据库

  19. locate ntfs.ko 查看我们编译进内核的ntfs模块是否存在于内核中
    image

  20. make modules_install 安装复制模块文件,请耐心等待复制过程
    image

  21. cd /lib/modules

  22. find 4.12..danran/ -name ".ko" 查看新编译内核中的所有ko模块文件

  23. cd /root/linux-4.12

  24. make install 将内核拷贝到/boot目录下并修改grub文件,make执行报错,根据提示安装相应软件包
    image

  25. yum -y install elfutils-libelf-devel 安装elfutils-libelf-devel包

  26. ll /boot/vmlinuz-4.12.0-danran 查看/boot目录下已生成vmlinuz-4.12.0-danran内核文件

  27. cat /boot/grub2/grub.cfg 查看grub配置文件,里面多了一个新内核菜单
    image

  28. reboot 重启系统选择新内核启动

  29. ls linux-4.12/fs/ntfs/ntfs.ko 查看ntfs模块是否安装

单独编译ntfs.ko模块文件

  1. cd linux-4.12 进入内核目录

  2. make fs/ntfs/ntfs.ko 重新编译ntfs.ko模块文件

  3. ll fs/ntfs/ntfs.ko 查看ntfs.ko模块文件是否编译生成

  4. cp fs/ntfs/ntfs.ko /lib/modules 单独拷贝模块文件到/lib/modules中
    image

内核的相关知识点请点击链接

以上就是内核编译步骤的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

centos系统升级内核后无法启动怎么办

linux中如何编译c语言

linux为什么要升级内核

编译安装nginx却requires the pcre library

linux什么是编译

linux内核的五大模块分别是什么

编译安装nginx却requires the pcre library

linux内核的五大模块分别是什么

linux怎么编译内核

centos系统如何升级内核

更多相关阅读请进入《-4.12》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...