当前位置: 首页 > Linux

Centos7内核编译

时间:2023-04-06 19:32:05 Linux

一:准备知识1:参考系统原内核文件的配置文件,编译新的内核选项原配置文件/boot/config-3.10.0-514.el7.x86_64了解配置文件的内容信息cat/boot/config-3.10.0-514.el7.x86_64每行代表一个模块=y表示该模块存放在内核中kernel=m表示该模块存放在/lib/modules下图:NTFSisnotset表示在EXT4文件系统格式下未启用功能的NTFS模块放在/lib/modules2:内核菜单命令:makemenuconfig需要安装:ncurses-devel包makemenuconfig:内核选项菜单3:编译特定内核模块1:选择指定的ko文件路径2:进入解压后的内核文件目录/root/linux4.12生成ko文件:makefs/ntfs/ntfs.kocp文件到/lib/modules/4.12.0-1.0-mashuai-kernelcpfs/ntfs/ntfs.ko/lib/modules/4.12.0-1.0-mashuai-kernel/kernel/fs/ntfs/2:编译内核到支持NTFS硬盘格式1:硬件要求1)/boot可用空间500M以上2)/space空间10G以上3)真实物理硬盘至少需要10G以上4)实验系统环境为Centos7,以及Centos6的流程与7类似2:下载源代码文件llinux-4.12.tarhttps://www.kernel.org/并将其放在根目录下解压包:tarxvflinux-4.12—3:在准备编译内核的配置文件时,系统会默认找到.config文件cp/boot/config-3.10.0-514.el7.x86_64/root/linux-4.12/.config4:安装开发包组yumgroupinstall“DevelopmentTools”5安装内核选项菜单文件包,在内核解压包解压文件路径下进行如下操作:cd/boot/linux-4.12yuminstallnucres-develmakemenuconfig图片开头的.config是根据/root/linux-4.12/.config配置文件生成的。当前菜单【】表示模块插入内核【】GeneralsetupGeneralsettingslocalversion:Kernelversion6addedbycompiler:Addkernelversioncontent-1.0-mashuai-keernel7:changethefilesystemsettingNTFS:changetoNTFSmodulefileinto/lib/modules[*]NTFSwritesupport即使启用了写功能,NTFS实际上并不支持写功能[*]NTFSdebuggingsupportDebuggingNTFS8:Installkernelrelatedfilesmake–j44表示4个CPU缺少软件包openssl-devel安装软件包:yuminstall–yopenssl-devel继续编译内核:make–j4生成ko模块驱动文件,so库文件,内核相关文件9:更新updatedb数据库更新updatedb数据库updatedb检查是否生成ntfs.ko文件:locatentfs.ko10:Installthemodulemakemodules_install:相当于将/lib/modules目录下需要的内核配置文件cp文件安装到/lib/modules中。install命令相当于复制命令11:生成内核文件安装缺少的软件:(这个文件是别人生成内核文件时出现的错误信息)yuminstallelfutils-libelf-develmakeinstall:安装内核-相关文件ls/boot:查看vmlinu-4.12内核文件是否生成cat/boot/grub2/grub.cfg:查看内核启动配置文件是否有改动。增加了如图内容:menuentr相当于centos6中的title。系统启动时会增加一个centoslinux4.12版本的内核启动项12:重启电脑,增加一个4.12内核选项13:重新挂载NTFS格式的U盘dfmount/dev/sdb1/mnt/cd查看内容文件:catansible.txt但不是可以这样写:touchf1mount:查看挂载属性,修改挂载属性为ro只读格式:mount–oremount,rw/dev/sdb1不能重新挂载,它被写保护。NTFS只支持读取3:清理和卸载内核1:清理:makecleanmakeclean:清理大部分编译文件,但保留配置文件等2:卸载:删除/lib/modules中不需要的内核库文件/目录?删除/root/linux4.12---/目录下不需要的内核源代码?删除/boot目录下启动的内核和内核映像文件?更改grub配置文件,删除不需要的内核启动列表