内核模块可以使用多少 strip(1)-ing?

amp*_*ine 9 strip kernel-modules

我经常为 Slackware Linux 创建包,这个过程的一部分是剥离二进制文件,以便它们占用更少的空间。我发现如果我strip --strip-all(或strip没有选项)内核模块,它们通常无法插入:

致命:插入 cloop 时出错 (/lib/modules/2.6.38.7-smp/kernel/fs/cloop/cloop.ko):模块格式无效

内核模块推荐什么级别的剥离?如果我使用--strip-debug,我是否会删除会对系统性能和/或错误记录产生负面影响的调试符号?

Gil*_*il' 14

剥离所有符号会删除模块调用的符号的名称。这是行不通的。

使用strip --strip-debug *.ko(= strip -g *.ko)剥离调试符号是安全的。如果您运行make INSTALL_MOD_STRIP=1 modules_install.

您可以通过将内核配置为CONFIG_DEBUG_INFO未定义来防止首先插入调试符号。

另请参阅如何从 linux 内核模块中去除本地符号而不破坏它?