[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ next ]

Guia Foca GNU/Linux
Chapter 3 - Hardware


Hardware é tudo que diz respeito a parte física do computador. Nesta seção serão abordados assuntos relacionados com a configuração de hardwares, escolha de bons hardwares, dispositivos for Windows, etc.


3.1 Placa de expansão

É um circuito eletrônico encaixado na placa mãe que tem por objetivo adicionar novas funcionalidades ao computador. Esta placa pode ser uma:

O encaixe da placa mãe que recebe as placas de expansão são chamados de Slots.


3.2 Nomes de dispositivos

Seria terrível se ao configurar CADA programa que utilize o mouse ou o modem precisássemos nos se referir a ele pela IRQ, I/O, etc... para evitar isso são usados os nomes de dispositivos.

Os nomes de dispositivos no sistema GNU/Linux são acessados através do diretório /dev. Após configurar corretamente o modem, com sua porta I/O 0x2F8 e IRQ 3, ele é identificado automaticamente por /dev/ttyS1 (equivalente a COM2 no DOS). Daqui para frente basta se referir a /dev/ttyS1 para fazer alguma coisa com o modem.

Você também pode fazer um link de /dev/ttyS1 para um arquivo chamado /dev/modem usando: ln -s /dev/ttyS1 /dev/modem, faça a configuração dos seus programas usando /dev/modem ao invés de /dev/ttyS1 e se precisar reconfigurar o seu modem e a porta serial mudar para /dev/ttyS3, será necessário somente apagar o link /dev/modem antigo e criar um novo apontando para a porta serial /dev/ttyS0.

Não será necessário reconfigurar os programas que usam o modem pois eles estão usando /dev/modem que está apontando para a localização correta. Isto é muito útil para um bom gerenciamento do sistema.

Abaixo uma tabela com o nome do dispositivo no GNU/Linux, portas I/O, IRQ, DMA e nome do dispositivo no DOS (os nomes de dispositivos estão localizados no diretório /dev):

     Dispos.   Dispos.
      Linux     DOS       IRQ     DMA     I/O
     
     ttyS0      COM1       4       -      0x3F8
     ttyS1      COM2       3       -      0x2F8
     ttyS2      COM3       4       -      0x3E8
     ttyS3      COM4       3       -      0x2E8
     lp0        LPT1       7      3(ECP)  0x378
     lp1        LPT2       5      3(ECP)  0x278
     /dev/hda1  C:        14       -      0x1F0,0x3F6
     /dev/hda2  D: *      14       -      0x1F0,0x3F6
     /dev/hdb1  D: *      15       -      0x170,0x376

* A designação de letras de unidade do DOS não é padrão como no GNU/Linux e depende da existência de outras unidades físicas/lógicas no computador.


3.3 Configuração de Hardware

A configuração consiste em ajustar as opções de funcionamento dos dispositivos (periféricos) para comunicação com a placa mãe. Um sistema bem configurado consiste em cada dispositivo funcionando com suas portas I/O, IRQ, DMA bem definidas, não existindo conflitos com outros dispositivos. Isto também permitirá a adição de novos dispositivos ao sistema sem problemas.

É importante conhecer bem a configuração dos dispositivos do sistema para saber identificar e corrigir possíveis problemas de conflitos e o que deve ser modificado, caso seja necessário.

Os parâmetros usados para configurar dispositivos de hardware são a IRQ, DMA e I/O. Nem todo dispositivo usam estes três parâmetros, alguns apenas a I/O e IRQ, outros apenas a I/O, etc.


3.3.1 IRQ - Requisição de Interrupção

Existem dois tipos básicos de interrupções: as usadas por dispositivos (para a comunicação com a placa mãe) e programas (para obter a atenção do processador). As interrupções de software são mais usadas por programas, incluindo o sistema operacional e interrupções de hardware mais usado por periféricos. Daqui para frente será explicado somente detalhes sobre interrupções de hardware.

Os antigos computadores 8086/8088 (XT) usavam somente 8 interrupções de hardware operando a 8 bits. Com o surgimento do AT foram incluídas 8 novas interrupções, operando a 16 bits. Os computadores 286 e superiores tem 16 interrupções de hardware numeradas de 0 a 15. Estas interrupções oferecem ao dispositivo associado a capacidade de interromper o que o processador estiver fazendo, pedindo atenção imediata.

As interrupções do sistema podem ser visualizadas no kernel com o comando cat /proc/interrupts. Abaixo um resumo do uso mais comum das 16 interrupções de hardware:

     0     Timer do Sistema  - Fixa
     
     01    Teclado - Fixa
     
     02    Controlador de Interrupção Programável - Fixa. 
           Esta interrupção é usada como ponte para a IRQ 9 e vem dos 
           antigos processadores 8086/8088 que somente tinham 8 IRQs. 
           Assim, pera tornar processadores 8088 e 80286 comunicáveis, 
           a IRQ 2 é usada como um redirecionador quando se utiliza uma
           interrupção acima da 8. 
     
     03    Normalmente usado por /dev/ttyS1 mas seu uso depende dos 
           dispositivos instalados em seu sistema (como fax-modem,  
           placas de rede 8 bits, etc). 
     
     04    Normalmente usado por /dev/ttyS0 e quase sempre usada pelo mouse 
           serial a não ser que um mouse PS2 esteja instalado no sistema. 
     
     05    Normalmente a segunda porta paralela. Muitos micros não tem a segunda 
           porta paralela, assim é comum encontrar placas de som e outros 
           dispositivos usando esta IRQ. 
     
     06    Controlador de Disquete - Esta interrupção pode ser compartilhada 
           com placas aceleradoras de disquete usadas em tapes (unidades de fita). 
     
     07    Primeira porta de impressora. Pessoas tiveram sucesso compartilhando 
           esta porta de impressora com a segunda porta de impressora. 
           Muitas impressoras não usam IRQs. 
     
     08    Relógio em tempo real do CMOS - Não pode ser usado por nenhum 
           outro dispositivo.
     
     09    Esta é uma ponte para IRQ2 e deve ser a última IRQ a ser 
           utilizada. No entanto pode ser usada por dispositivos. 
     
     10   Interrupção livre para dispositivos
     
     11   Interrupção livre para dispositivos
     
     12   Interrupção normalmente livre para dispositivos. O mouse PS/2, 
          quando presente, utiliza esta interrupção. 
     
     13   Processador de dados numéricos - Não pode ser usada ou compartilhada 
     
     14  Esta interrupção é usada pela primeira controladora de discos 
         rígidos e não pode ser compartilhada. 
     
     15  Esta é a interrupção usada pela segunda controladora de discos 
         e não pode ser compartilhada. Pode ser usada caso a segunda 
         controladora esteja desativada.

Dispositivos ISA, VESA, EISA, SCSI não permitem o compartilhamento de uma mesma IRQ, talvez isto ainda seja possível caso não haja outras opções disponíveis e/ou os dois dispositivos não acessem a IRQ ao mesmo tempo, mas isto é uma solução precária.

Conflitos de IRQ ocorrem quando dois dispositivos disputam uma mesma IRQ, e normalmente ocasionam a parada ou mal funcionamento de um dispositivo e/ou de todo o sistema. Para resolver um conflito de IRQs, deve-se conhecer quais IRQs estão sendo usadas por quais dispositivos (usando cat /proc/interrupts) e configurar as interrupções de forma que uma não entre em conflito com outra. Isto normalmente é feito através dos jumpers de placas ou através de software (no caso de dispositivos jumperless ou plug-and-play).

