8.1. | Eu gostaria de configurar meu
kernel. É
difícil? |
| De modo algum! Veja a seção
"kernel config" do Manual do FreeBSD. Nota: Recomenda-se que você faça uma
cópia datada do seu kernel
na forma /kernel.AAMMDD e o
diretório /modules para
/modules.AAMMDD depois que estiver
tudo funcionando. Desta forma se você fizer
alguma bobagem quando mexer com a sua
configuração, pode-se iniciar aquele
kernel ao invés de
ter que desfazer tudo novamente no
kernel.GENERIC . Isso é
particularmente importante se você estiver dando
boot em um equipamento não suportado pelo
kernel genérico
(GENERIC ). |
8.2. | A compilação do meu
kernel falha porque
está faltando o _hw_float . Como
eu resolvo o problema? |
| Deixa eu adivinhar. Você removeu o
npx0 (veja npx(4)) do
arquivo de configuração do
kernel porque você
não possui um co-processador aritmético,
certo? Errado! :-) O npx0
é OBRIGATÓRIO. Mesmo
que você não tenha um co-processador
aritmético, o dispositivo
npx0 deve
ser incluido. |
8.3. | Por que meu kernel
é tão grande (cerca de 10MB)? |
| Provavelmente, seu
kernel foi compilado em
modo de depuração
(debug ). Um
kernel construído em
modo de depuração (debug )
contêm muitos símbolos usados para
depuração que aumentam muito o seu tamanho.
Note que se você está executando um FreeBSD
3.0 ou superior, terá pouca, ou nenhuma, perda de
performance por usar um
kernel em modo de
depuração (debug ), sendo
útil ter um para o caso de pane no sistema.
Entretanto, se você possui pouco espaço
em disco, ou simplesmente não quer executar um
kernel para
depuração, certifique-se que os dois itens
abaixo sejam verdadeiros: Ambas as situações acima fazem com que o
kernel seja compilado no
modo de depuração
(debug ). Tão logo você
tenha certeza que não se enquadra naqueles itens, o
kernel poderá ser
compilado normalmente e notadamente diminuirá o
tamanho; a maioria dos
kernels tendem a ficar em
torno de 1.5MB a 2MB. |
8.4. | Porque estão ocorrendo conflitos de
interrupção com portas multi-seriais? |
| Quando se compila um
kernel com suporte a porta
multi-serial, ele avisa que somente a primeira porta
é testada e as demais são ignoradas devido a
conflitos de interrupção. Como eu conserto
isto? O problema, neste caso, é que o FreeBSD possui
código para evitar que o
kernel fique com lixo
(trashed kernel) por causa
de conflitos de hardware ou software. A maneira de
corrigir isto é excluindo as
definiçõs de IRQ em todas as portas exceto
uma. Veja o exemplo: #
# Multiport high-speed serial line - 16550 UARTS
#
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr |
8.5. | Porque todo kernel que
eu tento construir falha na compilação,
mesmo o GENERIC? |
| Existem várias causas possíveis para
esse problema. Elas são, sem uma ordem particular:
Você não está usando os
comandos make buildkernel e
make installkernel , e seus fontes
estão estruturados de forma diferente daqueles
usados para construir o sistema atual (por exemplo,
está sendo um 4.3-RELEASE em um sistema
4.0-RELEASE). Se estiver sendo feita uma
atualização, leia o arquivo
/usr/src/UPDATING , prestando
atenção ao final da seção
“COMMON ITEMS”. Você está usando os comandos
make buildkernel e make
installkernel , mas não garantiu a
correta finalização do comando
make buildworld . O make
buildkernel depende de arquivos gerados
pelo make buildworld para fazer seu
trabalho corretamente. Mesmo que você esteja tentando construir um
FreeBSD-STABLE, é
possível que os fontes tenham sido pegos quando
estavam sendo modificados, ou inconsistentes por
alguma outra razão; somente os releases
são absolutamente garantidos de serem
compilados, embora o FreeBSD-STABLE possa ser
compilado com sucesso na grande maioria das vezes.
Caso já não tenha conseguido, tente
buscar os fontes novamente e veja se o problema
já não foi resolvido. Tente um servidor
diferente, para o caso daquele que está sendo
usado estar com problemas.
|