A maioria dos seus dispositivos requer uma configuração, você deve especificar o IRQ, endereço de E/S, o endereço DMA, etc. Antigamente esta configuração deveria ser feita inclusive através de jumpers na placa mãe do seu computador. Hoje, graças a evolução tecnológica, a grande maioria das opções pode ser configurada por programas específicos e é isto que veremos a seguir.
Configurando dispositivos ISA
Os dispositivos ISA requeriam o jumpeamento para o funcionamento das placas. Por exemplo você deveria jumpear para selecionar o IRQ usado pelo dispositivo e um segundo jumper para ajustar seu endereço de E/S.
Estas configurações eram muito específicas e dependiam da documentação da placa mãe. Em 1990 um novo método para configuração de dispositivos ISA surgiu o Plug and Play (PnP, conecte-e-jogue ou conecte-e-use).
A idéia era criar placas ISA sem jumpeamento que pudessem ser configuradas pelos drivers do sistema operacional. Para fazê-lo por meio de programas há duas maneiras de fazê-lo: O suporte interno no kernel 2.4.x e kernels mais novos usam as utilidades ISA PnP (pnpdump e isapnp), obrigatórias nos mais velhos e opcionais nos mais novos.
Pnpdump retorna a configuração corrente do dispositivo ISA. Para usá-lo:
# pnpdump > /etc/isapnp.conf
O programa varrerá os endereços de E/S a procura de dispositivos ISA no barramento correspondente e colocará sua configuração no arquivo /etc/isapnp.conf. As suas linhas estarão todas comentadas, para ativar uma opção basta descomentá-la e configurá-lo de acordo com sua vontade. Uma vez que você tenha terminado a configuração do dispositivo digite:
# isapnp /etc/isapnp.conf
Desta forma sua placa estará ativa e funcionando segundo as configurações do arquivo /etc/isapnp.conf.
Configurando dispositivos PCI
O barramento PCI foi construído tendo o estilo PnP de configuração em mente, logo a grande maioria dos dispositivos PCI se configuram automaticamente sem necessidade da interação do usuário. Isto é, a configuração de dispositivos PCI por PnP é a regra, e não a exceção como nos dispositivos ISA.
O kernel do
Linux tem 4 opções para determinar como os dispositivos PCI são detectados(Bus Options, PCI Access Mode):
- BIOS, usa a BIOS para realizar a tarefa;
- MMConfig, que usa este protocolo para detectar dispositivos PCI;
- Direct, que usa um sistema de detecção direta específica para o Linux;
- Any, tenta usar o protocolo MMConfig depois o Direct e por fim a detecção BIOS.
Na maioria dos casos Any é a opção mais indicada, a maior parte dos BIOS tem opções PCI que mudam a maneira com que os recursos PCI são alocados. E pode ser bom verificar tais configurações caso você tenha algum problema.
O comando setpci pode ser usado para procurar automaticamente por dispositivos PCI e suas configurações, assim como para alterá-las. Esta ferramenta pode ser usada para configurar o IRQ, endereço E/S e DMA.
# setpci -s 01:00.0 [opções]
Através do comando:
# lspci -s 01:00.0
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 661/741/760/761 PCI/AGP VGA Display Adapter
Podemos obter a lista de todos os dispositivos PCI existentes no sistema Linux, assim como as suas configurações.