Personal tools
You are here: Home Dicas e Tutoriais Recompilando o kernel e Atualizando seu sistema FreeBSD
Document Actions

Recompilando o kernel e Atualizando seu sistema FreeBSD

by Pablo Costa — last modified 13-06-2007 02:29 PM http://creativecommons.org/licenses/by/2.0/br/deed.pt

Esse tutorial foi baseado no site: http://freebsddiary.org/makeworld-script.php

Entre no freebsd como root e pegue o arquivo:

        fetch http://www.cbsp.com.br/pablo/freebsd/makeworld.tgz

descompacte o arquivo no home do root:

        tar xvzf makeworld.tgz -C /root

Com isto você terá o diretório:

        /root/make

e alguns scripts dentro...

Antes de explora-los seria interessante instalar o cvsup que é o programa responsável pela atualização dos fontes:

        cd /usr/ports/net/cvsup-without-gui

        make
        make install

Para procurar por um programa no ports faca assim::

        cd /usr/ports
        make search key="programa"

Ou faca como eu::

        mkdir /root/bin

        vi /root/bin/busca

        ---------------------
        #!/bin/sh
        cd /usr/ports
        make search key="$1"
        cd -
        ----------------------

Dai para procurar qualquer coisa é só executar busca

Coloque o /root/bin no path para isto !!!

Continuando..

Agora que o cvsup esta instalado entre no diretorio:

        cd /root/make

Como se trata de uma primeira instalação sua, eu não vou ensinar somente como se compila o kernel, mas também como se atualiza todo o sistema !!!

Da uma olhada geral no arquivo Makefile

Ele é dividido em varias seções:

update, ports, build, install, kernel

update: Atualiza os fontes do seu freebsd (inclusive o kernel) ports: Atualiza a base e ports em /usr/ports build: compila tudo que você pegou com o make update install: Adivinha? kernel: Compila e instala o kernel baseado num arquivo de definicoes

Os arquivos que ficam em /root/make/etc servem de configuração para o cvsup. É lá que o cvsup lê de onde deve pegar os fontes

Por exemplo:

        cd /root/make/etc

ports-supfile: Regras para atualizar os ports refuse: Pacotes que você não quer secure-supfile: fontes de materia segurança related standard-supfile: Atualização geral do sistema

Dentro destes arquivos tem o parametro::

        *default host=cvsup.br.FreeBSD.org

Se você tiver problemas com o mirror brasileiro use::

        *default host=cvsup.FreeBSD.org

Uma Dica:

O parametro: *default tag=RELENG_4

diz a versão que você esta usando. Você pode por *default tag=. para representar a versão corrente ou *default tag=RELENG_5 para o testing :-)

Então vamos la !!!:

        cd ~/make
        make update (humm isto demora)
        make build (hummmmm isto também demora pacas)

O próximo passo seria make kernel

Mas antes disto precisamos comfigurar como queremos este kernel !!!

Se você olhar no topo do arquivo /root/make/Makefile verá:

MYKERNEL=BILBO

Por que BILBO??? Eu gosto do Senhor dos anéis oras :-)

Mas na realidade o que ele espera encontrar com isto é um arquivo com as definicoes do kernel em

/usr/src/sys/i386/conf/BILBO

Mas você vai fazer o seguinte:

Edite o arquivo Makefile e coloque o nome que você quiser

MYKERNEL=FUNNY_KERNEL_NAME

Lembre-se quando você executar uname -a vai aparecer !!:

        [root@bilbo root]# uname -a
        FreeBSD bilbo.casablanca.intranet 4.5-STABLE FreeBSD 4.5-STABLE
        #1: Thu Feb 21 21:20:52 BRT 2002

Portanto coloque um nome funny :-) Eu costumo por o mesmo nome da maquina !! continuando...:

        cd /usr/src/sys/i386/conf/
        cp GENERIC FUNNY_KERNEL_NAME

O próximo passo é editar este arquivo e colocar nele tudo que te interessa!!

Aconselho que de uma olhada nesta página :

        vi FUNNY_KERNEL_NAME

Configure o "ident":

        ident FUNNY_KERNEL_NAME

As opções que você precisa para habilitar o pppoe você pode por no final do arquivo...

veja

http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/pppoe.html :

        ------------------------------------
        options NETGRAPH #netgraph(4) system
        options NETGRAPH_ASYNC
        options NETGRAPH_BPF
        options NETGRAPH_CISCO
        options NETGRAPH_ECHO
        options NETGRAPH_FRAME_RELAY
        options NETGRAPH_HOLE
        options NETGRAPH_IFACE
        options NETGRAPH_KSOCKET
        options NETGRAPH_LMI
        options NETGRAPH_MPPC_ENCRYPTION
        options NETGRAPH_PPP
        options NETGRAPH_PPPOE
        options NETGRAPH_PPTPGRE
        options NETGRAPH_RFC1490
        options NETGRAPH_SOCKET
        options NETGRAPH_TEE
        options NETGRAPH_TTY
        options NETGRAPH_UI
        options NETGRAPH_VJC
        -----------------------------------

Veja por exemplo a configuração de kernel do meu firewall:

http://www.cbsp.com.br/pablo/freebsd/GANDALF

Ufa !! podemos voltar a diversão... Depois de ter o config do kernel devidamente configurado:

        make kernel

E como dizem por ai vai tomar um cafezinho...

Quando terminar de compilar de um reboot na sua maquina !!

Se tudo der certo !! volte novamente ao diretorio /root/make e::

        make install

E depois uma coisa bem chatinha que é o make merge !!!:

        make merge

Ele vai juntar os arquivos de configuracoes novos aos atuais, Como se trata de uma instalação nova eu quase sempre mando instalar a nova versão...só tomando cuidado quando ele pergunta se quer reinstalar o /etc/passwd e ou /etc/groups porque senão ele zera seus usuários...

Enfim tenha o saco de ler cada pergunta que ele te faz e responder de acordo com a lógica :-)

Terminado o enfadonho make merge

Reboot novamente !!!

Execute o uname -a e veja com seus próprios olhos !! YESSSS sistema novo e up2date !!!

Nos fazemos isto com servidores remotos nos USA desde a versão 3.0 do Freebsd !! e funciona legal !! hoje estamos 4.5-stable :-)

Uma palavra final:

Atualize os ports também para a ultima versão::

        cd /root/make
        make ports

De tempos em tempos é bom dar uma atualizada nos ports...

E depois para ver o que precisa atualizar no seu sistema execute::

        pkg_version -c


Esse tutorial lhe foi útil? Economizou tempo ou dinheiro? Que tal colaborar com o Cybershark? Qualquer dólar ajuda :) MUITO OBRIGADO!

Anúncios
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: