Hi,
ich baue Kernelpakete linux-source...deb, linux-headers...deb, und linux-image...deb nach dieser Anleitung http://wiki.ubuntuusers.de/Kernel/Kompilierung?highlight=make-kpkg
und mache das auch zeitnah nach minor-updates z.B. wenn jetzt als die Kernel-Version 3.3.6 erschienen ist. Wegen der gefühlt extrem langen Dauer dieser Kompilierung habe ich diesmal versucht eine "Abkürzung" zu finden.
Weil ich das Kernel-Quelverzeichnis "linux-3.3.5" noch hatte mitsamt aller Objekte und fertiger Module aus der 3.3.5 Version dachte ich mir, ich könnte Kompilierzeit sparen: - KEIN "make clean" - das Verzeichnis umbenennen in "linux-3.3.6" - patch -p1 <../patch-3.3.5-6 drüberlaufen lassen - make silentoldoonfig und dann würde - "make-kpkg --initrd kernel-image kernel-headers kernel-source" alle bereits kompilierten und gebundenen Objekte, deren source sich nicht geändert hat, erneut verwenden, und nur das was sich geändert hat, neukompilieren? Bei einem Minor
Nach Kontrolle wie lange das Erstellen der 3 neuen "deb" Pakete für Kernel 3.3.6 insgesamt gedauert hat, denke ich dass "make-kpkg" fast alles neu kompiliert hat und nicht viel aus den Kompilaten von 3.3.5 verwendet hat? Auch die Prüfung des Datums der Dateien "ls -alR | less" zeigt mir dass make-kpkg vieles neu erzeugt hat...
Fast alle "*.o" sind neu. Ausnahme "built-in.o" und "built-in.o.cmd" sind von der Vorversion. Die meisten "*.h" sind nicht neu sondern von der Vorversion.
Prüft "make-kpkg" im Gegensatz zu "make" nicht was unverändert und weiter nutzbar ist, sondern kompiliert alles neu? Oder bereinigt "make-kpkg" nach Erzeugung der "deb"'s insoweit den source-tree dass das nächste Mal nichts mehr da ist was unverändert eingebunden werden kann?
In den "make-kpkg" man-pages habe ich keine Info und keine Optionen gefunden die mir weitergeholfen hätten?
Andere Frage: Ist die Vorgehensweise (make-kpkg ohne vorheriges make clean) an sich OK, oder ist es nicht ratsam Kernel-Pakete so zu erzeugen, bzw. gibt es Risiken dass dabei "Karteileichen" mit eingebunden werden?