8.4. O Arquivo de Configuração

Para criar um arquivo de configuração do kernel personalizado e compilar um kernel personalizado, a árvore de código-fonte completa do FreeBSD deve ser instalada primeira.

Se o /usr/src/ não existir ou estiver vazio, o código-fonte não foi instalado. O fonte pode ser instalado usando o Subversion e as instruções em Seção A.3, “Usando o Subversion.

Depois que o código-fonte for instalado, revise o conteúdo do /usr/src/sys. Este diretório contém vários subdiretórios, incluindo aqueles que representam as seguintes arquiteturas suportadas: amd64, i386, ia64, powerpc e sparc64. Tudo dentro do diretório de uma arquitetura em particular lida apenas com essa arquitetura e o restante do código é código independente de máquina comum a todas as plataformas. Cada arquitetura suportada tem um subdiretório conf que contém o arquivo de configuração do kernel GENERIC para essa arquitetura.

Não faça edições no GENERIC. Em vez disso, copie o arquivo para um nome diferente e faça edições na cópia. A convenção é usar um nome do host com todas as letras maiúsculas. Ao manter várias máquinas FreeBSD com hardware diferente, é uma boa idéia nomeá-lo com o nome do host da máquina. Este exemplo cria uma cópia, denominada MYKERNEL, do arquivo de configuração GENERIC para a arquitetura amd64:

# cd /usr/src/sys/amd64/conf
# cp GENERIC MYKERNEL

O MYKERNEL agora pode ser personalizado com qualquer editor de texto ASCII. O editor padrão é o vi, embora um editor mais fácil para iniciantes, chamado ee, também seja instalado com o FreeBSD.

O formato do arquivo de configuração do kernel é simples. Cada linha contém uma palavra-chave que representa um dispositivo ou subsistema, um argumento e uma breve descrição. Qualquer texto depois de um # é considerado um comentário e ignorado. Para remover o suporte do kernel para um dispositivo ou subsistema, coloque um # no início da linha que representa esse dispositivo ou subsistema. Não adicione ou remova um # para qualquer linha que você não entenda.

Atenção:

É fácil remover o suporte para um dispositivo ou opção e acabar com um kernel quebrado. Por exemplo, se o driver ata(4) for removido do arquivo de configuração do kernel, um sistema usando os drivers de disco ATA pode não inicializar. Em caso de dúvida, basta deixar o suporte no kernel.

Além das breves descrições fornecidas neste arquivo, descrições adicionais estão contidas no arquivo NOTES, o qual pode ser encontrado no mesmo diretório que o GENERIC para aquela arquitetura. Para opções independentes de arquitetura, consulte /usr/src/sys/conf/NOTES.

Dica:

Quando terminar de personalizar o arquivo de configuração do kernel, salve uma cópia de backup em um local fora do /usr/src.

Como alternativa, mantenha o arquivo de configuração do kernel em outro lugar e crie um link simbólico para o arquivo:

# cd /usr/src/sys/amd64/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL

Uma diretiva include está disponível para uso em arquivos de configuração. Isso permite que outro arquivo de configuração seja incluído no arquivo atual, facilitando a manutenção de pequenas alterações em relação a um arquivo existente. Se apenas um pequeno número de opções ou drivers adicionais forem necessários, isso permitirá que um delta seja mantido com relação ao GENERIC, conforme mostrado neste exemplo:

include GENERIC
ident MYKERNEL

options         IPFIREWALL
options         DUMMYNET
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPDIVER

Usando este método, o arquivo de configuração local expressa as diferenças locais em relação ao kernel GENERIC. Conforme as atualizações são realizadas, os novos recursos adicionados ao GENERIC também serão adicionados ao kernel local, a menos que sejam especificamente evitados usando nooptions ou nodevice. Uma lista abrangente de diretivas de configuração e suas descrições pode ser encontrada em config(5).

Nota:

Para compilar um arquivo que contém todas as opções disponíveis, execute o seguinte comando como root:

# cd /usr/src/sys/arch/conf && make LINT

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.