如何根据当前使用的模块配置 Linux 内核?

Car*_*rla 15 linux kernel

我愿意用我的机器只需要的东西来构建一个最小的内核;所以我首先从头开始编译内核,使用默认配置并添加我确定拥有的东西(即:以太网卡、WiFi 卡……)。

但是还有其他一些不太容易了解的事情(即:看门狗定时器),所以我遇到了AutoKernConf,据说它可以检测机器的硬件并生成一个内核配置文件,其中包含找到的设备的设置。

问题是它包含了几个重复的设置,甚至有些我没有(我使用的是戴尔笔记本电脑,它“发现”的其中一个东西是东芝的)。

因此,我最终使用make allmodconfig命令中的配置构建了一个内核,该内核将大部分内容编译为模块。

启动到该内核并运行lsmod我可以看到所有正在使用的内核模块(真正需要的模块),我想知道是否有工具或某种方法可以让我解析该列表并将其转换为相应的内核配置文件。

Or how to map each one with the appropriate options in the kernel so that I can manually set them.

非常感谢您的宝贵时间。

Sam*_*ain 19

如果您使用的是 Linux 2.6.32 及更高版本,您可能需要查看“localmodconfig”make 目标。它几乎可以满足您的要求——它确定您正在运行哪些模块,并生成一个 .config 以确保构建了这些模块。“localyesconfig”目标会将这些模块静态编译到内核中,而不是创建模块。

此处提供更多信息:简单的本地内核配置