Dispositivos PCI são projetados para permitir o compartilhamento de uma mesma IRQ pois as manipulam de forma diferente. Se for necessário usar uma interrupção normal, o chipset (ou BIOS) mapeará a interrupção para uma interrupção normal do sistema (normalmente usando alguma interrupção entre a IRQ 9 e IRQ 12).


3.3.1.1 Prioridade das Interrupções

Cada IRQ no sistema tem um número que identifica a prioridade que será atendida pelo processador. Nos antigos sistemas XT as prioridades eram identificadas em seqüência de acordo com as interrupções existentes:

     IRQ 0 1 2 3 4 5 6 7 8 
     PRI 1 2 3 4 5 6 7 8 9

Com o surgimento do barramento AT (16 bits), as interrupções passaram a ser identificadas da seguinte forma:

     IRQ 0  1  2  (9  10  11  12  13  14  15)  3  4  5  6  7  8 
     PRI 1  2  3   4   5   6   7   8   9  10  11 12 13 14 15 16

Note que a prioridade segue em seqüência através da ponte da IRQ 2 para IRQ 9. Os dispositivos com prioridade mais baixa são atendidos primeiro, mas é uma diferença de desempenho praticamente imperceptível de ser notada nos sistemas atuais.


3.3.2 DMA - Acesso Direto a Memória

A DMA é usada para permitir a transferência de dados entre dispositivos I/O e a memória sem precisar do processador faze-lo. Ele livra esta carga do processador e resulta em uma rápida transferência de dados.

O PC padrão tem dois controladores de DMA. O primeiro controla os canais 0, 1, 2, 3 e o segundo os canais 4, 5, 6, 7, assim temos 8 canais. No entanto, o canal 4 é perdido porque é usado pelo controlador de acesso direto a memória. Os canais 0-3 são chamados de canais baixos porque podem somente mover um byte (8 bits) por transferência enquanto canais altos movem 2 bytes (16 bits) por transferência.

Os dados movidos usando a DMA não são movidos através do controlador de DMA. Isto oferece uma limitação porque a DMA somente podem mover dados entre os dispositivos (portas I/O) e a memória. Não é possível mover dados entre as portas ou entre a memória.

Existem dois controladores de DMA nos computadores AT e superiores. Ao contrário do que acontece com os dois controladores de IRQ, o primeiro controlador é ligado ao segundo e não o segundo ao primeiro. Os canais de DMA altos (5 ao 7) somente podem ser acessados por dispositivos de 16 bits (aqueles que utilizam a segunda parte do slot AT). Como resultado temos 8 canais de DMA, de 0 a 7, sendo que a DMA 4 é usada como ligação entre eles.

Os canais de DMA em uso no sistema podem ser visualizados com cat /proc/dma. Abaixo uma listagem de uso mais comum dos canais de DMA.

     DMA    Barram.    Uso
     0        -        Usada pelo circuito de refresh da memória DRAM
     1     8/16 bits   Normalmente usado por placas de som (canal 8 bits), 
                       porta paralela ECP, adaptadoras SCSI, placas de rede ou 
                       controladora de scanner. 
     2     8/16 bits   Normalmente usado pela controladora de disquetes ou 
                       controladoras de tapes. 
     3     8/6 bits    Usado pela porta paralela ECP, placa de som, 
                       controladoras de tapes, controladoras SCSI ou 
                       controladora de scanner antiga. 
     4        -        Usada como ponte para a outra controladora de DMA (0-3)
     5     16 bits     Normalmente usada pela placa de som (canal 16 bits), 
                       placas controladoras SCSI, placas de rede ou 
                       controladora de scanner. 
     6     16 bits     Placa de som (canal 16 bits), controladora de scanner  
                       ou placa de rede. 
     7     16 bits     Placa de som (canal 16 bits), controladora de scanner 
                       ou placa de rede.

Somente dispositivos ISA e derivados dele, como o EISA e VESA, usam os canais de DMA padrão. Os atuais dispositivos de alta taxa de transferência (normalmente PCI) possuem seu próprio controlador de DMA embutido, muito mais rápido do que a DMA padrão. Este controlador de DMA é chamado de Bus Mastering e muito usado nos discos rígidos atuais e pode atingir taxas de 33,3MB/s (no modo 2) e 66MB/s (no modo 4 - requer um cabo IDE com aterramento para evitar interferências de ruídos externos).


3.3.2.1 Conflitos de DMA

Um canal de DMA não pode ser compartilhado entre dispositivos. Ainda é possível configurar dois dispositivos para usarem um mesmo canal de DMA, desde que ele não seja usado ao mesmo tempo. Isto acontece com Scanners paralelos que compartilham a mesma porta paralela com a impressora. Se você for uma pessoa que explora os recursos de multitarefa de seu Linux e seu desempenho, evite estes tipos de dispositivos, prefira aqueles que utilizam seus próprios recursos.

Quando ocorre um conflito de DMA, os dados podem ser misturados e ocorrerem coisas estranhas até o travamento total do sistema. Este tipo de conflito é difícil de se diagnosticar, a não ser que o técnico seja experiente o bastante e tenha desconfiado do que o problema se trata...


3.3.3 I/O - Porta de Entrada/Saída

Cada dispositivo possui um endereço de porta. O endereço é uma localização da memória usada pelo computador para enviar dados ao dispositivo e onde o dispositivo envia dados ao computador. Ao contrários da IRQ e DMA, o dispositivo pode usar mais de uma porta de Entrada/Saída ou uma faixa de endereços. Por exemplo, uma placa de som padrão usa as portas 0x220, 0x330 e 0x388, respectivamente audio digital, midi e opl3.

As placas de rede normalmente transferem grandes quantidades de dados, assim ocupam uma faixa de endereços. Minha NE2000, por exemplo, ocupa a faixa de endereços 0x260 a 0x27F (0x260-0x27F). O tamanho da faixa de endereços varia de acordo com o tipo de dispositivo.

Os endereços de I/O em uso no sistema podem ser visualizados com o comando cat /proc/ioports.

Endereços das portas de entrada/saída não podem ser compartilhados


3.4 Hardwares configuráveis por jumpers, dip-switches, jumperless e Plug-and-Play.


3.4.1 Jumpers

Hardwares configuráveis por jumpers (pinos metálicos protegidos por uma capa plástica) tem sua configuração alterada através da colocação, retirada ou mudança de posição. Hardwares configuráveis por jumpers são os preferidos por técnicos de informática muito experientes.

Estes hardwares possuem a característica de somente terem seus parâmetros modificados através da mudança da posição dos jumpers da placa, desta forma se obtém uma configuração fixa (não podendo ser modificada por qualquer tipo de programa) e o dispositivo estará sempre pronto para ser ativado após a inicialização de qualquer sistema operacional.

O único inconveniente é a necessidade de se retirar a placa do computador para se ter acesso aos jumpers de configuração, a não ser que estejam manualmente acessíveis. Alguns hardwares configuráveis através de jumpers podem também funcionar como Plug-and-Play, através de um ajuste da posição dos jumpers para Plug-and-Play.

