O QUE É O KERNEL? POR QUE COMPILAR? PROBLEMAS?
O QUE É O KERNEL
O Kernel é basicamente o coração do sistema. Todas as instruções de como fazer o gerenciamento do hardware e do sistema, estão escritas no Kernel.
POR QUE COMPILAR O KERNEL
Para ser mais prático, vamos a um exemplo, digamos que você tem uma placa-mãe da Gigabyte e sua placa de rede integrada é uma Realtek. No Kernel que você está usando (digamos que é o 4.9) não há suporte para esta placa de rede, ou seja, ela está em off e você não pode navegar na rede. Você leu na documentação do Kernel 4.12 que o suporte para esta placa foi adicionado. Neste caso, faz sentido você atualizar o Kernel para ter suporte ao novo módulo.
Sempre devo compilar o Kernel?
Não, o ideal é deixar sempre no Kernel default da sua distro, pois esta versão é que foi homologada e testada para funcionar sem gargalos.
Sempre devo compilar o Kernel?
Não, o ideal é deixar sempre no Kernel default da sua distro, pois esta versão é que foi homologada e testada para funcionar sem gargalos.
POSSO TER PROBLEMAS DEPOIS DE COMPILAR O KERNEL?
Sim, pode. Você está alterando a parte que controla tudo no equipamento. Comigo, em especial, nunca ocorreu nenhum problema que fizesse algo parar de funcionar, tudo continuou normal. Mesmo que você tenha problemas, ainda será possível bootar pelo Kernel antigo para utilizar o sistema. Então, vale a tentativa de atualização para correção de algum erro.
APRENDA DEFINITIVAMENTE COMO COMPILAR O KERNEL DO LINUX
Antes de tudo, entenda que o Kernel é desenvolvido pela Kernel.org. O topo máximo desta cadeia é o Sr. Linus Torvalds, criador do kernel Linux. Todas as revisões e quem bate o martelo para lançar um Kernel, é ele.
Em meu equipamento, estou utilizando um Debian Stretch com Kernel 4.9.0-3 e estarei atualizando para o Kernel 4.12.4. Este modo de compilação serve para qualquer distribuição.
Para realizar o download do Kernel, clique link para aqui e selecione a opção "Latest Stable Kernel".
Em meu equipamento, estou utilizando um Debian Stretch com Kernel 4.9.0-3 e estarei atualizando para o Kernel 4.12.4. Este modo de compilação serve para qualquer distribuição.
Para realizar o download do Kernel, clique link para aqui e selecione a opção "Latest Stable Kernel".
Veja que, na parte de baixo, há uma lista de versões mais antigas do Kernel. Você pode tentar compilar qualquer uma delas baixando o tarball.
DEPENDÊNCIAS
Dependências para compilar o Kernel:
Obs.: as dependências abaixo são para distribuições Debian-based, ou seja, se você usa RedHat-based ou Slackware-based, precisa identificar os pacotes equivalentes a estes.
Obs.: as dependências abaixo são para distribuições Debian-based, ou seja, se você usa RedHat-based ou Slackware-based, precisa identificar os pacotes equivalentes a estes.
§ Build-essential: Este é um pacotão de compiladores. Ele contém o make, gcc, gcc++, dpkg-dev, etc. É necessário porque vamos instalar o make, comando que vai entender as instruções e compilar o Kernel.
§ libssl-dev: Librarie de segurança que utiliza o protocolo SSL.
§ libncurses5-dev: Necessário para criar uma interface gráfica para criação do arquivo de configuração do Kernel. Neste caso, instalando somente esta lib pode não funcionar, então, sugiro instalar todo o pacote do ncurses.
Vamos lá:
sudo su
# apt-get install build-essential libssl-dev ncurses* -y
Agora, vamos extrair o Kernel baixado:
# cd /home/user/Downloads
# tar xvf linux-4.12.4.tar.xz
Uma pasta "Linux-4.12.4" foi criada. Vamos acessá-la e verificar o que consta dentro:
# cd linux-4.12.4.
# ls --color
Agora, vamos configurar o Makefile para compilarmos posteriormente (se você não sabe o que é um Makefile, leia este artigo:
# make menuconfig
Uma tela como esta será aberta. Nela, é possível personalizar o que você deseja ou não compilar deste Kernel, personalizando conforme sua necessidade:
# make menuconfig
Uma tela como esta será aberta. Nela, é possível personalizar o que você deseja ou não compilar deste Kernel, personalizando conforme sua necessidade:
Obs.: o comando make config faz a mesma coisa que o make menuconfig, porém, sem interface gráfica.
Depois de finalizado este processo, um arquivo ".config" será criado e o arquivo Makefile será modificado com as instruções que selecionamos na interface gráfica acima.
Agora vamos, de fato, compilar o Kernel:
# make -j4
Obs.: se você não sabe o que o parâmetro "-j" faz, leia este artigo.
Este processo demora bastante, se você não usar a opção "-j". Então, meu amigo, vá ver um filme, tomar um café, correr com sua namorada.
Depois de finalizado, vamos compilar os módulos:
# make modules
Após compilar, vamos instalar os módulos:
# make modules_install
Depois de finalizado este processo, um arquivo ".config" será criado e o arquivo Makefile será modificado com as instruções que selecionamos na interface gráfica acima.
Agora vamos, de fato, compilar o Kernel:
# make -j4
Obs.: se você não sabe o que o parâmetro "-j" faz, leia este artigo.
Este processo demora bastante, se você não usar a opção "-j". Então, meu amigo, vá ver um filme, tomar um café, correr com sua namorada.
Depois de finalizado, vamos compilar os módulos:
# make modules
Após compilar, vamos instalar os módulos:
# make modules_install
E, para finalizar, vamos instalar o Kernel com os módulos compilados:
# make install
Processo finalizado. Vamos testar?
Reinicie o equipamento e acesse as opções avançadas de boot:
# make install
Processo finalizado. Vamos testar?
Reinicie o equipamento e acesse as opções avançadas de boot:
Você verá o seu Kernel antigo e o Kernel novo (default):
Depois de iniciar o Linux, é possível verificar se o Kernel foi compilado com o seguinte comando:
# uname -a
# uname -a
INFORMAÇÕES EXTRAS SOBRE A COMPILAÇÃO DE KERNEL
Existe outra forma de compilar o Kernel?
Existe outra variação para compilar e instalar o Kernel utilizando o make bzImage. A diferença é que você terá que criar o arquivo Initrd manualmente e depois adicionar uma entrada de boot no Grub. Aqui, temos um exemplo no blog do Diolinux.
Existe outra variação para compilar e instalar o Kernel utilizando o make bzImage. A diferença é que você terá que criar o arquivo Initrd manualmente e depois adicionar uma entrada de boot no Grub. Aqui, temos um exemplo no blog do Diolinux.
COMO DESINSTALAR O KERNEL
Se você quiser desinstalar o Kernel, você pode simplesmente deletar todos os arquivos que possuem a extensão do Kernel 4.12 dentro do diretório /boot. Depois disso, deletar toda a pasta de módulos deste Kernel em /lib/modules.
E, para finalizar, rodar o comando abaixo novamente para reescrever o menu de boot:
# update-grub
E, para finalizar, rodar o comando abaixo novamente para reescrever o menu de boot:
# update-grub
QUAL A DIFERENÇA ENTRE MAKE MRPROPER E MAKE CLEAN
Caso você queira iniciar o procedimento de compilação do zero, é interessante que você zere os arquivos e módulos já compilados (extensões ".o" e ".ko").
Para remover somente os arquivos de objeto (extensões ".o" e ".ko") você pode rodar o comando:
# make clean
Se você quiser remover todos os objetos e, ainda mais, remover o ".config", arquivos de dependência e todo o resto que o make menuconfig (ou make config) cria, você pode utilizar o comando:
# make mrproper
Para remover somente os arquivos de objeto (extensões ".o" e ".ko") você pode rodar o comando:
# make clean
Se você quiser remover todos os objetos e, ainda mais, remover o ".config", arquivos de dependência e todo o resto que o make menuconfig (ou make config) cria, você pode utilizar o comando:
# make mrproper
0 Comentários