Do topo...
make
compila e vincula a imagem do kernel. Este é um único arquivo chamado vmlinuz
.
make modules
compila arquivos individuais para cada pergunta que você respondeu M
durante a configuração do kernel. O código do objeto está vinculado ao seu kernel recém-construído. (Para perguntas respondidas Y
, elas já fazem parte vmlinuz
e, para perguntas respondidas N
, são ignoradas).
make install
instala seu kernel construído no /vmlinuz
.
make modules_install
instala seus módulos do kernel em /lib/modules
ou /lib/modules/<version>
.
Quanto a adicioná-lo à lista de kernels disponíveis, isso é tratado pelo gerenciador de inicialização. É diferente para cada carregador de inicialização, mas grub
é o mais comum em x86 e amd64, então descreverei isso. Na verdade, é bastante simples. O Grub procura e /
, por qualquer coisa que pareça, pode ser um kernel funcional e o adiciona. E sim, esta é uma descrição simplificada./boot
/lib/modules
Esse "material horrível" extra na documentação do Ubuntu é um material extra para criar um deb
pacote. Quando você está fazendo isso por mais do que você, é muito melhor empacotá-lo. Você vai mudar a tempo.
A construção do kernel e dos módulos é mantida separada porque, para as pessoas que precisam (isto é, desenvolvedores do kernel), elas geralmente estão fazendo alterações em apenas um módulo. Eles podem aplicar suas alterações, reconstruir e instalar apenas os módulos. Isso economiza muito tempo quando deve ser feito 20 vezes por dia. Ele nunca será atualizado para ter um único make everything
comando. Em vez disso, execute make && make modules && make install && make modules_install
como a documentação diz . O processo de compilação favorece os desenvolvedores do kernel, não você. E é assim que deve ser.
Na realidade, quase não há razão para ninguém, exceto os desenvolvedores do kernel ou os distribuidores de distribuição, compilarem um kernel. Em quase qualquer circunstância, o recurso do kernel que você deseja já foi criado para você e está disponível em um dos kernels pré-empacotados. Existem exceções, mas são extremamente raras atualmente.
Não que eu esteja desencorajando você a criar seu próprio kernel, na verdade eu o encorajo a fazê-lo. Eu acho que construir seu kernel do zero é uma prática valiosa para aprender como tudo funciona lá embaixo. Em parte, porque talvez um dia você vai ser a exceção que precisa. Mas também ensina muito sobre o processo de kernel e inicialização em geral. Você será uma pessoa melhor por ter feito isso.