On Apr 3, 2011, at 10:10 PM, ricardomos...@yahoo.com.br wrote:
> Boa noite pessoal,
> 
> Estou com uma duvida quanto ao processo de descoberta de hardware no momento 
> em que o kernel eh carregado para a memoria.
> Duvidas:
> 1) Digamos que o kernel que esta sendo carregado para a memoria eh o GENERIC. 
> Ele vai iniciar a descoberta de dispositivos (device.probing). Caso o meu 
> kernel generico nao esteja possua suporte para uma determinada placa de rede, 
> ele simplesmente nao vai mostrar a placa ou mesmo nao suportando a placa ele 
> mostraria a placa (na saida do comando dmesg) embora nao ligaria nenhum 
> device pra mesma assim como tambem nao carregaria o mudulo de controle pra 
> mesma?
> Queria saber se a palavra nao suportar significa que ele nem mesmo mostra o 
> dispositivo na saida do dmesg ou ao menos mostra mas nao carrega o seu drive 
> (jah que ele nao suporta).
> 
> 2) Sei que posso passar valores de variaveis (device.hints) com o comando 
> set.Sei tambem que posso devinir esses valores no "/boot/device.hints".Mas me 
> perco quando falam que o "/boot/loader.conf" pode ser usado para definir 
> variaveis.
> Qual seria entao a grande diferenca entre os dois jah que eu posso definir 
> variaveis nos dois arquivos?


1) Depende de onde sua placa esta conectada. Existem vários tipos de bus para 
conexão de dispositivos, sendo que alguns fazem a auto numeração dos 
dispositivos no bus (PCI, PCIe, USB, ISA com PnP) enquanto em outros casos isso 
não é possível (geralmente dispositivos embarcados).

Nesses casos (de bus auto numerado) você consegue listar os dispositivos no bus 
independente do kernel ter ou não um driver para o dispositivo (pciconf -lv, 
usbconfig [dump_device_desc|dump_info|show_ifdrv]).

Quando um dispositivo esta em um bus sem auto numeração, a única forma do 
kernel saber que o dispositivo esta lá, no bus X, na irq Y e utilizando MMIO no 
endereço Z é através do arquivo de hints (ou mais recentemente através de FDT - 
somente disponível na plataforma ARM).

2) O arquivo de hints esta ligado ao kernel somente (como o próprio nome diz: 
device.hints) e não pode ser utilizado para setar o valor de 'sysctls'.

A confusão vem do uso do bootloader do FreeBSD (/boot/loader), que fornece a 
interface para que você configure tanto device hints quanto variáveis de 
sistema (sysctls e parametros/argumentos para o kernel).

Toda configuração feita em /boot/loader.conf é carregada pelo bootloader no 
momento do boot, que 'prepara o terreno'  e carrega o kernel na memória (também 
é possível aproveitar e carregar módulos do kernel através do loader).

Então o correto é fazer as configurações no /boot/loader.conf (e deixar o 
device.hints apenas para configuração de dispositivos que realmente não 
funcionam de outra forma).

Att.,
Luiz


-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

Responder a