8.4. O Arquivo de Configuração
Anterior | Capítulo 8. Configurando o kernel do FreeBSD | Próxima

## 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

Anterior | Acima | Próxima
8.3. Encontrando o hardware do sistema | Principal | 8.5. Criando e Instalando um Kernel Customizado

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>.