centos 3.10.0 标准内核合入外部模块
发布日期:2021-05-10 10:32:45 浏览次数:12 分类:精选文章

本文共 1947 字,大约阅读时间需要 6 分钟。

CentOS 3.10.0 内核编译与第三方模块整合问题

在进行CentOS 3.10.0内核编译时,我们尝试将三方内核模块合并到内核源码树中,这样可以统一管理和编译。以下是整合过程中的关键步骤和遇到的问题及解决方法。

#目录结构分析

内核源码目录下的SOURCES目录包含了针对不同平台的配置文件。通过查看ls *.config命令,我们可以看到以下各个平台对应的配置文件:

cpupower.config                   kernel-3.10.0-ppc64le.config        kernel-3.10.0-s390x-debug.configkernel-3.10.0-ppc64le.config        kernel-3.10.0-ppc64_DEBUG.config  kernel-3.10.0-x86_64.debug.configkernel-3.10.0-ppc64le.debug.config  kernel-3.10.0-s390x-kdump.config  kernel-3.10.0-x86_64.debug.configkernel-3.10.0-ppc64.debug.config    kernel-3.10.0-s390x.config         kernel-3.10.0-x86_64.config

为了方便管理,我们将三方模块放在third_party目录下。具体目录结构如下:

linux-3.10.0/├── third_party/│   ├── third_party/│   │   ├── cryptography_module/│   │   │   ├── cryptography/│   │   │   │   ├── Makefile│   │   │   │   └── Kconfig│   │   │   └── crypttwo/│   │   │       ├── Makefile│   │   │       └── Kconfig│   │   └── cryptthree/│   │       ├── Makefile│   │       └── Kconfig│   └── Kconfig│       └── Makefile├── arch/│   └── x86/│       ├── Kconfig│       └── Makefile└── .config

#Kconfig和Makefile配置

我们在third_party目录中创建了KconfigMakefile文件。第一层的Kconfig内容如下:

menu "Third Party Module"    source "third_party/cryptography/Kconfig"endmenu

Makefile文件则稍作修改:

obj-$(CONFIG_STATE_CRYPTOGRAPHY)        += third_party/cryptography_module/

此外,在arch/x86/Kconfig中添加了新的配置指令:

source "third_party/Kconfig"

这些初始配置修改后,用户可以通过make menuconfig进行选项选择,并生成相应的目标文件。

#调整config文件结构

然而,用户在使用RPM Tooltip进行编译时遇到了问题。经过分析,发现问题出在config文件的第一行。标准配置文件需要在第一行添加特定的注释,以便RPM Tooltip正确提取ARCH变量。用户的错误信息提示未能找到ARCH变量,而这一问题的产生正是由于config文件未满足RPM Tooltip的格式要求。

用户的config文件第一行应修改为:

# x86_64

此修改后,在使用以下命令时能正确获取ARCH变量:

cut -b 3-+ Arch=x86_64

验证ARCH值后,可以直接执行make命令进行编译工作。最初的x86_64.debug.config文件仅作为参考仅供查看,并已被替换为标准的config文件文件名。

#总结

通过以上步骤,用户成功地将三方模块整合到CentOS 3.10.0内核源码树中。关键问题的解决依赖于以下两个方面:

  • 修改third_party目录下的KconfigMakefile文件,确保其与主内核配置无冲突
  • 在内核源码顶层的config文件中添加必要的注释,恰当地提取ARCH变量信息

完成上述设置后,用户的编译流程将顺利进行,新增的三方模块也将被正确编译并添加到目标文件中。

上一篇:网卡在 down 掉后 ethtool 获取不到网卡信息的问题
下一篇:cpu、虚拟机、网络设备省电方法

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月02日 12时58分31秒