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
, 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
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.MYKERNEL
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.
É 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
.
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).
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>.