preload

jul 10

Hi,

Este artigo tem como objetivo mostrar como instalar o fonte (source) do kernel do freebsd, editá-lo e recompilar o mesmo.

Primeiramente, caso na instalação do freebsd você não tenha instalado o fonte (source), os passos são os seguintes:

~#
~# sysinstall

1. Selecione “Configure”…

2. “Distributions”…

3. Marque “src” (com a tecla “espaço”)…

4. Marque “sys” (ô kernel! :P)…

5. “OK”…

Depois de instalado o kernel, vamos fazer um backup do arquivo de configuração do mesmo e editá-lo…

~#
~# cd /usr/src/sys/i386/conf
~# cp GENERIC JUPITER

“JUPITER” é o nome do servidor (neste caso…), lembre-se de colocar o nome do arquivo de configuração em maiúsculo.

Agora, edite seu arquivo de configuração (não vou me aprofundar à explicação do arquivo, o mesmo é bem comentado e simples de entender…):

~#
~# vi JUPITER

Como você pode ver, o arquivo de configuração é simples de ser entendido. Ou seja, os drivers/módulos que não tem interesse é só comentar com um #

Clique aqui e baixe um exemplo de um arquivo de configuração. obs: este arquivo está praticamente todo comentado, sobrando somente os drivers/módulos básicos para uso do freebsd, aconselho usá-lo somente como consulta.

Depois de editado seu arquivo de configuração, vamos compilar o kernel. Existe 2 formas de recompilar: as versões mais antigas do freebsd usavam o modo “padrão” de compilação por etapas. Já as novas versões (acima de 6.x ~ 7.x) usam um novo modo de compilação por parâmetro (bem mais prático, use o tipo baseado na sua versão do freebsd), vejamos:

[x] Modo “antigo”…

~#
~# /usr/sbin/config JUPITER
~# cd ../compile/JUPITER
~# make depend
~# make
(tome um café… rsrs)
~# make install

Depois de todo o processo, é só reiniciar o S.O.:

~#
~# shutdown -r now

[x] “Novo” modo…

~#
~# cd /usr/src
~# make buildkernel KERNCONF=JUPITER
(tome um café… rsrs)
~# make installkernel KERNCONF=JUPITER

Como senpre, depois do processo…

~#
~# shutdown -r now

Pronto! Seu kernel foi instalado, editado a suas necessidades e recompilado. Espero ter ajudado. ;)

Deixe uma resposta