内核编译:强制所有模块都被烘焙


1

我正在使用OpenWrt为硬件设备构建内核。由于没有新的可插拔硬件将在以后添加,我想确保所有内核模块都内置在内核中。这样我就可以禁用模块加载并停止依赖于通过模块加载代码的网络攻击。

我的问题 - 如何强制所有选定的模块静态自动构建到内核中。我不想单独选择模块来进行此更改。我正在寻找捷径。


通常不推荐,但你可以尝试编辑内核 的.config 文件,并替换所有 =m=y
sawdust

Answers:


0

如果这样做,将构建所有3000多个模块并将其嵌入到内核中。你的内核会大量超大。

这是一个可怕的想法,但是:

make allyesconfig

您需要临时拥有相关设备上的内核源代码。执行make localmodconfig后,如果需要,可以将.config文件复制到另一台机器上,然后在那里编译。

你应该做的是:

make localmodconfig

然后编辑配置文件

的.config

并进行搜索和替换 替换它 ÿ

现在你将只有大约110个模块,它将启动更快,而不是大规模超大。


谢谢!但是有没有将m改为y的捷径?或者是手动编辑的唯一方法?
user9830364

cat .config | sed's / = m / = y / g'> .config2。将.config移动到备份文件夹。重命名.config2 .config
cybernard

谢谢!抱歉没有足够的声誉来支持这一点。
user9830364
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.