Ricostruire il kernel Linux senza "clean"


11

Sto costruendo un kernel personalizzato basato su 4.11 (per Mintx64, se è importante). L'ho già compilato e installato per dimostrare che funziona. Ora ho apportato alcune piccole modifiche a un paio di file (nei driver e nei sottosistemi di rete, ecco perché devo compilare un kernel personalizzato in primo luogo!)

Ora voglio compilare il kernel modificato. Tuttavia quando corro

fakeroot make -j5 deb-pkg LOCALVERSION=myname KDEB_PKGVERSION=1 

Il sistema di compilazione sembra avviarsi "ripulendo" un intero carico di cose, quindi l'ho fermato rapidamente. Sfortunatamente il computer che sto usando non è benedetto da una buona CPU e richiede molte ore per essere costruito da zero. Pertanto preferirei evitare di farlo di nuovo, se possibile!

È possibile creare solo una build incrementale senza che tutto sia "pulito" o è un requisito del sistema di compilazione del kernel?

L'output che ho ottenuto è stato:

CHK      include/config/kernel.release
make clean
CLEAN .
CLEAN arch/x86/lib
...

@jc__ vedi l'output dalla build sopra, non riesco a trovare immediatamente dove si trova il makefile per quella destinazione, ma sto ancora cercando :)
T Kilney

Risposte:


12

L' make cleanè solo per il deb-pkgbersaglio. Dai un'occhiata a scripts/package/Makefile:

deb-pkg: FORCE
        $(MAKE) clean
        $(call cmd,src_tar,$(KDEB_SOURCENAME))
        $(MAKE) KBUILD_SRC=
        +$(call cmd,builddeb)

bindeb-pkg: FORCE
        $(MAKE) KBUILD_SRC=
        +$(call cmd,builddeb)

Se bindeb-pkginvece lo costruisci , non farà una pulizia. Probabilmente non avrai comunque bisogno dei pacchetti sorgente.

Ho il sospetto che pulisca perché non vuole accumulare manufatti nel tarball sorgente.


2

Potresti provare a produrre quei pacchetti deb con uno strumento diverso, make-kpkginstallato da apt-get install kernel-package. Quindi per esempio

make-kpkg --rootcmd=fakeroot --initrd --uc --us -j2 kernel_image kernel_headers

Questo comando non dovrebbe essere eseguito make cleanogni volta.


1

Ho risolto questo problema andando nel makefile per il comando deb-pkg e rimuovendo "make clean" dallo script. Questo non sembrava causare alcun effetto negativo con la build e ho eseguito il kernel personalizzato per una settimana o due ora senza problemi. YMMV!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.