Normalmente as placas controladoras SIDE, rede, bons modelos de fax-modens, placas de som, SCSI, etc., são configuradas por jumpers e possuem um mapa de configuração gravado em seu circuito impresso que explica as posições de como os jumpers devem ser posicionados para operar na configuração desejada. Normalmente é possível escolher uma entre vários tipos de configuração, mas é recomendado optar por valores padrões (para detalhes veja IRQ - Requisição de Interrupção, Section 3.3.1, DMA - Acesso Direto a Memória, Section 3.3.2 e I/O - Porta de Entrada/Saída, Section 3.3.3).

As disposição dos jumpers são normalmente definidas em fechado/aberto e multi-posição. Na disposição fechado/aberto, o jumper pode ou não ser colocado, definindo a configuração do dispositivo:

     ::|::

Esta disposição é facilmente encontrada na seleção de IRQ e I/O em placas de fax-modem.

Na disposição multi-posição, os pinos de encaixe são numerados de 1 a 3 (ou 1 a 4, 1 a 5, etc) e os pinos podem ou não ser colocados na placa e a posição que são colocados também influencia os valores escolhidos para o funcionamento do dispositivo (a posição 1-2 especificam um valor enquanto 2-3 especificam outro). A associação entre a posição dos jumpers e a configuração desejada é feita consultando o mapa desenhado no circuito impresso da placa ou o manual de instruções da placa.

A configuração de jumper através de multi-posição é normalmente usada em placas mãe para definir a freqüência de operação do barramento, a freqüência de multiplicação ou o tipo do processador.

Se não possuir o mapa de configuração de sua placa e/ou o manual de instruções, será necessário fazer um mapeamento manual da placa, mas para isto você precisará conhecer detalhadamente a configuração de portas I/O, DMA, IRQ usadas na máquina que será usada e anotar as diferenças obtidas através da modificação da pinagem do dispositivo. Isto não é fácil, mas técnicos de informática experientes conhecerão as armadilhas encontradas pelo mapeamento manual de placas e farão o esquema de configuração completo do dispositivo, obtendo um excelente manual de instruções. Nesta hora a experiência conta mais que o uso de programas de diagnóstico.

Outra característica de hardwares configurados através de jumpers é que raramente apresentam problemas de funcionamento, a não ser que seus parâmetros como IRQ, DMA, ou I/O estejam em conflitos com outro dispositivo, mas isso não é culpa do fabricante e nem mesmo do dispositivo...


3.4.2 Dip-Switches

É a mesma coisa que os hardwares configuráveis por jumpers exceto que são usados dip-switches no lugar de jumpers. O dip-switches é um conjunto de chaves numeradas que podem ser colocadas para cima ou para baixo (como um disjuntor ou vários interruptores LIGA/DESLIGA colocados um ao lado do outro) para se modificar a configuração do dispositivo.

Normalmente as chaves estão acessíveis na parte metálica da placa (onde os hardwares são conectados) para permitir a fácil mudança de configuração sem retirar a placa. É ainda comum encontrar isto em algumas placas de fax-modem.


3.4.3 Jumperless (sem jumper)

Os hardwares jumperless não possuem jumpers e são configurados através de um programa que acompanha a própria placa. Neste programa é escolhida a IRQ, DMA, I/O e a configuração é salva na própria placa ou restaurada após cada inicialização por um programa carregado na memória. Devido a configuração via software, se obtém uma configuração fixa com muito mais facilidade do que via jumpers (por não haver a necessidade de se retirar a placa).

A maioria das placas jumperless podem funcionar também como Plug-and-Play. Existem muitas placas de rede, fax-modem, scanner jumperless no mercado.


3.4.4 Plug-and-Play

O Plug-and-Play é um protocolo que lê os valores de operação disponíveis para a placa e permitem que o usuário possa especificar facilmente qual será sua IRQ, DMA, I/O.

A diferença em relação ao modo jumperless é que o mesmo programa de configuração Plug-and-Play permite configurar todas as placas Plug-and-Play e a placa somente recebe os valores de IRQ, DMA e I/O após ser ativada por este programa, normalmente o isapnp no Linux. Isto significa que a placa não tem nenhum parâmetro de IRQ, DMA e I/O na partida do sistema.

Desta forma, somente sistemas operacionais que possuem suporte ao Plug-and-Play (como o GNU/Linux, Windows) ou programas acionadores PnP (como o ICU para o DOS) podem ativar e usar estes tipos de placas.

Placas Plug-and-Play permitem muita flexibilidade de configuração de dispositivos. O programa usado para a configuração de placas Plug-and-Play no GNU/Linux é o isapnp e a configuração de todas as placas Plug-and-Play são definidas no arquivo /etc/isapnp.conf.

Veja a próxima seção para entender como funciona o arquivo de configuração isapnp.conf e assim poder ativar seu dispositivo Plug-and-Play.


3.4.4.1 Entendendo o arquivo de configuração isapnp.conf

Segue abaixo um exemplo de arquivo /etc/isapnp.conf gerado através do pnpdump para a configuração de uma placa de Som Sound Blaster com porta IDE embutida no GNU/Linux.

O objetivo é configurar a placa Sound Blaster para operar na configuração:

