Como verificar se uma opção específica de compilação do kernel está habilitada no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como determinar se uma opção específica de compilação do kernel está habilitada no seu sistema Linux. Exploraremos três métodos comuns para alcançar este objetivo.

Primeiramente, você usará o comando zcat para inspecionar o arquivo de configuração do kernel compactado localizado em /proc/config.gz, que contém as opções usadas durante a compilação do kernel. Em seguida, você aprenderá como verificar essas opções examinando os arquivos de configuração encontrados no diretório /boot. Por fim, você descobrirá como inspecionar os logs de compilação do kernel usando o comando dmesg para obter mais informações sobre os recursos habilitados. Ao final deste laboratório, você estará equipado com as habilidades necessárias para verificar efetivamente as opções de compilação do kernel no seu sistema Linux.

Verificar opções de compilação com zcat /proc/config.gz

Nesta etapa, você aprenderá como inspecionar as opções de configuração do kernel que foram usadas quando seu kernel Linux foi compilado. Essa informação é armazenada em um arquivo compactado dentro do sistema de arquivos /proc.

O sistema de arquivos /proc é um sistema de arquivos virtual que fornece informações sobre processos e outras informações do sistema. Ele não contém arquivos reais no disco, mas sim fornece uma visão das estruturas de dados internas do kernel.

O arquivo que nos interessa é /proc/config.gz. Este arquivo contém as opções de configuração do kernel em um formato compactado. Para visualizar seu conteúdo, precisamos usar um comando que possa descompactar e exibir o arquivo.

O comando zcat é perfeito para isso. Ele é usado para descompactar e exibir o conteúdo de arquivos gzipped.

Abra seu terminal, caso ainda não esteja aberto. Você pode encontrar o ícone do Xfce Terminal no lado esquerdo da sua área de trabalho.

Agora, digite o seguinte comando e pressione Enter:

zcat /proc/config.gz

Este comando irá descompactar o arquivo /proc/config.gz e imprimir seu conteúdo no seu terminal. Você verá uma longa lista de opções de configuração, cada uma começando com CONFIG_. Essas opções determinam quais recursos e drivers são incluídos no seu kernel.

Por exemplo, você pode ver linhas como:

CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
## CONFIG_NET_KEY is not set
CONFIG_INET=y
  • CONFIG_NET=y significa que o suporte de rede está habilitado.
  • CONFIG_NET_KEY is not set significa que um recurso específico de rede não está incluído.

Percorrer essa saída pode ser avassalador. Você pode usar o comando less para visualizar a saída página por página. Para fazer isso, usaremos um pipe (|). O pipe envia a saída de um comando como entrada para outro comando.

Digite o seguinte comando e pressione Enter:

zcat /proc/config.gz | less

Agora você pode usar as setas para cima e para baixo para rolar e pressionar q para sair do less.

Este comando é muito útil para entender exatamente como seu kernel foi construído e quais capacidades ele possui.

Clique em Continuar para prosseguir para a próxima etapa.

Verificar opções em /boot/config-*

Na etapa anterior, você visualizou a configuração do kernel a partir de /proc/config.gz. Outro local onde os arquivos de configuração do kernel são frequentemente armazenados é no diretório /boot.

O diretório /boot contém arquivos necessários para inicializar o sistema operacional, incluindo o próprio kernel e, muitas vezes, o arquivo de configuração usado para construí-lo.

O arquivo de configuração em /boot normalmente é nomeado config- seguido pela versão do kernel. Como a versão do kernel pode variar, podemos usar um curinga (*) para corresponder ao nome do arquivo.

Primeiro, vamos listar os arquivos no diretório /boot para ver se um arquivo de configuração existe lá. Use o comando ls:

ls /boot/

Você deve ver uma lista de arquivos, incluindo um que começa com config- e é seguido por um número de versão (por exemplo, config-5.15.0-105-generic).

