Você está na página 1de 35

13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Novo! Acesse conteúdo exclusivo do Diolinux! (https://diolinux.com.br/cursos)

 (https://diolinux.com.br/) 

sistemas operacionais(https://diolinux.com.br/sistemas-operacionais)

tutoriais(https://diolinux.com.br/tutoriais)

Como compilar um Kernel


Linux passo a passo
[TUTORIAL COMPLETO]
05/07/2017

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 1/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux
(https://diolinux.com.br/sistemas-
(https://diolinux.com.br/sistemas-
(https://diolinux.com.br/sistemas-
(whatsapp://send?
(https://diolinux.com.br/sistemas
(mailto:?
text=Como+compilar+um+Kernel+Linux+passo+a+passo+%5BTUTO
text=Como+compilar+um+Kernel+Linux+passo+a+passo+%5BTUTORIAL+COMPLETO%5D:
subject=Como%20compilar%20um%20Kernel%20Linux%20passo%20a%20passo%20[T
  operacionais/como-compilar-um-
 operacionais/como-compilar-um-
 operacionais/como-compilar-um-
 operacionais/como-compilar-um
https://diolinux.com.br/sistemas-operacionais/como-compilar-um
kernel-linux-passo-a-passo.html)
operacionais/como-compilar-um-kernel-linux-passo-a-passo.h
kernel-linux-passo-a-passo.html)
kernel-linux-passo-a-passo.html)
operacionais/como-compilar-um-kernel-linu
kernel-linux-passo-a-passo.html)
passo.html)

Conteúdo [ mostrar ]

A compilação do Kernel é algo cheio de místicas no mundo da tecnologia, mas na


verdade ela não chega a ser um processo “super” complicado, requer um pouco de
atenção, sim, mas nada que algumas tentativas e alguns Kernel Panic não deixem você
“manjador”. Hoje vamos aprender como compilar um Kernel para a sua distribuição.

Vamos falar um pouco sobre compilação de Kernel e se você deve ou precisa fazer esse
tipo de coisa. 

Como comentei antes, a compilação do Kernel está envolta em uma mística muito grande
onde “apenas os entendidos” conseguem fazê-lo, de fato, é necessário um pouco de
conhecimento avançado no seu hardware para otimizar o Kernel, mas não para compilá-lo
necessariamente.

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 2/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Encare este tutorial de forma didática, acredito que os maiores beneficiados serão os que
querem aprender um pouco mais sobre Linux e sobre informática, a maior parte dos
usuários (comuns e avançados) não realmente necessitam de um Kernel compilado,
digamos que este seja um “luxo” que você pode se dar ou não.

As distribuições Linux fazem um grande esforço para entregar para você um Kernel
genérico que consiga lidar com praticamente qualquer hardware e ainda extraia um bom
desempenho do seu computador. Se você conhecer direito o seu processador, sua placa
mãe, memórias, etc, em fim, se conhecer bem o seu Hardware, é possível ajustar alguns
módulos para deixar o Kernel mais enxuto e otimizado. Em minha experiência a diferença
não chega a ser gritante mas pode ajudar. Eu mesmo costumo utilizar o Kernel oferecido
pela distribuição que eu estiver utilizando, só vou pensar em mudar caso algo não esteja
funcionando adequadamente e isso pode ser feito de diversas formas, compilando é
apenas uma delas.

Você também pode querer usar um Kernel mais antigo em uma máquina mais velha
também por questão de melhor suporte ao hardware, se a sua distro não oferece este
kernel, compilar ele pode ser a única solução para trazer à vida o seu “dinossauro de
estimação”. 😁
Veja também: Atualizar ou não atualizar o Kernel? (https://www.youtube.com/watch? 
v=yq6LZ6KIbm8)

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 3/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Já está ganhando coragem?

Compilando o seu Kernel Linux

Linus Torvalds liberou no kernel.org recentemente o Kernel 4.12 que traz várias melhorias
e pelo que me consta, melhores drivers de vídeo para placas da AMD é o principal
destaque. Se você usa Arch, Fedora, Manjaro, openSUSE Tumbleweed, versões instáveis
do Debian, entre outras distros que costumam manter pacotes recentes, provavelmente
você receberá esse Kernel muito em breve (isso se já não recebeu), no entanto, outras
distros tendem a usar o Kernel LTS para melhor estabilidade, o Debian Stable, Ubuntu,
Mint, entre outras. Estas mantém um Kernel em uma versão mais “antiga” e muitas vezes
uma versão modificada também, com inclusão de drivers extras e outras otimizações e
perfis que dizem respeito à distro em específico.

Leia também: Conheça o gestor de Kernel gráfico para Ubuntu


(http://www.diolinux.com.br/2016/09/conheca-o-ukuu-ubuntu-kernel-update.html)

Caso você se sinta inseguro ao fazer este tipo de coisa, ou se for a primeira vez que você
vai fazer isso, eu recomendo que você se foque em quatro pontos.

1º – Leia todo o material antes de começar a fazer qualquer coisa.


https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 4/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Acredite, se você não tiver paciência para ler este artigo por completo, provavelmente
você não vai ter paciência para compilar o kernel. Não tenha medo de aprender, este
artigo não vai fugir de você, então leia com calma mais de uma vez e use-o como guia no
seu processo.

2º – Faça o processo no VirtualBox uma vez ao menos para você entender como tudo
funciona.

Aprenda a fazer testes antes de colocar as coisas em produção, aprenda a errar e tirar
conhecimento dos seus erros. Fazer a compilação no VirtualBox pode levar mais tempo
por conta da potencia do seu computador ficar dividida, mas permite que você teste
várias coisas diferentes. Outra boa opção é você testar em um computador de reserva
que você tenha, assim você pode tentar otimizar o kernel para ele.

3º – Não tenha medo, mas seja responsável.

Algumas pessoas acham que para compilar o kernel você precisar ser o “Chuck Norris” no
Linux, mas a verdade é que “qualquer um com o toddy em um quarto escuro” faz isso,
basta prestar atenção.

Se você estiver fazendo em uma máquina virtual ou de testes, não há com o que se

preocupar. Na verdade, mesmo fazendo na sua máquina de trabalho, sabendo voltar ao
“normal”, não tem muito com o que se preocupar também.

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 5/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Uma vez o kernel compilado, entenda que tudo o que funciona e não funciona no seu
sistema no que diz respeito ao gerenciamento de hardware é “culpa” sua, os patches de
segurança, atualizações e coisas do tipo serão aplicados somente se você o fizer.
Provavelmente a sua distro continuará a prover atualizações no Kernel que ela traz por
padrão através do repositório, mas no que diz respeito ao kernel que você compilar, bom,
ele depende só de você.

4º – Pegue o seu café. Sempre tenha um café! ☕


Pode ser chá também.

Começando a compilar o Kernel Linux

O primeiro passo é, sem dúvida, baixar o Kernel que você quer instalar. Observe sempre a
versão, pois essa informação será importante no futuro. Neste exemplo vamos usar o
mais recente (no momento), o Kernel 4.12. Acesse o kernel.org (http://kernel.org/) e baixe
a versão mais recente disponível:

Kernel Linux Download

Clique no botãozão  amarelo e faça o download para o diretório que você quiser, por
exemplo, a sua pasta Downloads. Para fins de organização (afinal você pode ter muitas 

pastas e arquivos ali), sugiro que crie uma pasta com qualquer nome e coloque o arquivo

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 6/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

que você baixou dentro, vou usar o nome “kernel” neste exemplo, conforme a imagem
abaixo:

Compilação de Kernel Linux

Veja o exemplo acima da pasta “kernel” dentro de “Downloads”

Depois disso, abra o seu terminal e agora vamos começar a “brincadeira”. Já pegou um
café aí (ou chá, se você estiver em processo de descafeinação)?

Este processo pode demorar um pouco, seja paciente, leia com atenção e tudo deverá
ocorrer bem.

Antes de mais nada, vamos instalar alguns pacotes que serão úteis para a nossa
compilação. No exemplo eu estou utilizando o Linux Mint, mas os comandos servirão
para todas as distros baseadas em Debian, incluindo o Ubuntu, lembrando que você tem
que fazer o processo como root ou utilizando “sudo” onde for possível. Neste caso,
podemos usar o “sudo” sem problemas:

Comando:


sudo apt install build-essential libncurses5-dev

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 7/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Os pacotes tem o mesmo nome em praticamente todas as distros, então basta você usar
o gerenciador de pacotes da sua. Alguns comandos que vamos utilizar são coisas
básicas do Bash, como o “ls” para listar os arquivos e pastas nos diretórios e o “clear”
para limpar a tela (ou CTRL+L), então, fique à vontade para utilizá-los, como agora, você
deve estar com o seu terminal cheio de informações, apenas limpe a tela digitando: clear.

– Aprenda comandos de Bash aqui para facilitar a sua vida com o Terminal
(https://www.youtube.com/watch?v=pPg1Pqh6GJE)

O nosso próximo passo é extrair o conteúdo do arquivo compactado do Kernel que você
baixou para uma pasta específica.

Mude para a pasta de download

Lembra que eu tinha comentado para colocarmos o arquivo dentro de uma pasta
chamada “kernel”, que por sua vez estava dentro da pasta “Downloads”? Vamos precisar
ir até ela com o comando:

cd ~/Downloads/kernel/

Uma vez dentro dela, rode o “ls” para ver se o arquivo está ali. No nosso exemplo o
arquivo se chama linux-4.12.tar.xz, este tipo de arquivo é um arquivo compactado como 

qualquer outro .rar ou .zip, porém, ele usa a compactação tar.xz, vamos precisar extrair os

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 8/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

arquivos dele e vamos fazer pelo terminal, assim já podemos direcioná-lo diretamente
para a pasta /usr/src/ que é onde ele deve ficar para continuarmos. À partir de agora,
vamos entrar em modo root e fazer tudo desta forma, então rode o comando:

su root

Digite a sua senha e você já deve estar como root, se você estiver usando o Bash, o
indicativo para isso é que você terá um “#” no lugar do “$” no terminal:

Compilando Kernel

Agora vamos extrair o conteúdo do arquivo e direcioná-lo para o diretório desejado:

✅ Dica: use o tab para autocompletar os comandos, por exemplo, ao invés de digitar
linux-4.12.tar.xz, apenas digite “li” e pressione tab. Funciona em vários outros momentos
também.

Compilando Kernel

Comando:

tar -xvf linux-4.12.tar.xz -C /usr/src/


https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 9/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Se tiver dúvidas sobre o comando tar, você pode verificar a sua página de ajuda digitando:
tar –help. A extração deverá demorar alguns segundos, então aguarde o processo
terminar, quando isso acontecer você deverá ver uma tela semelhante a esta:

Compilando Kernel

Agora vamos conferir se realmente os arquivos foram parar no lugar certo. Até agora você
poderia ter feito tudo em modo gráfico, mas metade da graça de compilar o Kernel está
em usar comandos até pra descompactar arquivos, certo? 😂
Arquivos para compilação do Kernel

Comandos:

cd /usr/src/

ls

Você deverá ver um diretório com o nome de “linux-4.12”.

Aqui vai uma dica que pode facilitar um pouco, e se ao invés de ficar digitando toda a vez
“linux-4.12” você chamasse ele apenas de “linux” ou de “kernel”, ou ainda de “meganfox”?

Vamos criar um link símbolo pra ele, assim você não precisa digitar mais de uma palavra
ou perder tempo digitando mais caracteres:

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 10/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Criando link simbólico

Comando:

ln -s linux-4.12 linux

Olha que beleza? Agora quando você acessar o diretório “linux” ele vai entrar dentro de
linux-4.12. Se você der um novo “ls” vai perceber a existência de um diretório chamado
“linux”. Vamos entrar nele também:

✅ Dica: O Linux é “Case sentivive”, isso significa que o seu sistema operacional
diferencia letras maiúsculas de minúsculas, um diretório chamado ‘Linux” é diferente de
outro chamado “linux”, que por sua vez é diferente de outro chamado “LInux” e por aí vai.
Então preste atenção para digitar os comandos e diretórios exatamente como são os
seus nomes.

compilando Kernel Linux

Comandos:

ls


E observe a presença do link “linux”.

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 11/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

cd linux

Para mudarmos para dentro do diretório “linux”

ls

Novamente para listar os arquivos contidos dentro da pasta.

Agora é que começa a compilação propriamente dita. O próximo passo é um dos mais
importantes e determinantes da hora de compilar um Kernel Linux:

Configuração do Kernel

Comando:

make menuconfig

Esse comando irá rodar e carregar uma espécie de interface onde você poderá fazer
vários ajustes, se você quiser, é claro:

✅ Dica: Nesta opção, você pode escolher copiar o arquivo de configuração do seu kernel
atual também, bastando confirmar quando o utilitário lhe pedir, entretanto, neste artigo
nós vamos dar uma explorada a mais nele. 

Compilando Kernel
https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 12/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Aqui, para mim, vale o mesmo conceito do overlock. Você pode ir testando opções até
encontrar alguma que fique realmente estável e otimizada para você. Fica difícil eu dizer
qualquer coisa aqui para você configurar porque eu não sei exatamente qual o hardware
você possui, quais dispositivos você conecta no seu computador, não sei o modelo da
sua placa mãe, etc, etc. 

Vale muito à pena você fazer este processo várias vezes e conhecer o seu harware para
fazer modificações e testar como tudo vai funcionar. Aqui você pode habilitar e desabilitar
drivers por exemplo. Um exemplo que eu posso dar é que você pode, na sessão de
drivers, desabilitar o suporte para blobs de drivers proprietários no Kernel, desmarcando a
opção, isso talvez agrade quem gosta apenas de software livre.

Compilando Kernel

Cabe a você explorar todas as essas opções (que são muitas), mas atenção, minha
recomendação é:

Pesquise tudo o que você deseja alterar para entender o que a opção faz e entender a
consequência da sua ação, evite fazer esse tipo de coisa em máquinas de trabalho que
não podem ficar paradas e sempre mantenha um kernel extra que você sabe que
funciona, como o que veio junto com a sua distro, não o remova, assim você pode voltar

pra ele caso tenha algum problema. Estude o seu hardware e veja que recursos você
pode habilitar e desabilitar. 

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 13/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Otimizar um Kernel para você e tê-lo estável por levar algum tempo e algumas tentativas
de compilações.

✅ Dica: Leia com atenção a legenda que aparece nesta tela, ela te informa como você
navega pelos menus e como marcar e desmarcar as opções.

Como eu não sei qual o seu hardware e nós queremos continuar a nossa experiência com
a compilação, vamos apenas usar todas as opções que são padrão. Para isso, sem fazer
nenhuma alteração, vamos até a opção “Save” e pressionamos a tecla “Enter”.

Compilando Kernel Linux

Ao salvar uma nova tela aparecerá onde você pode escolher o nome do seu arquivo de
configuração (esse que você estava editando, ou não, no passo anterior), você pode
deixar o padrão mais uma vez “.config” e pressionar “enter” para confirmar:

Compilando Kernel

Depois da configuração estar pronta, uma nova tela vai se abrir com uma única opção
para sair, apenas confirme pressionando “enter” mais uma vez.

compilando kernel

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 14/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Isso vai te levar para a primeira tela do menu de configuração, agora é só você sair,
selecionando a opção “Exit”:

compilando kernel

Voltamos ao nosso terminal mais uma vez, você pode dar um “clear” para deixar ele limpo
novamente. O que vamos fazer agora é puramente para informação e praticidade. 

Vamos alterar um pouco o nome do Kernel, nada demais, de “leve na neve”, só pra gente
saber que essa é a nossa versão compilada.

Uma informação importante que você pode inserir aqui é qual a versão da compilação
que você está fazendo, assim dá pra ir testando várias formas diferentes e iniciar pelo
Kernel que você quiser depois pelo GRUB.

Você pode usar aqui qualquer editar de texto (em modo texto ou gráfico), eu estava na
intenção de usar o VIM, porém, ele não vem instalado no Linux Mint (talvez na sua distro
ele venha), em compensação eu tenho pré instalado o nano e o vim.tiny (versão mais
enxuta do dito cujo), que vai servir também, afinal, eu só quero mudar uma linha no
arquivo de configuração. Se você quiser pode instalar o VIM ou qualquer outro.

Escolha o que você preferir e vamos editar o arquivo: 

compilando Kernel
https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 15/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Comando:

vim.tiny /usr/src/linux/Makefile

O que eu quero mudar neste arquivo é a descrição em EXTRAVERSION:

Configurando Makefile

Navegue com o seu teclado até lá e coloque a informação que desejar, eu vou colocar
diocomp1, que para mim significa “Diolinux Compilação 1”, afinal, como eu disse, eu
posso fazer várias compilações do mesmo kernel e ir testando, assim na próxima vez que
fizer poderei colocar diocomp2 e assim por diante, ficando mais simples para identificar
cada uma.

Para salvar e sair no VIM você deve pressionar a tecla “ESC” até que a palavra “INSERT”
suma ali de baixo, e digitar:

:wq

Não esqueça dos dois pontos, o W serve para salvar a sua edição e o Q para sair. Se você
quiser aprender mais sobre o VIM e sobre o terminal, confira o nosso curso de Bash no
Diolinux EAD (https://play.diolinux.com.br/conteudos/curso-de-terminal-linux-bash/), ele

tem um módulo bônus somente sobre o VIM.

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 16/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Próximo passo, gerando a imagem bzImage:

gerando imagem

Comando:

make bzImage

Se liga aí no “I” maiúsculo. Nesta parte eu tive esse problema, como você pode ver, só
ocorreu no Linux Mint/Ubuntu, no Debian foi de boa. Isso era a falta de um pacote no
sistema que você resolve com:

apt install libssl-dev

Essa parte demora meu jovem, então vá dar uma caminhada ou tomar aquele seu café,
deixe apenas o terminal trabalhando, procure fechar as outras aplicações pois a
compilação consome recursos da máquina, memória e processador especialmente, e
quanto mais livre ela estiver, mais rápido tende a ser. Sugestão, aproveita e assiste um
episódio de Bates Motel na Netflix (https://www.youtube.com/watch?v=EOWcTivlLao), a
série é muito legal. 

Ao terminar o processo, você deve ver uma tela semelhante a esta:


Compilação do Kernel Linux

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 17/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Se tudo deu certo, você deverá ter uma imagem dentro do diretório de boot, que é um
subpasta dentro da sua pasta “linux”, para verificar isso rode o seguinte comando:

ls /usr/src/linux/arch/x86_64/boot/

A arquitetura ali no meio do comando (x86_64) depende do tipo do kernel que você está
compilando, de 32 ou 64 bits. Você deverá ver algo como isto:

Compilando Kernel

O próximo passo vai compilar os módulos do seu Kernel, o que inclui os drivers que você
selecionou lá no menu de configuração:

make modules

Comando: 

make modules

Dependendo da quantidade de módulos habilitados esse processo também pode


demorar pra caralho um bocado, espere pacientemente. (Ou fique louco, mas acho que
isso não vai ajudar em nada). No meu caso demorou pouco mais de 1 hora e meia, mas

isso depende da potência do seu hardware. Ao término você deverá ver uma tela como
esta:

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 18/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Compilando Kernel

 É bom você deixar um bom espaço livre também na sua partição / ou na /usr,
dependendo de como você particionou, essa compilação genérica gerou quase 14 GB de
dados.

Agora com os modulos compilados, vamos precisar instalá-los:

Make modules_install

Depois do processo terminar, você verá uma tela semelhante a esta:

Compilação do Kernel

Agora vamos instalar o Kernel que você acabou de compilar:

Instalando o kernel compilado

Comando:

make install

Ao terminar de executar esta tarefa, você deverá ver uma imagem semelhante a esta:

instalando o novo kernel

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 19/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Alguns erros que aparecem nessa tela ocorrem por conta do VirtualBox

Agora precisamos mudar de diretório para rodar mais um comando que vai criar a nossa
imagem de inicialização do Kernel:

configurando imagem de inicialização

Comando:

cd /boot

Uma vez dentro deste diretório, rodaremos os seguintes comando:

nome do kernel

Comandos:

ls /lib/modules/

Esse comando vai servir pra termos certeza do nome do nosso kernel, como você pode
ver na segunda linha da  imagem acima, o kernel que compilamos tem o nome de

“4.12.0diocomp1”, vamos precisar deste nome no comando a seguir, que é:

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 20/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

mkinitramfs -o initrd.img-4.12(use o tab para completar) (nome do kernel)

No meu exemplo ficou como na imagem acima:

mkinitramfs -o initrd.img-4.12.0diocomp1 4.12.0diocomp1

Preste atenção, pois este comando deve ser rodado dentro do diretório /boot.

Este comando não deve te retornar nada no terminal, ele apenas vai “rodar”, por assim
dizer.

Estamos chegando perto do final, precisamos fazer com que o GRUB reconheça o nosso
novo kernel para que possamos reiniciar a máquina utilizando ele, para que isso aconteça
é necessário atualizar a lista de sistemas/kernels que estão listadas no menu do GRUB
(Aquele carinha que aparece na inicialização do computador). 

Esse passo pode variar um pouco de acordo com o sistema que você estiver utilizando,
Debian, Ubuntu, Mint, etc tem uma shell script nativo do sistema que faz essa atualização
através do comando:

Compilando Kernel


Comando:

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 21/35
13/05/2023, 06:55 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

update-grub

Eventualmente a sua distro pode ter outro método de fazer este mesmo passo, então vale
a pena consultar a documentação do sistema caso o comando não funcione. 

Repare na imagem acima, nós já temos a imagem do kernel e do initrd encontradas com a
nossa compilação, esse comando não demora muito e ao terminar, nós já temos tudo
pronto para começar a utilizar e testar o nosso kernel compilado.

Agora você pode reiniciar o computador para testar o novo Kernel compilado por você
mesmo, se funcionar eu sei que você vai estar se sentindo um Elliot da vida, mas vamos
para o teste definitivo. 

Reinicie como você preferir, se quiser fazer pelo terminal, apenas digite:

reboot

Se o seu computador tem apenas um sistema operacional instalado, ele deve carregar
automaticamente o seu kernel, caso ele seja o mais recente instalado, caso você tenha
mais de um sistema, você verá o GRUB, onde fica fácil de você identificar se o seu novo
kernel está listado para iniciar.

GRUB com kernel compilado

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 22/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Caso o GRUB não apareça para você, basta ficar pressionando a tecla “Shift” na
inicialização do computador, depois selecione o modo avançado e você verá uma imagem
semelhante a esta, com o seu kernel como opção para inicializar.

Bastar pressionar “enter” para inicializar pelo Kernel desejado.

Se tudo deu certo, seu computador vai funcionar normalmente, uma vez na área de
trabalho você pode conferir se você está usando o Kernel correto rodando o seguinte
comando:

verificando o novo kernel compilado

Comando:

uname -romi

ou

uname -r

Pronto meu amigo ou minha amiga, você acabou de compilar o Kernel Linux! Não foi tão
difícil foi? 

É só preciso de um pouco de atenção e paciência. 😎


https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 23/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Como eu quero deixar as coisas mais completas, eu vou te ensinar a voltar para o kernel
da sua distro e remover o seu kernel compilado, caso você queira. Existem várias formas
de editar o GRUB (http://www.diolinux.com.br/2012/09/instale-o-grub-customizer-3-no-
ubuntu.html) para você escolher com qualquer kernel ou sistema você quer inicializar por
padrão, mas vamos tomar de exemplo que por qualquer motivo você não queira mais o
seu kernel compilado e você queira usar o a sua distro te oferece.

Removendo o seu kernel compilado

Reinicie o seu computador mais uma vez e na tela do GRUB selecione outra versão do
Kernel que não seja a sua compilação, dê preferência pela mais recente, fora a sua.

grub customizer

No meu caso seria a versão “4.8.0-53-generic”, que é a entrada que está marcada logo
acima no meu GRUB, selecione a opção e dê “enter”, assim você vai inicializar por este
kernel. Essa dica é bacana em vários casos, existem opções de recuperação do sistema
que aparecem ali que nem todos conhecem. Eu recomendo que você veja este vídeo
(https://www.youtube.com/watch?v=jCmYUya5doQ) onde eu expliquei como funcionam
estas opções, vale a pena.

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 24/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Seu sistema deve iniciar normalmente e está pronto para fazermos a remoção. Como nós
fizemos a compilação “na unha”, como se diz, a remoção vai ter que ser também, existem
alguns arquivos e diretórios que você precisa apagar, que são os arquivos do seu kernel
compilado, são eles:

/boot/vmlinuzNOME-DO-SEU-KERNEL

/boot/initrdNOME-DO-SEU-KERNEL

/boot/System-mapNOME-DO-SEU-KERNEL

/boot/config-NOME-DO-SEU-KERNEL

/lib/modules/NOME-DO-SEU-KERNEL/

/var/lib/initramfs-tools/NOME-DO-SEU-KERNEL/ ou /var/lib/initramfs/NOME-DO-SEU-KERNEL/

Entre como root novamente, como você fez para compilar e rode os seguintes comandos:

removendo kernel compilado

Comandos (como root):



cd /boot

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 25/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Vamos entrar em /boot para limpar os arquivos ali primeiro, depois use o “ls” para listar os
arquivos e diretórios dentro desta pasta, assim você pode ver o nome do kernel que você
compilou, fica fácil de reconhecer por conta da modificação que fizemos no nome “lá
atrás”, quanto editamos o arquivo de configuração. Todos os arquivos tem a versão do
nosso kernel compilado (4.12 no nosso exemplo) e as informações que colocamos em
EXTRAVERSION, no exemplo eu coloquei diocomp1. 

Para remover vamos usar o comando ”rm”, como está na imagem acima, sendo assim, o
comando ficaria:

rm vmlinuz-4-12.0diocomp1 inird.img-4.12.0diocomp1 System.map-4.12.0diocomp1 config-4.


12.0-diocomp1

Lembre de colocar a SUA VERSÃO do kernel, com o nome que você deu pra ele.

Rodando o comando e dando um novo “ls” você verá que os arquivos foram apagados:

removendo kernel compilado

Precisamos remover mais algumas coisas ainda antes de atualizamos o GRUB


novamente. 


Precisamos mudar de diretório primeiro:

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 26/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

removendo kernel antigo

Comandos:

cd /lib/modules/

Primeiro mudamos para o diretório dos módulos, uma vez dentro dele, rodando o “ls” para
vermos o conteúdo novamente. Certamente você encontrará outro diretório com o nome
da sua compilação do kernel, no exemplo temos “4.12.0diocomp1”, temos de removê-lo
também:

rm -rf NOME_DO_SEU_KERNEL

No meu exemplo ficou:

rm -rf 4.12.0diocomp1/

Repare que diferente de quanto apagamos os arquivos no diretório /boot, aqui usamos
um parâmetro para o “rm”, o “-rf”, ele serve para apagar pastas e arquivos de forma
recursiva, se você usar apenas o “rm”, o comando não consiguirá apagar a pasta porque
ela não está vazia.


Se você der um novo “ls” depois de apagar a sua pasta, você verá que ela não existe mais.

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 27/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Agora só falta apagar mais um arquivo.

removendo kernel compilado

Comandos:

cd /var/lib/initramfs/

ou

cd /var/lib/initramfs-tools/

Aqui eu tive uma “surpresa”, da última vez que eu tinha compilado um kernel o diretório se
chamava apenas de “initramfs”, mas acabei descobrindo que ele ganhou um sufixo extra
“initramfs-tools”, não sei dizer quando isso mudou, mas pesquisando eu encontrei
referências de 2014/2015, também não sei dizer se isso é uma particularidade do Linux
Mint, que eu estou usando neste tutorial, de qualquer forma achei o diretório e você
também o achará.

Dentro dele você pode dar mais um “ls” para ver o há por ali, mais uma vez você deve
encontrar o seu kernel compilado, basta remover o arquivo como você fez com os
arquivos em /boot.

rm NOME_DO_SEU_KERNEL

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 28/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

No meu exemplo:

rm 4.12.0diocomp1

Depois, precisamos atualizar o GRUB novamente para que ele remova a entrada do kernel
compilado, caso contrário ao tentar iniciar o computador por ele você terá uma bela tela
de erro.

update-grub

Como atualizar o grub

Ao fazer a atualização do GRUB, repare que o kernel compilado sumiu das entradas.  Ao
reiniciar você pode até olhar no GRUB para conferir que o kernel compilado não existe
mais.

grub sem kernel compilado

Se tiver ainda dúvidas, ao chegar na sua área de trabalho consulte novamente via
terminal:

uname -r

Como você pode ver, voltamos ao kernel generic.

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 29/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Finalizando

Este é provavelmente um dos maiores tutoriais que eu já pude escrever aqui no blog e
também um dos assuntos mais “complexos” abordados. A maior parte das vezes que vi
tutoriais à respeito do assunto eles não eram tão “passo a passo” e raramente ensinavam
a remover o kernel compilado, espero que eu tenha conseguido cumprir o meu objetivo de
desmistificar um pouco essa questão e mostrar que não é tão complicado quanto a maior
parte das pessoas pensa.

Não precisa ser nenhum gênio para compilar um kernel, como você pôde ver, entretanto, a
parte diferencial pode ser a otimização para o seu hardware e neste caso você terá de
fazer um estudo particular sobre a sua situação e entender o que você pode alterar que
poderá te dar algum benefício.

Eu escrevi este artigo com muita dedicação e carinho, porém, ele não está isento de erros,
mesmo que eu tenha conferido algumas vezes todo o processo (em mais de uma distro),
caso você encontre erros de português, erros no processo da compilação ou tenha
sugestões, use os comentários para colaborar e engrandecer o material, certamente será
de grande ajuda.

Compartilhe para os seus amigos como forma de pagamento pelo conteúdo e até a
próxima! 🙂 

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 30/35
😁
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Matamos mais um leão, hein?


Ouça o novo Diocast!

(https://diolinux.com.br/podcast/debugando-o-codigo-fonte-tv.html)


diocast(https://diolinux.com.br/podcast)

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 31/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

Debugando os criadores do Código Fonte TV - Diocast #T5E13


(https://diolinux.com.br/podcast/debugando-o-codigo-fonte-tv.html)
04/05/2023

(https://bit.ly/KasmWorkspaces)

Mais acessados da semana

(https://diolinu Aprenda a fazer o contorno com efeito neon no GIMP!


(https://diolinux.com.br/video/aprenda-a-fazer-efeito-neon-no-gimp.html)
a-fazer- 
06/05/2023
efeito-neon-

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 32/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

(https://diolinu Entenda a diferença entre Steam Native e Steam Runtime


(https://diolinux.com.br/softwares/steam-native-e-steam-runtime.html)
native-e-
09/05/2023
steam-

(https://diolinu Transforme seu computador velho em um servidor com o TrueNAS Scale!


(https://diolinux.com.br/video/computador-velho-servidor-truenas-scale.html)
velho-
08/05/2023
servidor-

(https://diolinu Abxylute White - Veja como está ficando o portátil


(https://diolinux.com.br/video/abxylute-white-como-esta-o-portatil.html)
white-como-
08/05/2023
esta-o-

(https://diolinu Conheça uma boa fonte sobre média salarial de programadores no Brasil
(https://diolinux.com.br/video/fonte-media-salarial-de-programadores.html)
media-
09/05/2023
salarial-de-

Dionatan Simioni (https://diolinux.com.br/autor/diolinux)


SOBRE O AUTOR


Criador do blog e canal Diolinux, alguém que acredita em liberdade de
2696 escolha e é apaixonado por música e tecnologia.
postagens

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 33/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

artigos (https://diolinux.com.br/autor/diolinux)

 Anterior

Fundador do LibreOffice comenta sobre os problemas de compatibilidade com o


Microsoft Office
(https://diolinux.com.br/noticias/fundador-do-libreoffice-comenta-sobre-ms-office.html)

Próximo 

Privacidade extrema! Mozilla lança Firefox Focus para Android e iOS


(https://diolinux.com.br/sistemas-operacionais/android/privacidade-extrema-firefox-
focus.html)

Postagens relacionadas

(https://diolinux.com.br/t Como acelerar o tempo de carregamento do seu


de-carregamento-do- site (https://diolinux.com.br/tutoriais/tempo-de-
seu-site.html) carregamento-do-seu-site.html) 
09/03/2023

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 34/35
13/05/2023, 06:56 Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO] - Diolinux

(https://diolinux.com.br/t Como instalar a NordVPN no Linux Mint: um guia


a-nordvpn-no-linux- passo a passo
mint.html) (https://diolinux.com.br/tutoriais/instalar-a-
nordvpn-no-linux-mint.html)
23/02/2023

(https://diolinux.com.br/s Nitrux OS remove APT


operacionais/nitrux-os- (https://diolinux.com.br/sistemas-
remove-apt.html) operacionais/nitrux-os-remove-apt.html)
31/01/2023

Política de privacidade (https://diolinux.com.br/politica-de-privacidade) Seja membro


(https://bit.ly/playblogdiolinux) Links (https://diolinux.com.br/links) Vagas
(https://diolinux.com.br/vagas) Anuncie (https://diolinux.com.br/anuncie-aqui)
Contato (https://diolinux.com.br/contato) E-book grátis
(https://diolinux.com.br/startup) Benchmarks
(https://diolinux.com.br/tecnologia/benchmark-dos-sistemas-operacionais.html)

Hospedado com ❤️ na Hostinger    


(https://hostinger.com.br/diolinux)
© Diolinux 2022 
(https://youtube.com/@diolinux)
(https://instagram.com/diolinux)
(https://twitter.com/blogdiolinux)
(https://twitch.tv/diolinux)

https://diolinux.com.br/sistemas-operacionais/como-compilar-um-kernel-linux-passo-a-passo.html 35/35

Você também pode gostar