BIOS, barramentos e dispositivos

Este artigo detalha: o BIOS, o relacionamento entre CPU e memória, interrupções, DMA, RTC, geometria do disco rígido, a árvore de diretórios em um sistema Linux, configurando e reconhecendo dispositivos nos barramentos ISA, PCI, USB, SCSI e ainda comentarei sobre modems e placas de som. Para terminar o artigo, comentarei sobre o sistema virtual de arquivos proc e sua funcionalidade.

[ Hits: 127.070 ]

Por: Rafael em 26/11/2007


Configurando suas placas de expansão USB e SCSI



Configurando dispositivos USB

Existem 3 tipos de controladores USB:
  • UHCI: A Universal Host Controller Interface (UHCI) é um controlador para dispositivos USB 1.x encontrado em placas mãe com chipsets da Intel ou VIA.
  • OHCI: A Open Host Controller Interface (OHCI) é um controlador para dispositivos USB 1.x encontrado principal em placas-mãe que não usam o chipset da Intel ou da VIA.
  • EHCI: A Enhanced Host Controller Interface (EHCI) é o dispositivo controlador mais comum para barramentos do tipo USB 2.0.

Implementações mais novas do USB no Linux, requeriam um driver para cada dispositivo USB e de fato muitos deles permanecem como parte do kernel atualmente. Por exemplo, os dispositivos de armazenamento USB usam, além dos drivers, recursos dos dispositivos SCSI, fazendo parecer ao sistema operacional que estes são dispositivos SCSI.

O Linux está migrando aos poucos para um novo sistema que um sistema de arquivos USB provê acesso aos dispositivos USB, mas ainda não é um padrão. Este sistema de arquivos aparece na pasta /proc e nas pastas /proc/bus/usb você tem acesso as portas USB disponíveis, bem como os dispositivos conectados a ela.

Desta forma, você pode aprender muito sobre os dispositivos USB conectados ao seu computador examinando o arquivo:

# less /proc/bus/usb/devices

Uma segunda maneira de ter acesso aos dispositivos USB conectados ao seu barramento é pelo comando:

# lsusb

/proc/bus/usb/001 para o primeiro controlador USB
/proc/bus/usb/002 para o segundo controlador USB
/proc/bus/usb/003 para o terceiro controlador USB
/proc/bus/usb/004 para o quarto controlador USB

Os programas ubsmodules e lsusb acessam os dispositivos através do diretório /proc ao invés de usar o /dev/ como o fazem na maioria dos dispositivos. Para saber qual driver está associado a um dispositivo USB específico você pode usar:

# usbmodules --device /proc/bus/usb/005/004
usblp
usb-storage

Desta forma você obteria informações sobre o 4º dispositivo conectado no 5º controladora USB, e este está usando os drivers para impressora e armazenamento de disco. Este dispositivo é uma impressora multifuncional com leitor para máquina digital, logo ambos os drivers se aplicam a ela.

Existem dois outros comandos utilizados para gerenciar os dispositivos USB, o usbmgr e o hotplug. O usbmgr carrega os módulos ou drivers necessários ao kernel conforme são necessários ou no momento que um dispositivo USB é conectado ao seu computador, apesar de ter caído em desuso atualmente. Para verificar a configuração dos dispositivos USB.

# less /etc/usbmgr/usbmgr.conf

O hotplug funciona de maneira similar e é mais usado atualmente além de prover suporte para kernels mais antigos 2.4.*

# less /etc/hotplug/usb.usermap

Contém o arquivo com banco de dados de todos os dispositivos USB e os scripts que são executados uma vez que um determinado dispositivo é encontrado no barramento.

Configurando dispositivos SCSI

A Interface SCSI, pronunciada scuzzy, ou Interface para sistemas de pequenos computadores(Small Computer System Interface) é uma interface padrão para conectar dispositivos periféricos ao computador(disco rígidos, cdroms, drives de fita, etc).

A interface SCSI é baseada na SASI, mais antiga ou Interface de Sistema da Associação Shugart introduzida por esta mesma empresa em 1979. O controlador SASI provinha uma interface entre a entrada serial analógica do disco rígido e um computador, e seu tamanho era apenas de 5^1/4 x 8 polegadas.

SASI era usada em mini e microcomputadores como o Apple II, logo a parte small ou pequena de SCSI é apenas histórica e desde 1990, a interface SCSI está disponível em grandes sistemas de computadores.

O padrão SCSI compete com o padrão ATA(Advanced Tecnology Attachment) que é informalmente conhecido como IDE ou EIDE (Extended Integrated Drive Electronics) dependendo do caso. Os dispositivos SCSI possuem configurações naturalmente superiores aos dispositivos ATA, contudo ATA é mais barato e tem mais compatibilidade com os dispositivos da arquitetura x86.

O padrão SCSI é normalmente usado em servidores e sistemas de alta performance, enquanto o padrão ATA é usado em computadores Desktop comuns.

Para configurarmos dispositivos SCSI precisamos conhecer um pouco sobre seu endereçamento e terminação(termination), e é o que veremos a seguir. Existem quatro tipos de barramento SCSI no momento:



O número de trilhas de endereçamento do barramento indica o número de dispositivos. Pela trilha feita de Cobre ou outro material que corre pela sua placa pode travegar um bit 0 ou 1 temos que para 3 trilhas, temos 2³ dispositivos no barramento SCSI, como um dispositivo conectado a ele deve ser a placa controladora que atuará regulando o tráfego entre os dispositivos, logo o número de dispositivos no máximo 2³-1 dispositivos.

