Re-construindo o kernel Linux sem “clean”

9

Estou criando um kernel personalizado baseado em 4.11 (para o Mintx64, se isso for importante). Eu já compilei e instalei para provar que funciona. Agora fiz algumas pequenas alterações em alguns arquivos (no driver e nos subsistemas 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 por "limpar" uma grande quantidade de coisas, entã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 seja "clean" d ou isso é um requisito do sistema de compilação do kernel?

A saída que recebi foi:

CHK      include/config/kernel.release
make clean
CLEAN .
CLEAN arch/x86/lib
...
    
por T Kilney 02.06.2017 / 21:03

3 respostas

8

O make clean é somente para a meta deb-pkg . 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ê criar o bindeb-pkg , ele não será limpo. Você provavelmente não precisa dos pacotes fonte de qualquer maneira.

Eu suspeito que ele está limpo porque não quer construir artefatos no tarball de origem.

    
por 13.03.2018 / 22:47
2

Você pode tentar produzir os pacotes deb com uma ferramenta diferente, make-kpkg que é instalado 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 fazer make clean de cada vez.

    
por 02.06.2017 / 22:58
1

Eu consertei isso indo para o makefile para o comando deb-pkg e removendo "make clean" do script. Isso não parece causar nenhum efeito nocivo na compilação e eu tenho executado o kernel personalizado por uma ou duas semanas sem problemas. YMMV!

    
por 20.06.2017 / 11:15