Reconstruire le noyau Linux sans «nettoyer»


11

Je construis un noyau personnalisé basé sur 4.11 (pour Mintx64, si cela importe). Je l'ai déjà compilé et installé pour prouver que cela fonctionne. Maintenant, j'ai apporté quelques petites modifications à quelques fichiers (dans le sous-système du pilote et du net, c'est pourquoi j'ai besoin de compiler un noyau personnalisé en premier lieu!)

Maintenant, je veux construire le noyau modifié. Mais quand je cours

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

Le système de construction semble commencer par "nettoyer", en chargeant tout un tas de trucs, donc je l'ai arrêté rapidement. Malheureusement, l'ordinateur que j'utilise n'est pas doté d'un bon processeur et prend de nombreuses heures à se construire à partir de zéro. Par conséquent, je préfère éviter de le refaire si possible!

Est-il possible de faire juste une construction incrémentielle sans que tout soit "propre" d ou est-ce une exigence du système de construction du noyau?

La sortie que j'ai obtenue était:

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

@jc__ voir la sortie de la compilation ci-dessus, je ne peux pas immédiatement trouver où se trouve le makefile pour cette cible, mais je cherche toujours :)
T Kilney

Réponses:


12

Le make cleanest uniquement pour la deb-pkgcible. Jetez un œil à 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)

Si vous construisez à la bindeb-pkgplace, il ne fera pas de nettoyage. De toute façon, vous n'avez probablement pas besoin des packages source.

Je soupçonne qu'il fait un nettoyage parce qu'il ne veut pas tarer les artefacts de construction dans l'archive tar source.


2

Vous pouvez essayer de produire ces paquets deb avec un outil différent, make-kpkgqui est installé par apt-get install kernel-package. Alors par exemple

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

Cette commande ne doit pas être exécutée à make cleanchaque fois.


1

J'ai corrigé cela en allant dans le makefile pour la commande deb-pkg et en supprimant "make clean" du script. Cela ne semble pas avoir eu d'effets néfastes sur la construction et j'utilise le noyau personnalisé depuis une semaine ou deux sans problème. YMMV!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.