Obtenha o processo Linux Kernel para reconstruir arquivos modificados
-
21-08-2019 - |
Pergunta
Eu estou Construindo um kernel Ubuntu personalizado e modificaram um dos arquivos de origem. Quando emite o comando de construção:
NOEXTRAS=1 skipabi=true skipmodule=true fakeroot debian/rules binary-insp8600
Ele reconstrói os Debs, mas nenhum dos arquivos de origem modificado é reconstruído.
E aí? Tenho que fazer uma reconstrução completamente limpa toda vez que modificar um arquivo de origem?
Isso não faz sentido.
O arquivo modificado foi ./init/main.c
.
Como uma nota, o binário-Insp8600 é um sabor personalizado que criei para o meu laptop Inspiron 8600.
Solução
debian/rules
não é o kernel makefile. Não tem como saber que o arquivo que você editou é uma dependência do kernel final, pois essas dependências estão no verdadeiro makefile.
Na verdade, eu esperaria o debian/rules
build
Target (aquele que realmente faz a compilação) para depender apenas de um arquivo "sinalizador" que cria depois de terminar a compilação. Se for esse o caso, uma solução alternativa simples seria remover esse arquivo "sinalizador"; então compilaria tudo de novo (chamando o kernel Makefile
, o que saberia como fazer uma reconstrução parcial. Claro, isso está assumindo o build
Target não tenta ser arrumado e faz um make clean
ou equivalente...)
(Eu não olhei para o debian/rules
Para o pacote que você está usando, então eu posso estar errado, mas pelo menos é um começo.)
Outras dicas
Você não deve fazer uma construção limpa se as dependências no Makefile estiverem corretas.
O arquivo que você alterou é um arquivo de cabeçalho? Se for, execute o makepend para adicionar as dependências do arquivo de cabeçalho automaticamente :)
Se não for um arquivo de cabeçalho, o deles realmente deve ser uma dependência no makefile se fizer parte da compilação, faça uma pesquisa e verifique se o alvo que você está usando depende do módulo que deseja compilar