Reconstruindo o kernel do Linux sem "limpo"

11

Estou construindo um kernel personalizado baseado no 4.11 (para o Mintx64, se for o caso). Eu já o compilei e instalei para provar que funciona. Agora, fiz algumas pequenas alterações em alguns arquivos (nos subsistemas de driver e de rede, é por isso que preciso compilar um kernel personalizado em primeiro lugar!)

Agora eu quero construir o kernel modificado. No entanto, quando eu corro

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

O sistema de compilação parece começar "limpando" - carregando um monte de coisas, então eu o parei rapidamente. Infelizmente, o computador que estou usando não é abençoado com uma boa CPU e leva muitas horas para ser construído do zero. Portanto, prefiro evitar fazê-lo novamente, se possível!

É possível fazer apenas uma compilação incremental sem que tudo esteja "limpo" ou isso é um requisito do sistema de compilação do kernel?

A saída que obtive foi:

CHK      include/config/kernel.release
make clean
CLEAN .
CLEAN arch/x86/lib
...
T Kilney
fonte
@jc__ ver a saída de construção acima, eu não consigo encontrar imediatamente onde o makefile para que a meta é, mas eu ainda estou procurando :)
T Kilney

Respostas:

12

O make cleané apenas para o deb-pkgdestino. Dê uma olhada em 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 você construir o bindeb-pkglugar, não fará uma limpeza. Você provavelmente não precisa dos pacotes de origem de qualquer maneira.

Eu suspeito que ele faz uma limpeza, porque não deseja criar artefatos no tarball de origem.

RawwrBag
fonte
2

Você pode tentar produzir esses pacotes deb com uma ferramenta diferente, make-kpkginstalada por apt-get install kernel-package. Então por exemplo

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

Este comando não deve ser feito a make cleancada vez.

JJ Hakala
fonte
1

Corrigi isso, entrando no makefile para o comando deb-pkg e removendo "make clean" do script. Isso não pareceu causar efeitos negativos na compilação e estou executando o kernel personalizado há uma ou duas semanas sem problemas. YMMV!

T Kilney
fonte