如何在没有模块支持的情况下编译内核?
当我尝试禁用“启用可加载模块支持”选项并重建内核时,出现以下错误:
Enable kernel module support and then compile the kernel
答案 0 :(得分:1)
要构建不带模块支持的内核,您无需选择任何CONFIG
选项作为模块。这些是
有了内核make-system,您就有make mod2yesconfig
可以将所有内核模块设置为内置到内核中。对于正常运行的系统,您可能还想执行make localyesconfig
来将本地加载的模块放入内核。这样,您就不会忘记添加一些必要的驱动程序,例如块设备支持或USB HID支持。
您可能会遇到以下问题:内核中内置的模块因内核日志中的代码-2
(dmesg
提供)而失败。这意味着无法读取文件,并且可能是由于包含固件的磁盘在引导过程中尚不可用引起的。可以通过使用选项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来源,这是一种可移植的解决方案,但是如果不按照您的发行版的方式打包它们,则可以说不是那种可维护的解决方案。