Como instalar headers (cabeçalhos) do kernel do Linux no Debian em 6 Passos?
Antes de tudo, vamos definir em poucas palavras o que é o kernel.
No contexto computacional o kernel é o núcleo de um sistema operacional. É a parte central que tem o papel de gerenciar os recursos do computador: dispositivos de entrada e saída, memória etc., e atua como intermediário entre o hardware e o software.
Para além de intermediar a comunicação entre os recursos físicos e não físicos, o kernel executa tarefas de baixo nível e fornece para outros sistemas os serviços essenciais para o seu funcionamento correto.
Sendo um gerenciador dos recursos computacionais, o kernel é modular e pode ser configurável, permitindo que os usuários adaptam o sistema operacional de acordo com as suas necessidades. Nesta ideia de ser gerenciável, em alguns sistemas operacionais GNU/Linux os cabeçalhos do kernel Linux vem por padrão sem configuração, deixando a critério do usuário efetuar a sua instalação e/ou configuração.
Os cabeçalhos do kernel contêm o arquivo de cabeçalho escrito em C para o kernel do Linux, oferece diversas funcionalidades e definições de estrutura necessárias para a compilação de qualquer código fonte que interaja com o kernel, como drivers de dispositivos ou módulos do kernel e outros programas do usuário.
Podemos ainda dizer que, os cabeçalhos do kernel do Linux são componentes frequentemente usados para compilar drivers e módulos carregáveis que adicionam suporte ao kernel. É de salientar que os cabeçalhos do kernel são parte do próprio kernel, embora sejam distribuídos de forma separada.
Um ponto importante e crítico é que o pacote de cabeçalhos do kernel dever corresponder exatamente à versão atual do sistema instalado.
Resumidamente, podemos dizer que, o kernel do Linux é o coração dos sistemas operacionais GNU/Linux, é o responsável por gerenciar e controlar todos os recursos do computador, além de fornecer a base para a execução dos programas instalados no computador, tanto utilizando um ambiente gráfico ou uma linha de comandos.
Após esta breve introdução do kernel, vamos agora detalhar o passo a passo de como instalamos os cabeçalhos (headers) do kernel do Linux. Neste tutorial demonstraremos cada etapa utilizando o GNU/Linux Debian 12.
Passo 1: Após efetuar o login no Debian, vamos abrir o terminal (interface de linha de comando que permite o usuário interagir com o sistema operacional executando comandos) e executar o comando su para acessarmos o terminal com usuário admin (su = "substitute user" ou "switch user").
Após pressionar a tecla Enter, devemos inserir a senha do usuário root e validar a inserção pressionando a tecla Enter.
Observação:
- O símbolo “$” por padrão nos indica o login no terminal de um usuário comum
- O símbolo “#” por padrão no indica o login no terminal de um usuário (root) admin
- Sempre que for necessário, executar o comando “clear” para limpar o terminal após execução de um comando.
Passo 2: Em seguida, verificamos a versão do kernel já instalado e o pacote de cabeçalho correspondente à versão do kernel:
uname -r
Observação:
- O comando "uname -r" retorna apenas a versão do kernel, sem informações adicionais.
- O comando "uname -r" é muito útil para verificarmos de forma rápida qual é a versão do kernel que está sendo utilizado pelo sistema, o que nos possibilita uma rápida resolução de problemas que requerem uma versão específica do kernel.
O sistema nos mostra a versão 6.1.0-9-amd64, porém neste tutorial seguiremos instalando a versão 6.1.0-10-amd64.
apt search linux-headers-$(uname -r)
Podemos ainda efetuar a verificação padrão do cabeçalho do kernel, que ficam na pasta do Debian /usr/src, executando o comando “ls -l /usr/src/linux-headers-$(uname -r)”
O erro acima, nos mostra que nenhum cabeçalho do kernel foi instalado no sistema.
Observação:
- Nós utilizamos o comando ls -l /usr/src/linux-headers-$(uname -r) para pesquisarmos e listarmos os pacotes dos cabeçalhos do kernel do linux que correspondem à versão atual do kernel que está sendo executado pelo sistema.
- O comando (uname -r) é substituído pela versão do kernel atual e é utilizado dentro de uma substituição do comando ($(...)). Desta forma, a expressão “$(uname -r)” é substituída pela versão do kernel atual antes de executar o comando “apt search”.
Passo 3: Vamos executar o comando de atualização da lista dos pacotes disponíveis no nosso repositório espelhado, utilizando o comando: apt update.
Passo 4: Vamos agora atualizar o nosso sistema, executando o comando apt upgrade. Pressionamos a tecla Enter para que todas as atualizações necessárias sejam feitas.
Aguardemos a finalização da atualização dos pacotes.
Passo 5: Após a “atualização” de todos os pacotes existentes no nosso sistema, vamos prosseguir com a instalação do cabeçalho do kernel do Linux, executando o comando: apt install linux-headers-6.1.0-10-amd64.
Nota:
- Para a instalação da versão mostrada pelo sistema, sempre devemos utilizar o comando: apt install linux-headers-$(uname -r).
- Se desejar instalar uma versão diferente, basta pesquisar pelas versões disponíveis (apt search linux-headers).
Passo 6: Aguardemos a finalização da instalação do kernel do Linux antes de seguirmos com a compilação de qualquer programa.
Observação:
- Em alguns casos, é necessário a instalação dos pacotes gcc, g++, cmake, make. Estes pacotes complementam o processo de compilação de vários programas.
- O gcc é uma ferramenta que todos os desenvolvedores de softwares precisam, pois permite a compilação de programas escritos em diversas linguagens como C, C++, Objective-C, Ada, entre outras linguagens de baixo nível.
- O gcc é um compilador de código aberto.
- A compilação é o processo de transformar um código fonte (escrito em linguagem de alto nível – linguagem compreensível pelo homem) em programas executáveis, ou seja, em baixo nível (linguagem compreensível apenas por máquinas).
A instalação do kernel do Linux finalizado.
Conclusão:
- O Kernel é o núcleo do sistema operacional, facilita a comunicação entre os recursos físicos e lógicos de um computador.
- O Kernel Linux é configurável e adaptável às necessidades do usuário.
- Podemos efetuar a instalação de qualquer versão do kernel que desejarmos. Recomendável a versão estável para ambientes críticos (servidores por exemplo).
- Precisamos dos cabeçalhos do kernel do Linux apenas quando sabemos que vamos precisar compilar uma aplicação após o seu desenvolvimento.
- Precisamos também do cabeçalho do kernel do Linux para compilar os módulos do próprio kernel.
- Em alguns casos a instalação de compiladores como gcc é importante para complementar as ferramentas necessárias para o processo de compilação.
Caso lhe ajudemos de alguma forma, agrademos o compartilhamento deste post com os seus amigos, seus conhecidos, nas suas redes sociais etc. Para fomentar o nosso trabalho e nos encorajar a cada vez mais produzir conteúdo de qualidade, que visam a disseminação do conhecimento.
Até mais!!!
Seja Tech!!!