Agora, vamos visualizar o conteúdo deste arquivo. Podemos usar o comando cat para exibir o conteúdo do arquivo. Lembre-se de substituir config-* pelo nome real do arquivo que você encontrou na saída ls anterior, ou use o curinga. Usar o curinga é mais geral.

Digite o seguinte comando e pressione Enter:

cat /boot/config-*

Isso exibirá as opções de configuração do kernel do arquivo no diretório /boot. Você notará que o conteúdo é muito semelhante, senão idêntico, à saída que você viu de zcat /proc/config.gz. Isso ocorre porque /proc/config.gz é frequentemente uma cópia compactada do arquivo de configuração encontrado em /boot.

Usar cat no arquivo em /boot é outra maneira de acessar a configuração do kernel, especialmente se /proc/config.gz não estiver disponível ou se você quiser ver a versão descompactada diretamente.

Novamente, você pode direcionar a saída para less para facilitar a visualização:

cat /boot/config-* | less

Pressione q para sair do less.

Entender onde encontrar a configuração do kernel é importante para solucionar problemas e para a administração avançada do sistema.

Clique em Continuar para prosseguir.

Inspecionar logs de compilação em dmesg

Nas etapas anteriores, você aprendeu como visualizar a configuração do kernel. Agora, vamos analisar o buffer de mensagens do kernel, que contém mensagens produzidas pelo kernel durante a inicialização e o tempo de execução. Isso pode, às vezes, incluir informações relacionadas à compilação do kernel ou aos módulos que estão sendo carregados.

O comando dmesg é usado para examinar ou controlar o buffer circular (ring buffer) do kernel. O buffer circular armazena mensagens do kernel, que são frequentemente úteis para depuração e compreensão de eventos do sistema.

Digite o seguinte comando em seu terminal e pressione Enter:

dmesg

Isso imprimirá uma grande quantidade de saída no seu terminal. Estas são mensagens do kernel, incluindo informações sobre detecção de hardware, drivers de dispositivos sendo carregados e outros eventos do sistema que ocorreram desde que o sistema foi inicializado.

Para encontrar informações relacionadas à versão do kernel ou compilação, você pode direcionar a saída de dmesg para grep. grep é um utilitário de linha de comando poderoso para pesquisar conjuntos de dados de texto simples em busca de linhas que correspondam a uma expressão regular.

Vamos pesquisar linhas contendo a palavra "Linux" para ver as informações da versão do kernel.

dmesg | grep "Linux"

Você deve ver uma saída semelhante a esta, mostrando a versão do kernel:

[    0.000000] Linux version 5.15.0-105-generic (...)

Você também pode pesquisar outras palavras-chave que possam estar relacionadas a módulos do kernel ou opções de compilação, embora os logs de compilação diretos geralmente não sejam encontrados aqui. dmesg é mais sobre mensagens do kernel em tempo de execução.

Por exemplo, você pode pesquisar mensagens relacionadas a um driver ou subsistema específico, se souber seu nome.

Novamente, usar less com dmesg é útil para navegar na saída:

dmesg | less

Pressione q para sair do less.

Embora dmesg não mostre diretamente o processo de compilação do kernel em si, ele fornece informações valiosas sobre o kernel que está sendo executado no momento, incluindo sua versão e os módulos carregados, que são determinados pela configuração de compilação que você visualizou nas etapas anteriores.

Clique em Continuar para concluir este laboratório.

Resumo

Neste laboratório, você aprendeu como verificar se uma opção específica de compilação do kernel está habilitada no Linux. Você explorou o sistema de arquivos /proc, especificamente o arquivo /proc/config.gz, que armazena as opções de configuração do kernel usadas durante a compilação. Você utilizou o comando zcat para descompactar e exibir o conteúdo deste arquivo e aprendeu como direcionar a saída para less para facilitar a visualização. Este processo permite que você inspecione as várias opções CONFIG_ e determine quais recursos e drivers estão incluídos no seu kernel em execução.