Na prática o limite de comprimento do cabo pode tornar difícil conectar mais de 3 ou 5 dispositivos no barramento SCSI(dependo do caso). Cada dispositivo no barramento SCSI tem um ID(número de Identificação, 0 a 7 no SCSI de 8 bits por exemplo), no Linux cada dispositivo SCSI receberá uma letra de identificação ao invés de um número, por exemplo se eu tiver 2 disco rígidos SCSI um com ID 2 e outro com ID 4 no barramento, eles seriam atribuídos aos dispositivos /dev/sda e /dev/sdb respectivamente.

O perigo está se você adicionar um terceiro disco rígido, caso este novo disco tivesse ID 0 ou 1 ele se tornaria então o /dev/sda, com ID 3 ele se tornaria o /dev/sdb, somente com um ID maior que 3 ele se tornaria o /dev/sdc. Por esta razão é bom sempre atribuir o menor ID possível para os seus dispositivos SCSI.

Para acessar os dispositivos SCSI na sua máquina:

$ cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 05 Lun: 00
  Vendor: IOMEGA   Model: ZIP 100        Rev: D.13
  Type:   Direct-Access                  ANSI SCSI revision: 02
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: Maxtor 6Y080M0 Rev: 1.02
  Type:   Direct-Access                  ANSI SCSI revision: 05

Por fim, todo barramento SCSI precisa ser terminado, isto é precisa de um dispositivo resistor conectado em sequencia após o ultimo dispositivo no Barramento para evitar que o sinal enviado ao barramento retorne ou cause problemas nos dispositivos. Normalmente é comum termos dois resistores conectados em ambas as extremidades do barramento.

Página anterior     Próxima página

Páginas do artigo
   1. BIOS: Basic Input Output System
   2. CPU e Memória
   3. Barramentos
   4. Interrupções
   5. Endereços de E/S
   6. Endereços DMA
   7. RTC - Relógio de tempo real
   8. Disco rígido
   9. Árvore de diretórios
   10. Configurando suas placas de expansão ISA e PCI
   11. Configurando suas placas de expansão USB e SCSI
   12. Configurando modems e placas de som
   13. Detectando novos dispositivos
   14. O diretório /proc/
   15. Conclusão e licença
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Os segredos dos modems

Instalando e compartilhando a HP Photosmart C3180 (com scanner)

Open Hardware: Quem topa o desafio?

Placa de vídeo Nvidia no Ubuntu Hardy

Artigo número 100: AR.Drone - O robô voador com Linux embarcado

  
Comentários
[1] Comentário enviado por scoob em 27/11/2007 - 07:19h

It's awesome !!!!!

;>))


Parabéns!!!

[2] Comentário enviado por jeferson_roseira em 27/11/2007 - 10:35h

Muito bom o tutorial

[3] Comentário enviado por engos em 27/11/2007 - 11:18h

Isso que á artigo de verdade!

A maioria posta dicas como artigo e o pessoal deixa passar, mas o seu sim dá orgulho até de ler, entrei para verificar sobre o que se tratava pensando ser outro artigo fajuto sobre o assunto e fico contente por ter me enganado.

Parabéns, esse é digno dos top 5 do site.

[4] Comentário enviado por TSM em 27/11/2007 - 11:43h

Muito bom cara.
Parabéns.

[5] Comentário enviado por brunojbpereira em 27/11/2007 - 15:20h

Seu artigo sobre os detalhes do funcionamento de um computador e relacionando-o com o sistema linux foi genial. o artigo está nota 10.

[6] Comentário enviado por elgio em 28/11/2007 - 15:37h

Muito bom teu artigo. Nada mais posso dizer que já não tenha sido dito.

Observei que no final tu colocou uma nota de Copyright... legal, acredito que isto deva até ser incentivado aqui no Vol.

Outra coisa é sobre os HDs... Eu não sou 100% da area pois abandonei hardware faz algum tempo, mas pelo que me lembro alguns HD tem seus setores dispostos em forma de aspiral, onde cada setor tem o mesmo tamanho físico, em contra ponto ao modelo tradicional onde os setores mais internos são menores e, por terem o mesmo tamanho em bytes, tem seus bits mais "espremidos". Isto requeria até algumas técnicas especiais de armazenamento para que um bit ZERO expremido entre dois bits 1 não acabasse virando 1 também (principalmente nos setores mais centrais onde o "expremido" é mais violento)

Como hoje isto é uma coisa que só interessa a controladora do disco (que esta DENTRO do disco) não é assim tão importante.

Em tempo: há 15 ANOS ATRÁS eu era técnico em eletrônica e dava manutenção em computadores. Frequentemente a gente dizia para o cliente que o problema era apenas de BIOS. Nosso cógido interno traduzia, neste caso, BIOS para "Burro Incapaz que Operava o Sistema". Era uma senha para dizer que o problema era rateada do usuário... Ainda se usa esta "tradução" nos bastidores? (assim como o problema de Osmar. Os Mar Contato... hehehehehe)

[7] Comentário enviado por rafastv em 28/11/2007 - 22:39h

Muito obrigado pelos comentários pessoal :) Eu tentei fazer o melhor possível e ser bem claro em todos os momentos. Quanto as traduções eu realmente conheço e uso da BIOS, do Osmar é nova para mim hehehehe


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts

Tamanho do Barramento

N° máximo de dispositivos

Trilhas de endereço

Barramento SCSI de 8 bits

7

3

Barramento SCSI de 16 bits

15

4

Barramento SCSI de 32 bits

31

5

Barramento SCSI de 64 bits

63

6