如何基于当前使用的模块配置Linux内核?


15

我愿意用我的机器只需要的东西来构建最小的内核。因此,我首先使用默认配置从头开始编译内核,然后添加我肯定知道的东西(即:以太网卡,WiFi卡...)。

但是还有其他一些事情不太容易了解(例如,看门狗计时器),所以我遇到了AutoKernConf,它应该检测机器的硬件并生成包含找到设备设置的内核配置文件。

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

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

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

或者如何在内核中使用适当的选项映射每个选项,以便我可以手动设置它们。

非常感谢您的宝贵时间。

Answers:


19

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

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


非常感谢,我使用的是2.6.33版本,因此可以使用该目标。
卡拉
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.