Wie viel Strip (1) -ing ist für Kernelmodule in Ordnung?

9

Ich erstelle regelmäßig Pakete für Slackware Linux und ein Teil des Prozesses besteht darin, Binärdateien zu entfernen, damit sie weniger Speicherplatz beanspruchen. Ich finde, wenn ich strip --strip-all(oder stripohne Optionen) Kernelmodule, können sie oft nicht einfügen:

FATAL: Fehler beim Einfügen von cloop (/lib/modules/2.6.38.7-smp/kernel/fs/cloop/cloop.ko): Ungültiges Modulformat

Welche Stripping-Stufe wird für Kernel-Module empfohlen? Wenn ich verwende --strip-debug, entferne ich Debugging-Symbole, die sich negativ auf die Systemleistung und / oder die Fehlerprotokollierung auswirken?

Amphetamachine
quelle

Antworten:

14

Durch Entfernen aller Symbole werden die Namen der Symbole entfernt, die das Modul aufruft. Es wird nicht funktionieren.

Das Entfernen von Debugging-Symbolen mit strip --strip-debug *.ko(= strip -g *.ko) ist sicher. Das Kernel-Makefile erledigt dies für Sie, wenn Sie es ausführen make INSTALL_MOD_STRIP=1 modules_install.

Sie können das Einfügen von Debugging-Symbolen verhindern, indem Sie Ihren Kernel mit CONFIG_DEBUG_INFOnicht definiert konfigurieren .

Siehe auch Wie entferne ich lokale Symbole vom Linux-Kernelmodul, ohne es zu beschädigen?

Gilles 'SO - hör auf böse zu sein'
quelle
2

Ich glaube, der sicherste Ansatz ist strip --strip-unneeded.

David Schwartz
quelle
1
Ich sehe, dass --strip-unneededauch Streifen .modinfoAbschnitt, einschließlich der "Modul hängt" und die "vermagischen" Dinge. Unsicher, was die Konsequenzen sein würden.
PypeBros