Muss ich den Kernel jedes Mal kompilieren, auch für eine kleine Änderung?

7

In meinem Projekt konfiguriere ich den Kernel (2.6.32) in block/ioctl.c. Wir alle wissen, dass das Kompilieren und Erstellen des Kernels einige Stunden dauert. Selbst für eine kleine Änderung kompiliere ich von Grund auf neu. Gibt es also eine Möglichkeit, nur die geänderte Datei zu kompilieren und zu erstellen?

Gangadhars
quelle
1
Die erste Frage in KernelCustomBuild könnte Ihnen helfen
Yogu
Ein paar Stunden für eine einzelne .c-Datei ändern? Welche Befehle verwenden Sie genau und welche Hardware haben Sie?
Mat
@Mat Ich muss den block/ioctl.cCode analysieren . einfache ex: addind printkFunktion. Und einige makroökonomische Dinge
ändern
Ich verstehe das. Die Neuerstellung nach einer kleinen Änderung in einer .c-Datei sollte nicht zu einer vollständigen Neuerstellung führen, und selbst wenn dies der Fall sein sollte, sollte dies nicht Stunden dauern.
Mat
2
Konfigurieren Sie nicht neu, wenn Sie die Konfiguration nicht ändern. Reinigen Sie nicht , wenn Sie mit einer kleinen Änderung neu erstellen möchten.
Mat

Antworten:

9

Nein, das Kompilieren des Kernels dauert nicht wenige Stunden. Linus Torvalds sagte, dass er früher 12 Minuten gebraucht habe und heutzutage viel weniger. Natürlich hängt es davon ab, ob Sie einen Kernel mit nur den Treibern kompilieren, die Sie für Ihre Hardware benötigen, oder einen Distributionskernel mit allen Treibern, die die Benutzer möglicherweise benötigen - aber selbst für einen Distributionskernel auf einem etwas älteren Computer dauert es viel weniger als eine Stunde, um einen vollständigen Build durchzuführen.

Wenn Sie eine Datei des Kernels ändern, müssen Sie keine vollständige Erstellung durchführen. Führen Sie einfach ausmake (und make moduleswenn es Module gibt, die Sie neu kompilieren müssen), und nur die geänderte Datei (und die Dateien, die davon abhängen, wenn es sich um eine Header-Datei handelt) werden neu kompiliert.

Gilles 'SO - hör auf böse zu sein'
quelle
1
Selbst die kleinste Änderung der Konfiguration führt dazu, dass der gesamte Kernel neu erstellt wird, und es dauert Stunden. Es tat immer so lange ich mich erinnere (20 Jahre und Zählen). Es wurde schlimmer, als das depsZiel fallen gelassen wurde.
Ajeh