Kernel-Kompilierung: Erzwingen Sie das Einbrennen aller Module

461
user9830364

Ich baue mit OpenWrt einen Kernel für ein Hardwaregerät. Da es keine neue steckbare Hardware gibt, die später hinzugefügt wird, möchte ich sicherstellen, dass alle Kernelmodule im Kernel integriert sind. Auf diese Weise kann ich das Laden von Modulen deaktivieren und Cyberangriffe stoppen, bei denen Code über Module geladen wird.

Meine Frage, wie kann ich zwingen, dass alle ausgewählten Module automatisch statisch in den Kernel eingebaut werden. Ich möchte die Module nicht einzeln auswählen, um diese Änderung vorzunehmen. Ich suche eine Abkürzung.

1
Normalerweise nicht empfehlenswert, aber Sie könnten versuchen, die **. Config ** -Datei des Kernels zu bearbeiten und alle `= m` in` = y` zu ersetzen. sawdust vor 6 Jahren 0

1 Antwort auf die Frage

0
cybernard

Wenn Sie dies tun, werden alle 3000+ Module erstellt und in Ihren Kernel eingebettet. Ihr Kernel wird massiv überdimensioniert.

Dies ist eine schreckliche Idee, aber:

make allyesconfig 

Sie müssen die Kernel-Quelle vorübergehend auf dem betreffenden Gerät haben. Wenn Sie ein Make localmodconfig ausführen, können Sie die .config-Datei auf einen anderen Computer kopieren und dort kompilieren.

Was Sie tun sollten, ist:

Machen Sie localmodconfig

Bearbeiten Sie dann die Konfigurationsdatei

.config

und eine Suche und ersetzen für m mit Ersatz y

Jetzt haben Sie nur noch etwa 110 Module, und es wird schneller booten und nicht zu groß.

Vielen Dank! Aber gibt es eine Abkürzung für das Ändern von m zu y? oder ist die manuelle Bearbeitung der einzige Weg? user9830364 vor 6 Jahren 0
cat .config | sed 's / = m / = y / g'> .config2. Verschieben Sie .config in einen Sicherungsordner. benennen Sie .config2 .config um cybernard vor 6 Jahren 0
Vielen Dank! Sorry, nicht genug Ruf, um dies zu bestätigen. user9830364 vor 6 Jahren 0