Observe que as linhas iniciando com # são apenas comentários e não serão interpretadas pelo isapnp:

     # $Id: pnpdump.c,v 1.21 1999/12/09 22:28:33 fox Exp $
     # Release isapnptools-1.21 (library isapnptools-1.21)
     # 
     # Para detalhes do formato do arquivo de saída, veja a página de 
     # manual do isapnp.conf
     # 
     
     # A seção abaixo faz o isolamento da placa através da BIOS (normalmente não 
     # precisa ser alterado). Com a configuração abaixo, os dados sobre 
     # dispositivos serão obtidos diretamente da BIOS. 
     # Em placas mãe que não suportam Plug-and-Play, é necessário apenas o 
     # parâmetro (ISOLATE) para que o isapnp possa assumir totalmente o controle 
     # para identificação dos dispositivos Plug-and-Play
     (READPORT 0x0273)
     (ISOLATE PRESERVE)
     (IDENTIFY *)
     (VERBOSITY 2)
     (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # ou WARNING
     
     # Card 1: (serial identifier fc 10 01 fb 5d 28 00 8c 0e)
     # Vendor Id CTL0028, Serial Number 268565341, checksum 0xFC.
     # Version 1.0, Vendor version 1.0
     # ANSI string -->Creative SB16 PnP<--
     #
     # Descomente os valores desejados abaixo, selecionando a configuração requerida. 
     # Note que o valor padrão equivale ao primeiro parâmetro disponível (Minimum)
     # "(CONFIGURE" inicia um bloco de configuração e finaliza com "(ACT Y)"
     # Para ativar as configurações selecionadas, basta descomentar a linha 
     # "#(ACT Y)" no final do bloco de configuração. 
     
     (CONFIGURE CTL0028/268565341 (LD 0
     #     ANSI string -->Audio<--
     # Pela string acima, esta é a configuração de Audio da Sound Blaster
     # Hora de múltiplas escolhas, escolha apenas uma!
     
     #     Inicia funções dependentes, classificada por prioridade aceitável 
     #
     #       IRQ 5, 7 ou 10.
     (INT 0 (IRQ 5 (MODE +E)))
     # Foi especificada a IRQ 5 na configuração acima
     
     #       Primeiro canal DMA 0, 1 ou 3.
     #             Somente DMA de 8 bits 
     #             Dispositivo lógico não é um bus master
     #             DMA may execute in count by byte mode
     #             DMA may not execute in count by word mode
     #             DMA channel speed in compatible mode
     (DMA 0 (CHANNEL 1))
     # O valor da DMA 8 bits padrão é 0 (o mais baixo), mas este não é o valor 
     # que desejamos. Ajustamos o valor para 1. 
     
     #       Next DMA channel 5, 6 or 7.
     #             16 bit DMA only
     #             Logical device is a bus master
     #             DMA may not execute in count by byte mode
     #             DMA may execute in count by word mode
     #             DMA channel speed in compatible mode
     (DMA 1 (CHANNEL 5))
     # O canal DMA 16 bits desejado para a Sound Blaster é o 5. Apenas 
     # descomentamos a linha acima. 
     
     #       Logical device decodes 16 bit IO address lines
     #             Minimum IO base address 0x0220
     #             Maximum IO base address 0x0280
     #             IO base alignment 32 bytes
     #             Number of IO addresses required: 16
     (IO 0 (SIZE 16) (BASE 0x0220))
     # Apenas descomentamos a linha.
     
     #       Logical device decodes 16 bit IO address lines
     #             Minimum IO base address 0x0300
     #             Maximum IO base address 0x0330
     #             IO base alignment 48 bytes
     #             Number of IO addresses required: 2
     (IO 1 (SIZE 2) (BASE 0x0330))
     # O valor padrão é 0x0300 para a porta MIDI, mas nós desejamos usar o 
     # valor 0x0330. Descomentamos a linha e alteramos o valor da I/O. 
     
     #       Logical device decodes 16 bit IO address lines
     #             Minimum IO base address 0x0388
     #             Maximum IO base address 0x0388
     #             IO base alignment 1 bytes
     #             Number of IO addresses required: 4
     (IO 2 (SIZE 4) (BASE 0x0388))
     # Apenas descomentamos a linha. 0x0388 é um valor padrão para OPL
     
     #     Fim de funções dependentes
      (NAME "CTL0028/268565341[0]{Audio               }")
     (ACT Y) #Descomentamos para ativar este bloco de configuração acima
     ))
     
     
     ########################################
     # Logical device id CTL2011
     #
     # Descomente os valores desejados abaixo, selecionando a configuração requerida. 
     # Note que o valor padrão equivale ao primeiro parâmetro disponível (Minimum)
     # "(CONFIGURE" inicia um bloco de configuração e finaliza com "(ACT Y)"
     # Para ativar as configurações selecionadas, basta descomentar a linha 
     # "#(ACT Y)" no final do bloco de configuração. 
     
     (CONFIGURE CTL0028/268565341 (LD 1
     #     Compatible device id PNP0600
     #     ANSI string -->IDE<--
     # Pela string acima sabemos que esta é a configuração da IDE embutida na SB
     
     # Hora de múltiplas escolhas, escolha apenas uma!
     
     #     Inicia funções dependentes: Prioridade Preferida
     #       IRQ 10.
     (INT 0 (IRQ 10 (MODE +E)))
     # Descomentamos e aceitamos o valor acima, pois não entra em conflito com 
     # nenhum outro dispositivo do sistema. 
     
     #       Logical device decodes 16 bit IO address lines
     #             Minimum IO base address 0x0168
     #             Maximum IO base address 0x0168
     (IO 0 (SIZE 8) (BASE 0x0168))
     # Descomentamos e aceitamos o valor acima, pois não entra em conflito com 
     # nenhum outro dispositivo do sistema. 
     
     #       Logical device decodes 16 bit IO address lines
     #             Minimum IO base address 0x036e
     #             Maximum IO base address 0x036e
     #             IO base alignment 1 bytes
     #             Number of IO addresses required: 2
     (IO 1 (SIZE 2) (BASE 0x036e))
     # Descomentamos e aceitamos o valor acima, pois não entra em conflito com 
     # nenhum outro dispositivo do sistema.
     
     #     End dependent functions
      (NAME "CTL0028/268565341[1]{IDE                 }")
      (ACT Y) # Descomentando esta linha, a placa IDE da Sound Blaster passará a 
              # funcionar como IDE quartenária (de acordo com os recursos passados)
     ))
     
     
     #######################################
     # Logical device id CTL7001
     #
     # Descomente os valores desejados abaixo, selecionando a configuração requerida. 
     # Note que o valor padrão equivale ao primeiro parâmetro disponível (Minimum)
     # "(CONFIGURE" inicia um bloco de configuração e finaliza com "(ACT Y)"
     # Para ativar as configurações selecionadas, basta descomentar a linha 
     # "#(ACT Y)" no final do bloco de configuração. 
     
     (CONFIGURE CTL0028/268565341 (LD 3
     #     Compatible device id PNPb02f
     #     ANSI string -->Game<--
     # Pela string acima sabemos que é a Entrada para Joystick
     
     #     Logical device decodes 16 bit IO address lines
     #         Minimum IO base address 0x0200
     #         Maximum IO base address 0x0200
     #         IO base alignment 1 bytes
     #         Number of IO addresses required: 8
      (IO 0 (SIZE 8) (BASE 0x0200))
      (NAME "CTL0028/268565341[3]{Jogo                }")
      (ACT Y) # Sem muitos comentários... descomentamos a linha IO acima e 
              # ativamos a configuração (descomentando (ACT Y)). A diferença 
     	 # é que especificamos o nome GAME para o recurso através da 
     	 # linha (NAME "CTL0028/268565341[3]{Jogo              }")
              # Este nome será mostrado quando o Joystick for ativado
     ))
     
     # Returns all cards to the 'Wait for Key' state
     (WAITFORKEY)

Note ainda que o isapnp.conf gerado através do pnpdump contém vários tipos de prioridades de configuração para o mesmo bloco de configuração e a prioridade que usamos acima foi priority acceptable para o bloco de audio da Sound Blaster e priority preferred para a porta IDE e Joystick. Os tipos de prioridades disponíveis são:

Após a gravação do arquivo /etc/isapnp.conf, basta você digitar isapnp /etc/isapnp.conf para ativar a configuração dos dispositivos listados com as configurações que você escolheu. Se o isapnp lhe mostrar mensagens de conflito ou qualquer outro problema, verifique as configurações do hardware e modifique, se necessário. Depois execute novamente o /etc/isapnp.conf. Para detalhes sobre outros parâmetros não explicados aqui, veja a página de manual do isapnp.conf.

A maioria das distribuições GNU/Linux configura os dispositivos Plug-and-Play existentes neste arquivo automaticamente na inicialização (como é o caso da Debian e a Red Hat). Se este não for o seu caso, coloque a linha isapnp /etc/isapnp.conf em um dos scripts de inicialização de sua distribuição.


3.5 Conflitos de hardware

Ocorre quando um ou mais dispositivos usam a mesma IRQ, I/O ou DMA. Um sistema com configurações de hardware em conflito tem seu funcionamento instável, travamentos constantes, mal funcionamento de um ou mais dispositivos e até mesmo, em casos mais graves, a perda de dados.

Sempre que possível conheça e utilize os valores padrões para a configuração de periféricos, isto pode te livrar de conflitos com outros dispositivos e mal funcionamento do sistema. Alguns programas de diagnóstico ou de auto-detecção podem não localizar seu dispositivo caso ele esteja usando um valor muito diferente do padrão.

Para resolver conflitos de hardware será necessário conhecer a configuração de cada dispositivo em seu sistema. Os comandos cat /proc/interrupts, cat /proc/dma e cat /proc/ioports podem ser úteis para se verificar as configurações usadas.

Lembre-se que o barramento PCI permite o compartilhamento de IRQs entre placas PCI.


3.6 Barramento

O tipo de slot varia de acordo com o barramento usado no sistema, que pode ser um(s) do(s) seguinte(s):

ISA 8 Bits
Industry Standard Architecture - É o padrão mais antigo, encontrado em computadores PC/XT.
ISA 16 Bits
Evolução do padrão ISA 8 Bits, possui um conector maior e permite a conexão de placas de 8 bits. Sua taxa de transferência chega a 2MB/s.
VESA
Video Electronics Standard Association - É uma interface feita inicialmente para placas de vídeo rápidas. O barramento VESA é basicamente um ISA com um encaixe extra no final. Sua taxa de transferência pode chegar a 132MB/s.
EISA
Enhanced Industry Standard Architecture - É um barramento mais encontrado em servidores. Tem a capacidade de bus mastering, que possibilita a comunicação das placas sem a interferência da CPU.
MCA
Micro Channel Architecture - Barramento 32 bits proprietário da IBM. Você não pode usar placas ISA nele, possui a característica de bus mastering, mas pode procurar por dispositivos conectados a ele, procurando configuração automática.

Este barramento estava presente no PS/1 e PS/2, hoje não é mais usado.

PCI
Peripheral Component Interconnect - É outro barramento rápido produzido pela Intel com a mesma velocidade que o VESA. O barramento possui um chipset de controle que faz a comunicação entre os slots PCI e o processador. O barramento se configura automaticamente (através do Plug-and-Play). O PCI é o barramento mais usado por Pentiums e está se tornando uma padrão no PC.
AGP
Accelerated Graphics Port - É um novo barramento criado exclusivamente para a ligação de placas de video. É um slot marrom (em sua maioria) que fica mais separado do ponto de fixação das placas no chassis (comparado ao PCI). Estas placas permitem obter um desempenho elevado de vídeo se comparado as placas onboards com memória compartilhada e mesmo PCI externas. O consumo de potência em placas AGP x4 podem chegar até a 100W, portanto é importante dimensionar bem o sistema e ter certeza que a fonte de alimentação pode trabalhar com folga.
PCMCIA
Personal Computer Memory Card International Association - É um slot especial usado para conexões de placas externas (normalmente revestivas de plástico) e chamadas de cartões PCMCIA. Estes cartões podem adicionar mais memória ao sistema, conter um fax-modem, placa de rede, disco rígido, etc.

Os cartões PCMCIA são divididos em 3 tipos:

Tipo 1
Tem a espessura de 3.3 milímetros, e podem conter mais memória RAM ou memória Flash.
Tipo 2
Tem a espessura de 5 milímetros e capacidade de operações I/O. É um tipo usado para placas de fax-modem, rede, som. Computadores que aceitam cartões PCMCIA do tipo 2, mantém a compatibilidade com o tipo 1.
Tipo 3
Tem a espessura de 10.5 milímetros e normalmente usado para discos rígidos PCMCIA. Slots PCMCIA do tipo 3 mantém a compatibilidade com o tipo 2 e 1.
AMR
Audio Modem Raise - Pequeno barramento criado pela Intel para a conexão de placas de som e modem. Placas de som e modem AMR usam o HSP (host signal processor) e são como as Placas on-board e todo o processamento é feito pela CPU do computador (veja detalhes em Placas on-board / off-board, Section 3.7 e Hardwares específicos ou "For Windows", Section 3.8.

Sua vantagem é o preço: um modem ou placa de som AMR custa em torno de R$ 25,00.

CNR
Communication and Networking Rise - Pequeno barramento criado pela Intel para a conexão de placas de som, modens e placas de rede. Este é um pequenino slot marrom que é localizado no ponto de fixação das placas no chassis do gabinete. Elas são como as Placas on-board e todo o processamento é feito pela CPU do computador (veja detalhes em Placas on-board / off-board, Section 3.7 e Hardwares específicos ou "For Windows", Section 3.8.

3.7 Placas on-board / off-board

Placas on-board são embutidas na placa mãe (motherboard). Placas off-board são placas externas encaixadas nos slots de expansão da placa mãe.

No inicio da era do PC/XT todos as placas eram embutidas na placa mãe (na época eram somente a placa de vídeo e controladora). Com o surgimento do padrão AT, diversas empresas de informática desenvolveram dispositivos concorrentes e assim o usuário tinha a liberdade de escolha de qual dispositivo colocar em sua placa mãe (ou o mais barato ou o de melhor qualidade e desempenho), isto permitiu a adição de periféricos de qualidade sem romper com seu orçamento pessoal (comprando uma placa de som, depois uma de fax-modem, placa de vídeo melhor, etc).

Atualmente parece que voltamos ao ponto de partida e tudo vem embutido na placa mãe (on-board) e o usuário não tem como escolher qual dispositivo usar em seu computador. É muito difícil (praticamente impossível) encontrar uma placa mãe que satisfaça completamente as necessidades do usuário ou recomendações de um bom técnico de informática (a não ser que seja um técnico experiente e encontre alguma alternativa).

Certamente o único dispositivo que funciona melhor se embutido na placa mãe é a placa controladora de periféricos. Esta placa é usada para se conectar unidades de disquete, discos rígidos, CD-ROM, portas seriais, paralelas, joystick ao computador. Os HDs conectados em uma controladora embutida conseguem ter um desempenho muito maior do que em placas conectadas externamente, sem causar nenhum tipo de problema. Felizmente os últimos modelos de placas mãe 486 e os Pentium já trazem a placa controladora de periféricos embutida.

Hardwares embutidos na placa mãe (como fax-modem, vídeo, som) são em média 30% mais baratos que os vendidos separadamente mas quase sempre são usados dispositivos de baixo desempenho e qualidade para reduzir o preço da placa mãe e quase sempre usados hardwares For Windows.

Hoje em dia por causa do preço da placa mãe, é comum encontrar pessoas que verificam somente o preço e sequer procuram saber ou conhecem a qualidade das placas embutidas na placa mãe. Pior ainda é encontrar vendedores despreparados que sequer sabem explicar o porque que uma placa de som Sound Blaster 64 é mais cara que uma de modelo genérico...

Certa vez fiz um teste de desempenho em um jogo chamado Network Rally do DOS com minha máquina Pentium 120 MHZ (só com a placa controladora embutida), 16 MB RAM, placa de som Sound Blaster 16, placa de vídeo Trident 9680 com 1MB versus um computador Pentium 200 MMX, 32 MB RAM, placa de vídeo embutida (usando 2 MB de memória compartilhada), fax modem Rockwell embutido, e som CMI 8330 também embutido.

O resultado foi que o jogo rodava perfeito em meu pentium 120MHZ e no outro computador com o som pipocando e imagem apresentando paradas. O problema é que em dispositivos de baixa qualidade e baratos, sua carga de processamento é jogada para o processador, resultando em menos potência para executar os programas (veja Hardwares específicos ou "For Windows", Section 3.8 para maiores detalhes sobre o problema). A memória de vídeo compartilhada quer dizer que parte da memória RAM é usada para memória de vídeo ao invés de uma memória DRAM específica e desenvolvida exclusivamente para aceleração de vídeo. Isto traz mais lentidão pois a memória de vídeo (RAM) também será acessada pelo barramento do computador, envolvendo mais carga para o processador, etc. A técnica de memória compartilhada é exclusiva de placas de vídeo embutidas.

Outro periférico que traz problemas e muita carga para o processador é o fax-modem for Windows, HSP, AMR, micromodem, etc. A maioria destes periféricos se recusam a funcionar em computadores inferiores ao Pentium 150, não trazem seu chip de processamento e o pior: o chip UART. Isto faz com que o periférico, mesmo marcando conexão a 57.600 ou mais tenha um desempenho de até duas vezes menor que um fax-modem inteligente com chip de processamento próprio e UART (sem contar com os controles internos do modem, como os protocolos de correção de erros, e sua extensa interface de programação via comandos). A economia, neste caso, será paga em sua conta telefônica.

Outra vantagem de fax-modens inteligentes é que os modelos atuais vem com FlashBios o que significa que podem ser reprogramados facilmente para passar de 33.600 para 57.600 sem trocar a placa, ou aceitarem novas tendências de tecnologia. Para detalhes veja Hardwares específicos ou "For Windows", Section 3.8.

Se você estiver em uma situação destas, certamente os computadores de menor potência e com hardwares inteligentes (que possuem seus próprios chips de controle e processamento) terão um desempenho muito melhor. Mas também existem placas embutidas que tem a mesma qualidade de placas separadas (como alguns modelos de placas mãe que trazem a Sound Blaster embutida). O preço pode ser maior mas você estará pagando por um dispositivo de melhor qualidade e que certamente trará benefícios a você e ao seu sistema.

Consulte um técnico em informática experiente para te indicar uma placa mãe de bom preço e de qualidade. É muito comum encontrar falta de profissionalismo em pessoas que não sabem distinguir as características, funções e vantagens entre uma placa de boa qualidade e um hardware for Windows a não ser o preço mais barato.


3.8 Hardwares específicos ou "For Windows"

Esta seção foi retirada do manual de instalação da Debian GNU/Linux. Uma tendência que perturba é a proliferação de Modens e impressoras específicos para Windows. Em muitos casos estes são especialmente fabricados para operar com o Sistema Operacional Microsoft Windows e costumam ter a legenda WinModem, for Windows, ou Feito especialmente para computadores baseados no Windows.

Geralmente estes dispositivos são feitos retirando os processadores embutidos daquele hardware e o trabalho deles são feitos por drivers do Windows que são executados pelo processador principal do computador. Esta estratégia faz o hardware menos expansível, mas o que é poupado não é passado para o usuário e este hardware pode até mesmo ser mais caro quanto dispositivos equivalentes que possuem inteligência embutida.

Você deve evitar o hardware baseado no Windows por duas razões:

  1. O primeiro é que aqueles fabricantes não tornam os recursos disponíveis para criar um driver para Linux. Geralmente, o hardware e a interface de software para o dispositivo é proprietária, e a documentação não é disponível sem o acordo de não revelação, se ele estiver disponível. Isto impede seu uso como software livre, desde que os escritores de software grátis descubram o código fonte destes programas.
  1. A segunda razão é que quando estes dispositivos tem os processadores embutidos removidos, o sistema operacional deve fazer o trabalho dos processadores embutidos, freqüentemente em prioridade de tempo real, e assim a CPU não esta disponível para executar programas enquanto ela esta controlando estes dispositivos. Um exemplo típico disso são os Modens for Windows; Além da carga jogada na CPU, o dispositivo não possui o chip UART 16550, que é essencial para uma boa taxa de transferência do modem. O que alguns dispositivos fazer é a emulação deste chip exigindo no mínimo uma CPU Pentium de 166 MHZ para operar adequadamente nesta taxa de transmissão. Mesmo assim, devido a falta do chip UART, um modem destes iniciar uma transmissão de arquivo a 57.600, a tendência é sua taxa de transferência ir caindo na medida que um arquivo é transferido (até se estabilizar em 21/25 Kbps).

    Assim o usuário típico do Windows não obtém um multi-processamento tão intensivo como um usuário do Linux, o fabricante espera que aquele usuário do Windows simplesmente não note a carga de trabalho que este hardware põe naquela CPU. No entanto, qualquer sistema operacional de multi-processamento, até mesmo Windows 95 / 98 ou NT, são prejudicados quando fabricantes de periféricos retiram o processador embutido de suas placas e colocam o processamento do hardware na CPU.

Você pode ajudar a reverter esta situação encorajando estes fabricantes a lançarem a documentação e outros recursos necessários para nós desenvolvermos drivers para estes hardwares, mas a melhor estratégia é simplesmente evitar estes tipos de hardwares até que ele esteja listado no HOWTO de hardwares compatíveis com Linux.

Note que hoje já existem muitos drivers para WinModems e outros hardwares for Windows para o Linux. Veja a lista de hardwares compatíveis no HARDWARE-HOWTO ou procure o driver no site do fabricante de seu dispositivo. Mesmo assim a dica é evitar hardwares for Windows e comprar hardwares inteligentes onde cada um faz sua função sem carregar a CPU.


3.9 Dispositivos específicos para GNU/Linux

Esta seção foi retirada do manual de instalação da Debian GNU/Linux. Existem diversos vendedores, agora, que vendem sistemas com a Debian ou outra distribuição do GNU/Linux pré-instaladas. Você pode pagar mais para ter este privilégio, mas compra um nível de paz de mente, desde então você pode ter certeza que seu hardware é bem compatível com GNU/Linux. Praticamente todas as placas que possuem processadores próprios funcionam sem nenhum problema no Linux (algumas placas da Turtle Beach e mwave tem suporte de som limitado).

Se você tiver que comprar uma máquina com Windows instalado, leia cuidadosamente a licença que acompanha o Windows; você pode rejeitar a licença e obter um desconto de seu vendedor. Veja http://www.linuxmall.com/refund/ para detalhes.

Se não estiver comprando um computador com GNU/Linux instalado, ou até mesmo um computador usado, é importante verificar se os hardwares existentes são suportados pelo kernel do GNU/Linux. Verifique se seu hardware é listado no Hardware Compatibility HOWTO, na documentação do código fonte do kernel no diretório Documentation/sound ou consulte um técnico de GNU/Linux experiente.

Deixe seu vendedor (se conhecer) saber que o que está comprando é para um sistema GNU/Linux. Desta forma isto servirá de experiência para que ele poderá recomendar o mesmo dispositivo a outras pessoas que procuram bons dispositivos para sistemas GNU/Linux. Apóie vendedores de hardwares amigos do GNU/Linux.


3.10 Aterramento

O aterramento correto da instalação elétrica é essencial para garantir a proteção de seu microcomputador (e outros aparelhos que requerem isto). Muitos usuários simplesmente removem o pino central da tomada de seu computador, ou ligam o terra junto ao neutro da rede elétrica, isto é errado e pode trazer sérias conseqüências. O computador possui componentes sensíveis que geram descargas estáticas durante seu funcionamento (fonte, discos, placas, etc), estas descargas e ruídos são absorvidas pelo sistema de aterramento (que é ligado no gabinete do computador e outros componentes internos). Sem aterramento o seu gabinete passará a dar choques elétricos (teste com uma chave de testes, ela acenderá indicando a circulação de corrente elétrica) e a corrente acumulada poderá queimar componentes internos sensíveis (placa mãe, HD, memórias, placas expansoras).

A ligação do terra ao neutro da rede é menos perigosa em condições normais, mas se um raio cair na rede elétrica as conseqüências poderão ser piores. Mesmo a rede de iluminação pública tendo aterramento em cada poste isto pode não ser o suficiente para reduzir a carga de um raio que caia nas proximidades.

O sistema de aterramento residencial para PC deve ser feito com uma estaca de cobre com no mínimo 2 metros de altura. O cobre é um ótimo condutor de eletricidade, perdendo somente para a prata (veja Condutores de eletricidade, Section 3.10.1). Cave um buraco no solo com a ajuda de uma cavadeira (hehe, nunca ouviu falar nisso? :-), se estiver com dificuldades para cavar por causa de solo ressecado, molhe a terra para facilitar as coisas. Com a estaca enterrada, prenda um cabo elétrico em sua extremidade. 1. Prata 2. Cobre 3. Ouro 4. Alumínio 5. Magnésio 6. Tungstênio 7. Ferro 8. Estanho 9. Chumbo 10. mercúrio

O ideal para testar este sistema de aterramento seria ter um equipamento chamado terrômetro (medidor de aterramento), mas utilizaremos 2 alternativas mais acessíveis:

Caso algo ocorra errado, cheque novamente os passos acima. Se desconfiar das condições do solo, use uma barra maior ou ligue 2 barras de cobre juntas.


3.10.1 Condutores de eletricidade

A tabela abaixo está classificada em ordem do material que possui melhor condução de eletricidade (elétrons mais livres) para o menor.

  1. Prata
  2. Cobre
  3. Ouro
  4. Alumínio
  5. Magnésio
  6. Tungstênio
  7. Ferro
  8. Estanho
  9. Chumbo
  10. mercúrio

3.11 Descargas estáticas

É a energia que se acumula durante o choque das moléculas de ar seco ou atrito com outros objetos. Pode acontecer de em dias secos você tomar um "choque" ao abrir seu carro ou tocar em algum objeto metálico, isto é uma descarga estática. Na realidade você não tomou um choque, ao tocar em um objeto metálico esta energia é descarregada violentamente. Esta energia pode chegar na ordem de 5 mil volts quando acumulada (assustador não?).

É por este motivo que caminhões que transportam combustível arrastam uma corrente no chão, esta corrente funciona como um aterramento (veja Aterramento, Section 3.10) eliminando descargas estáticas que possam gerar faíscas e causar um desastre. Pulseiras, cordões, objetos metálicos podem ser usados para eliminar descargas estáticas de pessoas. O contato freqüente com o solo é um método muito útil. Existem casos em que um colar salvou a vida de pessoas atingidas por raio, justamente pelas explicações acima. O colar derrete com a drenagem da eletricidade do raio mas a pessoa tem mais chances de sair viva.

Em indivíduos realmente sensíveis, uma chapinha de metal pode ser colocada no sapato fazendo contato com o calcanhar drenando constantemente estas descargas, isto é eficaz e bem melhor que sair arrastando correntes por ai :-)

Se você trabalha com hardwares ou é apenas mais um fuçador de PCs, agora você entenderá porque é recomendável sempre tocar em partes metálicas do computador antes de mexer em qualquer placa e porque aquele seu amigo disse que a placa dele queimou depois que resolveu limpar seus contatos.


3.12 Melhoria de performance


3.12.1 Particionamento

Para um melhor desempenho, os dados que são solicitados constantemente deverão ser armazenados em uma partição no inicio do disco rígido. Esta área é a mais rápida e checa a ser 60% mais rápida que o final do HD (em alguns modelos). Em especial, a partição de boot, swap e binários do sistema poderão ser armazenados nesta partição para aumentar a velocidade da carga de programas e não prejudicar a performance do sistema quando o uso da partição de troca (swap) for necessária.

Em discos rígidos grandes (6GB ou maiores) é recomendável criar no mínimo uma partição pequena para /boot, outra para /, outra para swap e outra para /usr. Ficando distribuídas da seguinte maneira no disco rígido:

     BBRRRRRRRRRRRRRRRRRRRRR
     RRRRRRRRRRRRRRRRRRRRRRR
     SSSSSSSSSSUUUUUUUUUUUUU
     UUUUUUUUUUUUUUUUUUUUUUU
     UUUUUUUUUUUUUUUUUUUUUUU
     UUUUUUUUUUUUUUUUUUUUUUU
     UUUUUUUUUUUUUUUUUUUUUUU
     UUUUUUUUUUUUUUUUUUUUUUU
     UUUUUUUUUUUUUUUUUUUUUUU
     
     B - /boot
     R - Raíz /
     S - Swap
     U - /usr

Mas a swap não ficaria ainda mais rápida sendo a primeira partição no disco? Sim e não: Realmente fica rápida (na teoria conforme explicado acima), mas levando em consideração que o deslocamento das cabeças de leitura/gravação do disco rígido leva certo tempo, é mais vantajoso mantê-la entre as 2 partições mais acessadas, isto diminui o tempo de acesso caso um programa esteja fazendo uso constante de / ou /usr e precisar trocar dados na partição swap.

Além do mais, a partição / geralmente é pequena (no máximo 800M) deixando a swap em uma área muito próxima do inicio do disco rígido. Com base nisto, você poderá ter uma melhor visão técnica para a construção de suas partições dependendo da função do sistema.


3.12.2 Spindles

Em sistemas que utilizam um disco rígido dedicado para fazer swap, a ligação deste em uma placa controladora independente aumentará bastante a performance do sistema, pois enquanto o disco principal ligado em sua controladora estiver fazendo uma operação de leitura, o outro poderá estar fazendo sua operação de swap simultaneamente. O mesmo não acontece quando dois discos rígidos IDE estão ligados no mesmo cabo (isto não acontece no SCSI).


3.12.3 Fazendo ajustes finos de performance do disco

O hdparm é um programa que permite modificar características diversas da unidade de disco rígido como modo de transferência de dados, leitura adiante, dma, cache, leitura simultânea de setores, hibernação, etc.

Por padrão as transferências de dados entre a controladora do HD (a plaquinha que fica embaixo dele) e a controladora de periféricos é feita em 16 bits. Para exibir a configuração atual do disco rígido /dev/hda (por exemplo), digite o seguinte comando: hdparm /dev/hda

     /dev/hdb:
      multcount    =  0 (off)
      I/O support  =  0 (16-bit)
      unmaskirq    =  0 (off)
      using_dma    =  1 (off)
      keepsettings =  0 (off)
      nowerr       =  0 (off)
      readonly     =  0 (off)
      readahead    =  8 (on)

Imediatamente podemos modificar os seguintes campos para melhorar sensivelmente o desempenho do disco rígido:

multcount
Pode ser modificada com -m[num] e especifica o número máximo de setores que serão acessados de uma só vez na operação de leitura da unidade. O valor máximo recomendado é igual a capacidade máxima suportada pelo seu disco rígido, que pode ser obtida com o comando: hdparm -i /dev/hda
      Model=TS6324A2, FwRev=.340    , SerialNo=A99B99JA
      Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
      RawCHS=13228/15/63, TrkSize=0, SectSize=0, ECCbytes=0
      BuffType=unknown, BuffSize=256kB, MaxMultSect=16, MultSect=16
      CurCHS=13228/15/63, CurSects=12500460, LBA=yes, LBAsects=12500460
      IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
      PIO modes: pio0 pio1 pio2 pio3 pio4 
      DMA modes: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5

O campo MaxMultSect=16 indica o valor de 16 como máximo suportado em uma única operação pela unidade. Valores maiores poderão ser especificados mas não trarão tenho de performance. Para discos rígidos Western Digital é recomendável deixar este valor como 0, porque eles possuem um mecanismo embutido para leitura de setores. Para experimentar valores fora dos padrões, coloque seu sistema de arquivos como somente leitura para não perder dados caso algo saia errado.

Note que o comando hdparm -i mostra alguns detalhes interessantes sobre a configuração do disco rígido e modos de operação suportados.

I/O support
Modificado com -c[num]. O número especificado pode ser 0 para transferência de dados em 16 bits, 1 para 32 bits e 3 para 32 bits com uma seqüencia especial de sincronismo (alguns chips requerem esta ao invés da 1).
using_dma
Modificado com -d[num]. Habilita ou não o uso de DMA para a transferência de dados do HD, ativando o controle de algumas operações pelo chipset livrando a CPU para processamento. 0 desativa DMA e 1 ativa. Note que nem todos os chipsets aceitam esta operação.

A ativação de dma pode ser feita automaticamente na recompilação do kernel ou especificando o parâmetro ideX=dma (X é o número da controladora IDE) na linha de comando de boot: ou no arquivo /etc/lilo.conf.

unmaskirq
Modificado com -u[num]. Habilita ou não o controlador de disco mascarar as interrupções de processador durante o processamento das interrupções de disco. 0 desativa esta função e 1 ativa. Use esta opção com cuidado e sob seu próprio risco: algumas placas controladores de HD e controladoras de periféricos não trabalham bem com a taxa de transferência aumentada, podem ocorrer perda de dados. Coloque o sistema de arquivos como somente leitura antes de testar esta característica.
readonly
Modificado com -r[num]. Coloca o disco em modo somente leitura. A montagem da partição com a opção ro no /etc/fstab é preferida.
readahead
Modificado com -a[num]. Configura o número de blocos que serão lidos antecipadamente no sistema de arquivos (por padrão é usado 8 blocos - 4 Kb). Este número poderá ser modificado para se adequar a utilização do computador. Em sistemas com muita procura de arquivos pequenos (servidores web), um valor pequeno (como o padrão) é recomendável. Se a máquina é um servidor de arquivos dedicado, um valor maior trará maiores benefícios.

Veja mais detalhes sobre o comando hdparm em sua página de manual.

OBS: Se o Linux resetar o disco rígido, a maioria das configurações retornarão ao seu valor padrão. Isto ocorre devido a opções mau utilizadas no hdparm, não suportadas pelo disco rígido ou por problemas no HD/controladora.

     Exemplos:
     
     # Ajusta o número de setores simultâneos para 16 e o modo de transferência para 
     # 32 bits no disco rígido /dev/hda
     hdparm -c1 -m16 /dev/hda
     
     # Programa a leitura adiante do HD para 64 blocos (32kb), o modo de transferência 
     # para 32 bits, usar DMA, e 16 setores simultâneos.
     hdparm -c1 -d1 -m16 -a64 /dev/hda
     
     #Mostra os valores de configuração atuais do disco rígido
     hdparm /dev/hda

3.12.4 Data de acesso a arquivos/diretórios

Toda vez que acessamos um arquivo ou diretório da máquina Linux a data/hora é atualizada. Em máquinas normais isto é OK mas em servidores onde o acesso a arquivos é constante (como no diretório /var/spool em servidores de e-mail ou /usr/ em servidores diskless) é recomendável desativar esta característica. Isto reduzirá a quantidade de buscas das cabeças do disco rígido para a atualização deste atributo e conseqüentemente aumentará a performance na gravação de arquivos (o disco rígido usa o sistema mecânico para ler/gravar dados, muito mais lento que a memória RAM eletrônica).

     chattr -R +A /var/spool

O atributo +A desativa a gravação da "data de acesso" dos arquivos e sub-diretórios dentro de /var/spool. Para desativar a atualização da "data de acesso" para toda a partição, você pode incluir a opção de montagem noatime no seu /etc/fstab:

     /dev/hda1     /var/spool    ext2   defaults,noatime   0   1

OBS: O Linux utiliza três atributos de data para controle de arquivos:

Em partições onde a gravação é freqüente (como na própria /var/spool) a desativação do atributo atime além de melhorar o desempenho do disco, não fará muita falta.


3.13 Periféricos SCSI

Hardwares SCSI (Small Computer System Interfaces) representam a tecnologia ideal para a transferência de dados em alta velocidade e ligação de vários periféricos. A taxa de transferência especificada para dispositivos SCSI é sempre a padrão se comparada a dispositivos IDE (quando uma taxa de 66Mb/s quase nunca é atingida).

Estes dispositivos são classificados em 3 categorias:

Um cabo SCSI pode ter o comprimento de até 5 metros de extensão. Os periféricos SCSI são identificados através de números chamados de identificador SCSI ou SCSI ID. Estes números vão de 0 a 6 para o padrão SCSI 2 e de 0 a 15 para o padrão SCSI 3.

Placas SCSI como a Adaptec UV 19160 permitem a ligação de periféricos SCSI 2 e SCSI 3 na mesma placa com a taxa de transmissão de 160 MB/s por periférico, além de possuir um "setup" próprio para configurar as opções dos dispositivos da placa e a operação da própria. A tecnologia SCSI é algo realmente rápido para a transferência de dados e cara também, seu uso é muito recomendado em servidores críticos. Os próprios dispositivos SCSI como discos rígidos, gravadores de CD, cd-rom, etc. são construídos de tal forma que tem a durabilidade maior que periféricos comuns, garantindo a máxima confiança para operação/armazenamento de dados em longos períodos de operação.


3.13.1 Configurando uma SCSI ID e terminação

Uma SCSI ID é configurada independentemente por dispositivo e consiste em 3 jumpers (ou dip switches) que possuem os valores 1, 2 e 4. Veja o exemplo abaixo de uma unidade de CD SCSI 2:

     +--------------------------------------------
     |
     |
     |
     |SCSI ID
     |   |
     | _____ TERM
     | | | | |
     | o o o o o o 
     | o o o o o o
     | 1 2 4 T
     |
     +---------------------------------------------

Se você deixar os 3 jumpers da SCSI ID abertos, o dispositivo usará a SCSI ID 1. Colocando o jumper na posição 1, a unidade terá a SCSI ID 1. Se você colocar um jumper na posição 1 e outro na 4, a unidade será identificada pela SCSI ID 5 (quando mais de um jumper é ligado, os números serão somados).

A terminação SCSI funciona de forma semelhante a de uma rede BNC, o último periférico do cabo SCSI deve ter o jumper de terminação colocado para indicar que é o último periférico do cabo e evitar deflexão de dados. Algumas placas SCSI modernas ajustam automaticamente a terminação de periféricos sem necessidade de ajustar manualmente.


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ next ]

Guia Foca GNU/Linux

Versão 6.10 - Sunday, 03 de November de 2002
Gleydson Mazioli da Silva gleydson@cipsga.org.br