在内核中禁用模块支持

时间:2013-12-17 10:35:51

标签: linux-kernel kernel-module

如何在没有模块支持的情况下编译内核?

当我尝试禁用“启用可加载模块支持”选项并重建内核时,出现以下错误:

Enable kernel module support and then compile the kernel

1 个答案:

答案 0 :(得分:1)

要构建不带模块支持的内核,您无需选择任何CONFIG选项作为模块。这些是

有了内核make-system,您就有make mod2yesconfig可以将所有内核模块设置为内置到内核中。对于正常运行的系统,您可能还想执行make localyesconfig来将本地加载的模块放入内核。这样,您就不会忘记添加一些必要的驱动程序,例如块设备支持或USB HID支持。

您可能会遇到以下问题:内核中内置的模块因内核日志中的代码-2dmesg提供)而失败。这意味着无法读取文件,并且可能是由于包含固件的磁盘在引导过程中尚不可用引起的。可以通过使用选项CONFIG_EXTRA_FIRMWARE将这些固件内置到内核中来解决此问题,该选项为CONFIG_EXTRA_FIRMWARE_DIR(通常为/lib/firmware下用空格分隔的固件文件名列表)。这些选项可以在Device Drivers -> Generic Driver Options -> Firmware loader -> Firmware loading facility的{​​{1}}下找到。

许多Linux发行版都围绕内核make-system提供了自己的包装,可能很难找到配置make nconfig文件的方式。但是,您始终可以只使用kernel.org来源,这是一种可移植的解决方案,但是如果不按照您的发行版的方式打包它们,则可以说不是那种可维护的解决方案。