Ich habe seit ein paar Jahren keinen Linux-Kernel mehr kompiliert und nun, da ich wieder damit angefangen habe, habe ich festgestellt, dass Module standardmäßig mit Debug-Symbolen installiert werden, sofern dies nicht der Fall ist INSTALL_MOD_STRIP=1
wird übergeben an make modules_install
Das macht sie so riesig, dass meine initrd-Images auf Hunderte von Megabyte angewachsen sind.
Ich habe nur die gefunden INSTALL_MOD_STRIP
Option nach einigem googeln, und selbst dann nur in Forum-Threads wo Leute fragen, warum ihre Module so groß sind.
Ich frage mich also, warum sich dies geändert hat, während ich vorkompilierte Kernel verwendet habe. Gibt es einen Grund, warum Module jetzt standardmäßig mit Debugsymbolen installiert werden (obwohl Binärdistributionen sie immer noch entfernen)? Die Verwendung von Debug-Symbolen im Kernel erscheint ziemlich esoterisch und hat offensichtlich sehr große Nachteile in Bezug auf die installierte Größe.
Grundsätzlich sollte ich nur überlegen INSTALL_MOD_STRIP
als Teil der Standard-Kernel-Kompilierungsformel? Gibt es weitere Änderungen am Erstellungsprozess ab ca. 2.6.25, die ich beachten sollte?
quelle
Antworten:
Ich poste nur die Protokollnachricht des entsprechenden Patches, um Ihre Frage zu beantworten, wer / warum es geändert wurde:
quelle
INSTALL_MOD_STRIP
existierte lange davor. Soweit ich das beurteilen kann, wurde es in commit eingeführtac031f26e8
, die es nur als Lösung für das Problem der riesigen Module erwähnt.INSTALL_MOD_STRIP
Am Anfang war, dass meine initrd-Bilder ohne sie so groß wurden, dass Grub sie nicht einmal akzeptierte. In diesem Fall ist es nicht ganz richtig, dass das Entfernen von "keinen Schaden anrichtet".