54、内核模块管理及编译安装

/proc目录:内核把自己内部状态信息及统计信息,以及可配置参数通过proc为文件系统加以输出

/proc/sys设置

sysctl -w path.to.parameter=value 查看或设定此目录中诸多参数,如sysctl -w ??kernel.hostname=mail.magedu.com??临时生效

默认配置文件:/etc/sysctl.conf 及以下文件

/run/sysctl.d/*.conf/etc/sysctl.d/*.conf/usr/local/lib/sysctl.d/*.conf/usr/lib/sysctl.d/*.conf/lib/sysctl.d/*.conf/etc/sysctl.conf

echo命令通过重定向方式也可以修改大多数参数的值

echo “VALUE” > /proc/sys/path/to/parameterecho “websrv” > /proc/sys/kernel/hostname

sysctl命令:

(1) 临时设置某参数 sysctl -w path.to.parameter=VALUE(2) 通过读取配置文件设置参数 sysctl -p [/path/to/conf_file],配置文件是永久生效(3) 查看所有生效参数 sysctl -a常用的内核参数:net.ipv4.ip_forwardnet.ipv4.icmp_echo_ignore_allnet.ipv4.ip_nonlocal_bind #允许应用程序可以监听本地不存在的IPvm.drop_cachesfs.file-max = 1020000

/sys目录:使用sysfs文件系统,为用户使用的伪文件系统,输出内核识别出的各硬件设备的相关属性信息,也有内核对硬件特性的设定信息,有些参数是可以修改的,用于调整硬件的工作特性

内核模块管理及编译

kernel:内核核心,一遍为bzimage通常在/boot目录下 名称为vmlinuz-version-release

kernel object:内核对象,一般放置于 /lib/modules/version-release/

辅助文件:ramdisk

initd centos5之前版本 initdramfs centos6之后版本

内核版本

uname命令 -n显示节点名称 -r显示版本信息 -a显示所有信息

内核模块命令

lsmod

显示由核心已经装载的内核模块

显示的内容来自于:/proc/modules文件

显示:名称、大小,使用次数,被哪些模块依赖

modinfo命令:管理内核模块

配置文件:/etc/modprobe.conf /etc/modprobe.d/*.conf

显示模块的详细描述信息

-n:只显示模块文件路径-p:显示模块参数-a:作者-d:描述

modprobe 装载卸载内核模块 -r卸载

modprobe [ -C config-file ] [ modulename ] [ module parame-ters… ]modprobe [ -r ] modulename…

depmod命令:内核模块依赖关系文件及系统信息映射文件的生成工具

insmod命令:可以安装模块,需要指定模块文件路径,并且不自动解决依赖模块

insmod [ filename ] [ module options… ]

insmod [ filename ] [ module options… ]

rmmod [ modulename ]编译内核

下载源码-准备/boot/config-??uname -r??配置文件–make menuconfig配置内核选项,相当于./configure–make [-j #](make -j # bzImage make -j # modules)–make modeules_install安装模块-安装内核相关文件:make install(vmlinuz-version-release、生成initramfs文件、编辑grub配置文件

解压源码

执行make menuconfig报错,解决相依的依赖包关系即可且#修改下面两行,CentOS7无需修改# CONFIG_MODULE_SIG is not setCONFIG_SYSTEM_TRUSTED_KEYS=””

执行make -j 2 实现生成bzimgae和安装modules (make允许2个编译命令同时只需,从而充分利用CPU的能力,提高编译速度,特别是在多核CPU上。当然,具体多少个任务同时执行为佳,还需要根据具体的机器配置,任务数太多,反而效果不好。)

安装模块:make modules_install

安装内核相关文件:make install

安装bzImage为 /boot/vmlinuz-VERSION-RELEASE生成initramfs文件编辑grub的配置文件

内核编译说明

支持“更新”模式进行配置:make help(a) make config:基于命令行以遍历的方式配置内核中可配置的每个选项(b) make menuconfig:基于curses的文本窗口界面(c) make gconfig:基于GTK (GNOME)环境窗口界面(d) make xconfig:基于QT(KDE)环境的窗口界面(a) make defconfig:基于内核为目标平台提供的“默认”配置进行配置(b) make allyesconfig: 所有选项均回答为“yes“(c) make allnoconfig: 所有选项均回答为“no“make -j 全编译cd /usr/src/linux; make dir/ 只编译dir/目录中的代码cd /usr/src/linux; make dir/file.k 只编译目录dir/file.ko文件,如make drivers/net/ethernet/intel/e1000/e1000.komake ARCH=arch_name 编译其他架构平台重新编译需要事先清理操作make clean:清理大多数编译生成的文件,但会保留.config文件等make mrproper: 清理所有编译生成的文件、config及某些备份文件make distclean:包含 make mrproper,并清理patches以及编辑器备份文件卸载内核删除/usr/src/linux/目录下不需要的内核源码删除/lib/modules/目录下不需要的内核库文件删除/boot目录下启动的内核和内核映像文件更改grub的配置文件,删除不需要的内核启动列表 grub2-mkconfig -o /boot/grub2/grub.cfgCentOS 8 还需要删除 /boot/loader/entries/5b85fc7444b240a992c42ce2a9f65db5-新内核版本.conf

切忌贪婪,恨不得一次玩遍所有传说中的好景点,

54、内核模块管理及编译安装

相关文章:

你感兴趣的文章:

标签云: