Você está na página 1de 39

Tpico 101.

1: Identificao e configurao de hardware

Tpico 101: Arquitetura do sistema


101.1: Identificao e configurao de hardware
LPI: Esse o Tpico 101.1, Peso 2 do exame de certificao LPIC-1 117-101. Nota: Os candidatos devero estar aptos para fazer configuraes bsicas de hardware.

Configurao bsica do BIOS


importante que voc domine pelo menos o conhecimento bsico apresentado aqui porque ele sempre aparece em todos os exames LPI. No exame, voc dever estar ambientado com conhecimentos sobre o hardware genrico para a plataforma Intel-PC, entender os recursos de alocao do hardware como IRQ, Portas I/O e DMA, entender expanso com cartes PCMCIA e genricos, nomenclatura SCSI e USB, deteco da interface de rede, e entender os passos bsicos para a configurao de modems a placas de som, bem como sua nomenclatura tcnica.

BIOS e componentes principais


Muita gente sabe o que BIOS, mas no consegue definir muito bem. simples. BIOS Basic Input Output System nada mais do que um programa que j vem gravado no chip do computador o qual responsvel por testar a parte de hardware e dispositivos conectados placa me (main board ou mother board). o que chamamos de memria ROM Ready Only Memory, a memria apenas de leitura. BIOS modernas fazem todas as configuraes de forma automtica, mas alguns dispositivos requerem alguns acertos, e isso feito manualmente para ajustes mais finos. Veja a seguir o quem vem agregado placa me do computador e que tambm tem interao com a BIOS: RAM Randomic Access Memory: a memria de acesso aleatrio. uma memria de armazenamento temporrio, pois quando o computador desligado perde-se o seu contedo; Processador: a parte do computador responsvel pelos processamentos das instrues matemticas e lgicas e os programas que so carregados na memria RAM; Co-Processador: Sua funo trabalhar em conjunto com o processador principal para processar as instrues matemticas. Nos computadores modernos, ele j vem incluso no processador principal. Placas de acelerao 3D tambm apresentam seu prprio processador matemtico;

Tpico 101: Arquitetura do Sistema

Memria Cache: a memria de armazenamento auxiliar do Processador. Possui alta velocidade de funcionamento, geralmente a mesma que o processador. Sua funo aumentar o desempenho de processamento. A memria cache pode ser interna ou externa placa me; CMOS: a memria temporria a qual alimentada por uma bateria onde ficam armazenadas as configuraes do computador feitas pelo programa residente em BIOS.

BIOS modernas so muito fceis de configurar, ao contrrio de BIOS antigas onde tnhamos que praticamente jampear tudo na mo. Todo computador pode ter a parte BIOS configurada por um programa residente o qual deve ser chamado antes de entrar o sistema operacional. Geralmente, podemos fazer isso de diversas formas usando combinaes de teclas como [del], [F12], [control]+[alt]+[esc], etc, porm isso pode depender do fabricante.

Figura 101.1.1 e Figura 101.1.2: Configurao da BIOS de um computador (vrias opes) e seus componentes internos. Quando da configurao da BIOS, a partir desse ponto voc entra no programa de configurao e ajustes do seu equipamento. Porm, tome cuidado, pois dependendo da configurao que fazemos, o computador pode apresentar super aquecimento, ou at mesmo no funcionar, o que precisaria, ento, que se refizesse uma configurao adequada.

A arquitetura BIOS
BIOS Basic Input and Output System o sistema bsico de entrada e sada, que na verdade nada mais que a memria ROM Read Only Memory, memria apenas de leitura (no pode ser apagada) a qual contm as instrues bsicas para a inicializao do computador, reconhecimento e ativao dos perifricos conectados placa me. As BIOS mais modernas (a partir do 286) tambm trazem um programa que usado para configurar o computador modificando os valores localizados na CMOS (memria temporria alimentada por uma bateria onde so lidas/armazenadas as configuraes do computador feitas pelo programa residente na BIOS). As placas controladoras padro IDE dependem da BIOS em si, mas as placas controladoras padro SCSI possuem sua prpria BIOS que identificam automaticamente os perifricos conectados a ela. O entendimento simples, ainda mais se voc j tiver feito algum curso de hardware ou simplesmente gostar de mexer com a parte mecnica de computadores. Quando

Tpico 101.1: Identificao e configurao de hardware

abrimos o computador podemos ver dentro dele todos os componentes como a CPU em si, ou seja, qual processador voc tem em seu computador, como a memria ROM, a memria CMOS para configurao da BIOS, uma bateria que guarda as configuraes, conexes para teclado, mouse, vdeo, placa de rede etc, e os slots para encaixe de cartes, principalmente de memria, sendo que o tipo do slot pode variar dependendo do barramento.
Tabela 101.1.1: Quadro dos principais barramentos em um Intel-PC. Barramento ISA 8 Bits ISA 16 Bits VESA EISA Descrio o Industry Standard Architecture. Esse um padro antigo e pode ainda ser encontrado nos velhos computadores PC/XT, se ainda existirem. a evoluo do ISA 8 bits. Permite uma taxa de transferncia de 2 MB/s e seu conector maior. o Video Electronics Standard Association. Foi feito para placas de vdeo rpidas. Apresenta taxa de transferncia que pode chegar a 132MB/s. o Enhanced Industry Standard Architecture. mais encontrado em servidores e tem a capacidade de bus mastering, a qual possibilita a comunicao das placas sem a interferncia da CPU. o Micro Channel Architecture (32 bits). Desenvolvido pela IBM e foi usado nos antigos PS/1 e PS/2. o Peripheral Component Interconnect. Produzido pela Intel, rpido e tem caracte-rstica/velocidade do VESA. Pode se configurar automaticamente atravs do Plug and Play (PNP). o Accelerated Graphics Port. novo e foi criado exclusivamente para a ligao de placas de vdeo. Muito bom para processamento de jogos. o Personal Computer Memory Card International Association. Apresenta um encaixe (slot) especial usado para conexes de placas externas. Esses cartes podem adicionar mais memria ao sistema, conter um fax-modem, placa de rede, disco rgido, e mais um monte de coisas legais.

MCA PCI

AGP PCMCIA

O padro IDE
O padro de discos para a grande maioria da plataforma Intel PC o IDE Integrated/Intelligent Drive Electronics. Os discos IDE variam em tamanho, indo de meros 20 Mb at 80 GB para uma controladora padro, porm, os mais modernos do tipo ATA Advanced Technology Attachment chegam a 137 GB, e maior que isso so todos do tipo SATA Serial Advanced Technology Attachment, o qual o sucessor da tecnologia ATA que foi renomeada para PATA Parallel ATA para se diferenciar da tecnologia SATA. BIOS modernas usam o padro IDE pelas seguintes razes: BIOS carrega a parte essencial do sistema operacional durante o processo de inicializao; BIOS prov a informao correta sobre as mdias instaladas para o sistema operacional. Essa informao nada mais que o nmero de cilindros, cabeas e setores do disco.
NOTA: Algumas distribuies no conseguem funcionar corretamente se a geometria do disco estiver inconsistente. possvel corrigir isso com uma formatao de baixo nvel do disco, mas se o problema continuar porque o disco j est com os dias contados.

Tpico 101: Arquitetura do Sistema

A geometria do disco serve, dentre outras coisas, para informar exatamente onde se encontram as informaes. Quando o carregador do sistema operacional entra em ao, ele consulta exatamente esses valores. A geometria de disco refere-se dimenso lgica do disco. Um dos locais onde podemos obter informaes sobre o hardware IDE em nosso sistema em /proc/ide conforme para discos com padro IDE, ou /proc/scsi para discos com padro SCSI. Os arquivos drivers, ide0, ide1 e sis contm informaes sobre esses dispositivos e hda e hdc informaes sobre o HD/CD IDE. Experimente examinar agora o contedo desses arquivos.
# ls -l /proc/ide/ total 2 -r--r--r--. 1 root lrwxrwxrwx. 1 root lrwxrwxrwx. 1 root dr-xr-xr-x. 3 root dr-xr-xr-x. 3 root -r--r--r--. 1 root

root root root root root root

0 8 8 0 0 0

2010-03-18 2010-03-18 2010-03-18 2010-03-18 2010-03-18 2010-03-18

15:00 15:00 15:00 15:00 15:00 15:00

drivers hda -> ide0/hda hdc -> ide1/hdc ide0 ide1 sis

Para disco SCSI use o comando:


# ls -l /proc/scsi total 0 -r--r--r--. 1 root root 0 2010-03-18 15:00 device_info -r--r--r--. 1 root root 0 2010-03-18 15:00 scsi dr-xr-xr-x. 2 root root 0 2010-03-18 15:00 sg

Veja o contedo do arquivo /proc/scsi/scsi. Essa listagem pode ser diferente dependendo do equipamento:
# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST380011A Type: Direct-Access Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: HL-DT-ST Model: RW/DVD GCC-4320B Type: CD-ROM

Rev: 3.16 ANSI SCSI revision: 05 Rev: 1.00 ANSI SCSI revision: 05

H dois comandos teis, o hwinfo e o hwscan, os quais tm a funo de mostrar informaes e varrer dispositivos no computador. Alm desses, em algumas distribuies h o discover (Debian), o kudzu (Red Hat), o lsdev (maioria dos sistemas Linux) e o hwsetup-knoppix (Knoppix).

Entendendo IRQ, I/O e DMA


As IRQs Interrupt Request (Requisio de Interrupo) so chamadas especiais que os dispositivos fazem ao processador quando precisam de enlaces de tempo, ou seja, quando se movimenta o mouse, o dispositivo responsvel pelo mouse solicita uma ateno do processador para que o movimento seja feito, e isso ao mesmo tempo pode acontecer quando a impressora est imprimindo, pois ela tambm solicitou informaes ao processador.

Tpico 101.1: Identificao e configurao de hardware

DICA: Os dispositivos PCI permitem o compartilhamento de IRQs, pois as manipulam de forma diferente, mapeando uma interrupo para uma interrupo normal do sistema que geralmente interrupo entre a IRQ 9 e IRQ 12.

As IRQs servem para sinalizar para a CPU que h dados disponveis. O processador faz isso dando pequenos espaos de tempos, e isso para o usurio totalmente transparente. Na plataforma Intel PC temos no mximo 16 (dezesseis) IRQs, que variam de 0 (zero) a 15 (quinze). Parece pouco, mas, felizmente, as IRQs podem ser compartilhados, ao contrrio das I/O. As IRQs que sempre so usados pelo sistema e so numeradas como 1, 2, 6, 8, 14, 15, e os que esto livres com mais frequncia so 5, 9, 10, 11, 13, e os que podem ser liberados so 3, 4, 7, 12. Os canais DMA, os quais servem para acesso direto memria e os dispositivos de entrada e sada, tm a funo de permitir que alguns dispositivos escrevam diretamente nela, onde cada dispositivo usa o seu prprio canal DMA. Na plataforma PC h dois controladores de DMA, sendo que o primeiro controlador tem quatro canais (0, 1, 2 e 3) e o segundo controlador tambm quatro (4, 5, 6 e 7), somando-se ento 8 (oito) canais. A transferncia de dados nos quatro primeiros canais d-se a uma taxa de 1 byte, ou seja, 8 bits, enquanto nos demais a taxa de 2 bytes ou 16 bits. Os canais de DMA altos (5, 6 e 7) somente podem ser acessados por dispositivos de 16 bits, e o canal 4 usado como ligao entre eles, o que chamamos cascade (cascata). Os canais DMA padro so usados por dispositivos ISA, EISA e VESA, e os dispositivos PCI usam o seu prprio controlador DMA chamado de Bus Mastering, pois assim a transferncia muito mais alta. A taxa de transferncia varia de 33 MB/s no modo 2 e 66 MB/s no modo 4. Lembre-se que dos oito canais DMA, o canal 4 sempre est ocupado, pois ele responsvel por fazer a comunicao entre os canais inferiores (0, 1, 2 e 3) com barramento 8/16 bits e os superiores (5, 6 e 7) com barramento de 16 bits. Os endereos de entrada e sada (I/O) so necessrios porque cada dispositivo precisa ser endereado pela CPU, e esses endereos so usados para entrada e sada desses dispositivos. Porm, na arquitetura atual, apenas um nico dispositivo pode usar esses endereamentos num determinado momento, logo, no se permite compartilhamento.
Tabela 101.1.2: Quadro dos canais DMA. Canal DMA 0 DMA 1 DMA 2 DMA 3 Barramento 8/16 bits 8/16 bits 8/16 bits 8/16 bits Descrio Livre, mas usado por circuitos de memria RAM. Utilizado por placas de som (canal 8 bits), porta paralela ECP, adaptadoras SCSI, placas de rede ou controladora de scanner. Utilizado pela controladora de disquete e controladoras de fitas. Utilizado pela porta paralela ECP, placa de som, controladoras de fitas, controladoras SCSI ou controladora de scanner antiga. Tambm pode ser usado pela placa de rede. Modo Cascade. usado como ponte para comunicao entre os canais. Livre, porm pode ser usado pela placa de som (canal 16 bits), controladora de scanner ou placa de rede. O canal 5 usado por dispositivos SCSI.

DMA 4 DMA 5, 6, 7

--8/16 bits

Tpico 101: Arquitetura do Sistema

Algumas BIOS fazem alocao de recursos automaticamente com o intuito de evitar conflitos, onde os dispositivos PCI e ISA plug and play compartilham interrupes entre si. Pode acontecer de os dispositivos entrarem em conflito pelo uso ao mesmo tempo desses endereamentos. Isso resolve-se da seguinte maneira: Trocar as configuraes dos dispositivos via configurao BIOS; Trocar os jumpers nos cartes/placas de expanso; Configurar o dispositivo em questo usando um programa especfico.

Praticando a configurao bsica da BIOS


Essa parte de certa forma simples, pois aqui voc dever estar apto a fazer umas configuraes bsicas de BIOS do sistema. Voc dever entender a diferena em discos IDE e LBA Large Block Address e discos maiores que 1024 cilindros. Habilitar e desabilitar a integrao de perifricos como, por exemplo, o teclado. Faz-se necessrio saber os principais comandos do sistema para poder fazer consultas sobre as informaes base da BIOS. Esse conhecimento sempre exigido junto aos exames LPI.

O diretrio /proc
O diretrio /proc um diretrio virtual no sistema Linux, pois ele existe apenas quando a mquina est ligada, e geralmente todos os arquivos dentro desse diretrio tem 0 (zero) bytes, mas mesmo assim seus arquivos apresentam contedo. O maior arquivo dentro desse diretrio o kcore, e geralmente ele apresenta o tamanho prximo do total de memria presente no seu sistema. Veja a seguinte listagem para um sistema com 256 MB de RAM:
# ls -l /proc/kcore -r--------. 1 root root 536858624 2010-03-18 15:00 /proc/kcore # ls -lh /proc/kcore -r--------. 1 root root 512M 2010-03-18 15:00 /proc/kcore

Cuidado, como esse um diretrio virtual, usado na verdade pelo kernel, no possvel escrever nele pelo mtodo convencional. Caso voc faa isso, vai receber uma mensagem de erro. Lembre-se que o /proc usado exclusivamente pelo kernel para gerenciamento.
# touch /proc/teste touch: cannot touch `/proc/teste: No such file or directory # echo oi proc > /proc/oi -bash: /proc/oi: No such file or director

Alocao de recursos
A alocao de recursos serve para que possamos permitir perifricos e dispositivos conectados ao PC se comunicarem diretamente com os recursos do sistema, em particular a CPU. A alocao de recursos pode ser pesquisada usando os comandos comuns de visualizao de arquivos textos como, por exemplo, cat, less, more, porm, os mais usados so o hwinfo, lshal, lspci e o dmesg. Fique atento quanto a esses dois ltimos.

Tpico 101.1: Identificao e configurao de hardware

Esses recursos so: IRQS, I/O e DMA. IRQs Interrupt Requests Lines: As IRQs permitem que os diversos tipos de dispositivos conectados ao computador requisitem enlaces de tempo para a CPU. Quando isso ocorre, a CPU para a sua atividade do momento e processa a atividade requisitada. Isso acontece o tempo todo; I/O Input/Output: Entrada e sada representa um endereo especfico do sistema no mapa de memria. A comunicao do dispositivo com a CPU d-se pela leitura e escrita na memria em endereos especficos; DMA Direct Memory Access: Alguns dispositivos podem ter acesso memria do sistema atravs dos canais DMA, e isso permite a escrita e o processamento de dados sem o acesso direto CPU.

Listando os recursos alocados


O kernel mantm informaes relacionadas aos recursos alocados no diretrio / proc, conforme j havamos comentado. Fique atento, pois esse diretrio contm informaes importantes para o hardware e pode ser facilmente consultado, e na grande maioria das vezes, apenas com o comando cat e similares. Mas h comandos mais especficos os quais analisam as informaes desse diretrio para gerar uma sada customizada. Alguns dos principais comandos para listar esses recursos so: dmesg: Mostra as informaes do kernel quando da hora da inicializao. muito til por podermos analisar passo a passo todo o reconhecimento do hardware feito pelo kernel. Essas mensagens encontram-se no arquivo /var/ log/dmesg; hwinfo, lshal: Esses dois comandos so muito teis, pois nos fornecem todas as informaes detalhadas do sistema em forma de relatrio; lspci: Mostra informaes do chipset de todos os componentes padro PCI. Esse comando listar tambm IRQs e I/O se for usado o parmetro -v ou -vv; lsusb: Mostra informaes sobre o suporte USB e informaes adicionais caso algum dispositivo USB esteja plugado na mquina. Todas as informaes/arquivos do diretrio /proc so importantes, porm algumas se destacam nesse momento. A numerao dessa listagem representa os diretrios criados por processos no sistema.
# cd /proc; echo * 1 10 1076 1078 1079 11 1103 1121 1134 1163 1171 1184 1194 1195 12 1204 1225 1233 1236 1237 13 1328 1362 1365 1380 1393 1398 14 1402 1405 1413 1445 1461 1470 1480 1491 15 1502 1510 1512 1519 1526 (...) acpi asound buddyinfo bus cgroups cmdline cpuinfo crypto devices diskstats dma dri driver execdomains fb filesystems fs interrupts iomem ioports irq kallsyms kcore keys key-users kmsg kpagecount kpageflags latency_stats loadavg locks mdstat meminfo misc modules mounts mtrr net pagetypeinfo partitions sched_ debug schedstat scsi self slabinfo stat swaps sys sysrq-trigger sysvipc timer_ list timer_stats tty uptime version vmallocinfo vmstat zoneinfo

Por exemplo, caso queira saber como est mapeada a memria, simplesmente digite o comando cat/proc/meminfo (esse comando apresenta mais informaes tcnicas) ou, se quiser apenas uma simples checagem, use o comando a seguir. Veja a parte reservada que est sendo usada para swap (rea de troca ou temporria)

10

Tpico 101: Arquitetura do Sistema

no sistema; mas em mquinas com maior capacidade de memria como 4 GB, 8 GB e 16 GB de memria, ela raramente usada. O uso dela depende do destino da mquina. Se for para tarefas normais, simples, do dia-a-dia, e a mquina tiver pouca memria, ela ser usada. Caso contrrio, no.
# free total Mem: 510720 -/+ buffers/cache: Swap: 1048568 used 461368 295360 10128 free 49352 215360 1038440 shared 0 buffers 4796 cached 161212

Veja outros parmetros para brincar com o comando free: free: Exibe uso de memria em kilobytes (-k padro); free -m: Exibe uso de memria em megabytes; free -g: Exibe uso de memria em gigabytes; free -b: Exibe uso de memria em blocos; free -mt: Exibe uso de memria + Swap; free -s 5: Exibe uso de memria a cada cinco segundos. Para informaes de memria com mais detalhes usamos o comando vmstat (use vmstat -d para ver estatsticas do disco) ou o cat /proc/meninfo. Esses dois comandos so teis para uma inspeo com mais detalhes:
# vmstat -S M 498 450 137 208 47 4 157 1023 9 1014 32439 0 6464 80397 5972 73 (...) -s M total memory M used memory M active memory M inactive memory M free memory M buffer memory M swap cache M total swap M used swap M free swap non-nice user cpu ticks nice user cpu ticks system cpu ticks idle cpu ticks IO-wait cpu ticks IRQ cpu ticks # cat /proc/meminfo MemTotal: 510720 MemFree: 48876 Buffers: 4952 Cached: 161384 SwapCached: 284 Active: 141228 Inactive: 213948 Active(anon): 68552 Inactive(anon): 124648 Active(file): 72676 Inactive(file): 89300 Unevictable: 8 Mlocked: 8 HighTotal: 0 HighFree: 0 LowTotal: 510720 (...) kB kB kB kB kB kB kB kB kB kB kB kB kB kB kB kB

Um outro comando til o slabtop que serve para ver o cache (rea secundria) do kernel. Ele mostra o comportamento dos objetos, nome, e consumo em nvel de kernel (outros comandos teis so o iostat e o lsof; use a pgina de manual para aprender mais sobre eles):
# slabtop Active / Total Objects (% used) Active / Total Slabs (% used) Active / Total Caches (% used) Active / Total Size (% used) Minimum / Average / Maximum Object OBJS ACTIVE USE OBJ SIZE : : : : : 554898 / 582805 (95.2%) 4586 / 4586 (100.0%) 63 / 77 (81.8%) 17935.39K / 21606.70K (83.0%) 0.01K / 0.04K / 4.00K

SLABS OBJ/SLAB CACHE SIZE NAME

Tpico 101.1: Identificao e configurao de hardware

11

294912 293642 157696 157690 26944 18494 22144 22046 12720 6092 12648 7137 9798 9710 8840 8831 (...)

99% 99% 68% 99% 47% 56% 99% 99%

0.02K 0.01K 0.06K 0.03K 0.13K 0.04K 0.09K 0.05K

1152 308 421 173 424 124 213 104

256 512 64 128 30 102 46 85

4608K 1232K 1684K 692K 1696K 496K 852K 416K

kmalloc-16 kmalloc-8 buffer_head kmalloc-32 dentry selinux_inode_security vm_area_struct sysfs_dir_cache

Para verificar os pontos de montagens no sistema nesse momento (veja como a sada desse comando diferente do comando df):
# cat /proc/mounts rootfs / rootfs rw 0 0 /dev/root / ext4 rw,relatime,barrier=1,data=ordered 0 0 /dev /dev tmpfs rw,relatime,mode=755 0 0 /proc /proc proc rw,relatime 0 0 /sys /sys sysfs rw,relatime 0 0 /proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0 devpts /dev/pts devpts rw,relatime,mode=600,ptmxmode=000 0 0 /dev/sda2 /boot ext3 rw,relatime,errors=continue,user_xattr,acl,data=ordered 0 0 tmpfs /dev/shm tmpfs rw,relatime 0 0 (...)

Para saber qual a sua partio de troca (swap) use o comando (dois exemplos):
# cat /proc/swaps Formatado normalmente com Ext3. Filename Type Size Used Priority /dev/sda5 partition 1020088 64 -1 # cat /proc/swaps Formatado com LVM. Filename Type Size /dev/mapper/vg_ns1-lv_swap partition

Used Priority 1048568 10128 -

Tabela 101.1.3: Quadro dos principais diretrios do diretrio /proc. Diretrio asound/ bus/ driver/ fs/ ide/ irq/ net sys/ tty/ Descrio Informaes sobre a placa de som. Informaes sobre dispositivos como mouse, PCI e USB. Informaes sobre tipos de driver, geralmente USB. Informaes sobre sistema de arquivos (file system) no sistema. Geralmente, nfsd e supermount. Informaes sobre dispositivos IDE no sistema. Diretrio reservado para IRQs. Informaes sobre conexes. A partir do kernel 2.6 o novo diretrio para configuraes plug and play. Informaes sobre dispositivos seriais etc.

12

Tpico 101: Arquitetura do Sistema

J sabemos que cada arquivo dentro do diretrio /proc se faz importante, e que todos podem ser lidos com os comandos cat, more e less. Mas tenha uma ateno especial quanto aos seguintes arquivos: cmdline: Local onde se encontra o kernel e opes de carregamento; cpuinfo: Informaes genricas sobre processador, modelo, velocidade etc; dma: Informao sobre DMA; interrupts: IRQs usadas pelos perifricos; iomem: Informaes sobre a memria; ioports: Portas de entrada e sada; modules: Lista todos os mdulos do sistema. partitions: Lista as parties presentes no sistema; pci: Informaes sobre slots PCI e AGP.
DICA: Os dispositivos padro ISA, VESA, EISA e SCSI no permitem o compartilhamento de uma mesma IRQ, pois no foram projetados para isso. Existem algumas solues, mas no so muito eficazes.

No processador h endereos de memria reservados que realizam entrada e sada de informaes. Ns os chamamos de portas, portanto, portas de entrada e sada I/O Input/Output. Essas portas tm como objetivo principal a troca de dados entre o processador e os dispositivos de forma simplificada. Cada dispositivo conectado CPU apresenta um endereo de porta I/O que no pode ser compartilhado com outros dispositivos. Para visualizar as portas de entrada e sada use o comando a seguir:
# cat /proc/ioports 0000-001f : dma1 0020-0021 : pic1 0040-0043 : timer0 0050-0053 : timer1 0060-0060 : keyboard 0064-0064 : keyboard 0070-0071 : rtc0 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : 0000:00:07.1 0170-0177 : ata_piix 01f0-01f7 : 0000:00:07.1 01f0-01f7 : ata_piix 02f8-02ff : serial (...)

Lembre-se que os dispositivos PCI permitem o compartilhamento da mesma IRQ, pois as manipulam de forma diferente. Eles fazem isso mapeando uma interrupo para uma interrupo normal do sistema que geralmente interrupo entre a IRQ 9 e IRQ 12. As interrupes do sistema podem ser visualizadas com o seguinte comando:
# cat /proc/interrupts CPU0 0: 280 IO-APIC-edge 1: 4035 IO-APIC-edge

timer i8042

Tpico 101.1: Identificao e configurao de hardware

13

4: 7: 8: 9: 12: 14: 15: 16: 19: 21:

1 0 1 0 89242 20969 23503 1 26 0

22: 389 23: 0 NMI: 0 LOC: 476004 RES: 0 CAL: 0 TLB: 0 TRM: 0 SPU: 0 ERR: 0 MIS: 0

parport0 rtc0 acpi i8042 pata_via pata_via nouveau@pci:0000:01:00.0 CS4281 ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb4 IO-APIC-fasteoi VIA8233 IO-APIC-fasteoi eth0 Non-maskable interrupts Local timer interrupts Rescheduling interrupts Function call interrupts TLB shootdowns Thermal event interrupts Spurious interrupts

IO-APIC-edge IO-APIC-edge IO-APIC-edge IO-APIC-fasteoi IO-APIC-edge IO-APIC-edge IO-APIC-edge IO-APIC-fasteoi IO-APIC-fasteoi IO-APIC-fasteoi

NOTA: No confunda o comando cat /proc/ioports que lista as portas I/O (entrada e sada) com o comando cat /proc/iomem que lista endereamento de memria para os dispositivos de entrada e sada. Fique atento, pois aparece em exames LPI.

Assim como temos as portas I/O, temos o DMA que o acesso direto memria que serve para permitir a transferncia de dados entre os dispositivos e a memria sem a interveno do processador. Isso se d atravs de canais (channels) onde a maioria dos computadores apresenta 2 (dois) controladores de DMA. importante que voc saiba que temos um total de 8 (oito) canais onde o primeiro controlador de DMA cuida dos canais 0, 1, 2 e 3 e o segundo cuida dos canais 4, 5, 6 e 7. O DMA importante, pois ele livra a carga do processador e resulta em uma rpida transferncia de dados. Para informaes sobre DMA usamos o seguinte comando:
# cat /proc/dma 2: floppy 4: cascade

Comandos relacionados com as informaes sobre dispositivos PCI: lspci: Lista todos os dispositivos PCI; cat /proc/pci: semelhante ao comando lspci; setpci: Configura dispositivos PCI; pcitweak: L, escreve e lista configuraes para dispositivos PCI e scanpci: Faz uma varredura e testa dispositivos PCI; /sbin/hotplug: Script que em algumas distribuies fornece informaes sobre dispositivos PCI e USB, assim como mdulos ativos. O utilitrio hotplug no mais usado em algumas distribuies.

14

Tpico 101: Arquitetura do Sistema

Para listar todos os dispositivos PCI:


# lspci -b 00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge 00:01.0 PCI bridge: VIA Technologies, Inc. VT8235 PCI Bridge 00:0c.0 Multimedia audio controller: Cirrus Logic Crystal CS4281 PCI Audio (rev 01) 00:0e.0 Communication controller: Agere Systems V.92 56K WinModem (rev 02) 00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) 00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) 00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) 00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge 00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/ A/C PIPC Bus Master IDE (rev 06) 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50) 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74) 01:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 440 AGP 8x] (rev a2

Para listar todos os dispositivos PCI com detalhamento. Use o parmetro -vv para mais detalhes (o comando scanpci fornece uma sada resumida; verifique se esse comando est presente):
# lspci -v 00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge Subsystem: ASUSTeK Computer Inc. A7V8X motherboard Flags: bus master, 66MHz, medium devsel, latency 0 Memory at f8000000 (32-bit, prefetchable) [size=64M] Capabilities: [80] AGP version 3.5 Capabilities: [c0] Power Management version 2 Kernel driver in use: agpgart-via 00:01.0 PCI bridge: VIA Technologies, Inc. VT8235 PCI Bridge (prog-if 00 [Normal decode]) Flags: bus master, 66MHz, medium devsel, latency 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 Memory behind bridge: f2000000-f3efffff Prefetchable memory behind bridge: f3f00000-f7ffffff Capabilities: [80] Power Management version 2 (...)

Lembre-se que podemos usar o comando dmesg com | (pipes) para buscar somente uma determinada informao do hardware como, por exemplo, a placa de rede do tipo Ethernet (eth0) ou Wireless (wlan0). Veja como poderamos usar o comando dmesg para esse tipo de pesquisa:
# dmesg | grep eth0 eth0: VIA Rhine II at 0xef800000, 00:0c:6e:4e:41:ec, IRQ 23. eth0: MII PHY found at address 1, status 0x7849 advertising 01e1 Link 0000. eth0: link down ADDRCONF(NETDEV_UP): eth0: link is not ready

Para mostrar todas as informaes de hardware reconhecidas pelo kernel (a listagem extensa) usamos o comando dmesg sem nenhum parmetro. A listagem

Tpico 101.1: Identificao e configurao de hardware

15

longa, bem detalhada e, acredite, ela vai te ajudar muito no seu dia-a-dia. Porm, a listagem poder ser diferente daquela da sua mquina:
# dmesg Initializing cgroup subsys cpuset Initializing cgroup subsys cpu Linux version 2.6.31.5-127.fc12.i686.PAE (mockbuild@x86-3.fedora.phx.redhat. com) (gcc version 4.4.2 20091027 (Red Hat 4.4.2-7) (GCC) ) #1 SMP Sat Nov 7 21:25:57 EST 2009 KERNEL supported cpus: Intel GenuineIntel AMD AuthenticAMD NSC Geode by NSC Cyrix CyrixInstead Centaur CentaurHauls Transmeta GenuineTMx86 Transmeta TransmetaCPU (...)

O retorno do comando lshal pode ter mais de duas mil linhas dependendo do seu hardware. Veja a seguir como buscar informaes sobre o kernel e a placa de rede no sistema. O sistema detectado tem uma arquitetura do tipo 686 (confirme com o comando arch), e o driver da placa de rede 8139:
# lshal | grep kernel system.kernel.machine = i686 (string) system.kernel.name = Linux (string) system.kernel.version = 2.6.31.5-127.fc12.i686.PAE system.kernel.version.major = 2 (0x2) (int) system.kernel.version.micro = 31 (0x1f) (int) system.kernel.version.minor = 6 (0x6) (int)

(string)

# lshal | grep 8139 udi = /org/freedesktop/Hal/devices/pci_10ec_8139 info.linux.driver = 8139too (string) info.product = RTL-8139/8139C/8139C+ (string) info.udi = /org/freedesktop/Hal/devices/pci_10ec_8139 (string) pci.product = RTL-8139/8139C/8139C+ (string) pci.product_id = 33081 (0x8139) (int) info.parent = /org/freedesktop/Hal/devices/pci_10ec_8139 (string) net.originating_device = /org/freedesktop/Hal/devices/pci_10ec_8139 (string) net.physical_device = /org/freedesktop/Hal/devices/pci_10ec_8139 (string)

Em algumas situaes onde o servidor possui mais de uma interface de rede, o administrador pode sentir a necessidade de saber qual mdulo de rede do kernel est ligado a essa interface. Veja a seguir como ele poderia saber que o mdulo 8139too est ligado interface de rede eth0:
# lspci -v -s tail -3 | head Kernel Kernel $(lshal | grep eth0 | head -1 | cut -d -f5 | cut -d/ -f5) | -2 driver in use: 8139too modules: 8139too, 8139cp

Nota: Troque eth0 por eth1, eth2, eth3 etc para saber qual mdulo est ligado interface de rede do tipo Ethernet. Essa combinao de comando muito til quando h interfaces de rede na mquina de diferentes fabricantes.

16

Tpico 101: Arquitetura do Sistema

Endereamento de recursos
O endereamento de recursos d-se pelas IRQs presentes no sistema, as quais na plataforma Intel PC tm um total de 16 (dezesseis), na faixa de 0-15, sendo que a IRQ 2 responsvel pelo cascateamento com o segundo controlador. Algumas podem ser compartilhadas, mas outras so fixas para o sistema como, por exemplo, a IRQ 0 (fixa) que o Timer do Sistema, a IRQ 1 (fixa) que o teclado e a IRQ 2 (fixa) que o controlador de interrupo programvel. Essa interrupo interessante, pois ela serve como ponte para outras IRQs, mais especificamente as acima de 8 (9..15). As IRQs indisponveis no sistema so: IRQ 0: Timer do sistema, IRQ 1: Teclado; IRQ 2: Cascateamento para o segundo controlador, IRQ 6: Unidade de disquete; IRQ 8: Relgio do sistema, IRQ 13: Coprocessador matemtico; IRQ 14: Controlador IDE primrio, IRQ 15: Controlador IDE secundrio.
Tabela 101.1.4: Quadro dos endereos dos principais recursos. Dispositivo /dev/ttyS0 (COM 1) /dev/ttyS1 (COM 2) /dev/ttyS2 (COM 3) /dev/ttyS3 (COM 4) /dev/lp0 (LPT 1:) /dev/lp0 (LPT 2:) /dev/lp0 (LPT 3:) /dev/fd0 e /dev/fd1 (A: e B:) /dev/fd2 e /dev/fd3 Ethernet (Placa de rede) Sound Card (Placa de som) /dev/hda1 (C:) /dev/hdc (D: ou CDROM) I/O Port 0x03f8 0x02f8 0x03e8 0x02e8 0x378 0x278 0x3bc 0x3f0, 0x3f7 0x370, 0x377 0xd0000 0x220, 0x330, 0x388 0x1f0, 0x3f6 0x170-0x177, 0x376 IRQ 4 3 4 3 7 5 7 6 10 10 11 14 15 DMA --------3 (ECP) 3 (ECP) 3 (ECP) 2 3 ---------

Nota: Em kernel antigo, de verso anterior a 2.2.x, em vez de ser /dev/ttyS[0-4], a nomenclatura ser /dev/cua[1-3].

Como podemos ver, no muito complicado. Tudo questo de memorizao. Por exemplo, a IRQ 14 usada pela primeira controladora de discos e no pode ser compartilhada, e a IRQ 15 usada pela segunda controladora a qual no pode ser compartilhada.

Configurao bsica de dispositivos SCSI


O conhecimento requerido nessa parte estar apto a configurar dispositivos SCSI atravs da prpria BIOS ou de utilitrios do sistema Linux. Tambm interessante saber as diferenas entre os diversos tipos de dispositivos SCSI Small Computer System Interfaces. O objetivo dos exames inclui a manipulao do BIOS SCSI para detectar e habilitar as configuraes corretas que sero usadas na hora da inicializao.

Tpico 101.1: Identificao e configurao de hardware

17

A arquitetura SCSI
Dispositivos SCSI podem se comunicar entre si e, geralmente, a comunicao entre eles muito rpida, a qual pode variar de 5 MB a 320 MB. Os dispositivos SCSI so dispositivos para armazenamento de dados, os quais podem ser CD-ROM, DVD-ROM, HD, Fitas Dat, Scanners, Zip/Jaz Drivers etc. Alm da velocidade alta, podemos ter 8 (oito) dispositivos (incluindo a controladora) por barramento para uma controladora SCSI 8 bits e 16 (dezesseis) dispositivos (incluindo a controladora) por barramento para uma controladora SCSI 16 bits. Para que os dispositivos SCSI funcionem em um sistema Linux, o kernel deve dar suporte a isso. Felizmente, isso acontece h muito tempo, porm pode acontecer de ser preciso passar alguns parmetros adicionais para se obter mais desempenho desses dispositivos. Estes dispositivos so classificados em 3 categorias: SCSI I: Usa um cabo de 25 condutores para a ligao de perifricos. Normalmente usado em scanners, impressoras e outros dispositivos; SCSI II: Tambm chamado de Fast SCSI. Usa um cabo de 50 condutores para a ligao de perifricos. Permite que sejam ligados at 7 perifricos em uma mesma controladora. o mais comum encontrado hoje em dia; SCSI III: Tambm chamado de Fast SCSI SE ou LVD. Usa um cabo de 68 condutores para ligao de perifricos. Permite que sejam ligados at 16 perifricos em uma mesma controladora. importante saber que um cabo SCSI pode ter o comprimento de at cinco metros de extenso. Os perifricos SCSI so identificados atravs de nmeros chamados de identificador SCSI ou SCSI ID. Estes nmeros vo de 0 a 6 para o padro SCSI II e de 0 a 15 para o padro SCSI III.
DICA: Para discos SCSI, fitas e CDs nenhum software adicional requerido, uma vez que o protocolo para esses dispositivos fazem parte do protocolo SCSI. Hoje em dia s conectar e reiniciar que o sistema Linux reconhece automaticamente.

Dispositivos SCSI
J sabemos que o comando cat /proc/pci mostra os dispositivos PCI e o comando cat /proc/scsi/scsi mostra todos os dispositivos SCSI que atualmente esto carregados pelo kernel. Observe que os dispositivos tm um identificador que o SCSI ID; e ele tambm aparece nessa listagem. Um ponto importante que bom sabermos que todos os dispositivos USB so tratados como dispositivos SCSI pelo sistema Linux.
# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: VMware, Model: VMware Virtual S Type: Direct-Access Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: HL-DT-ST Model: RW/DVD GCC-4320B Type: CD-ROM Host: scsi3 Channel: 00 Id: 00 Lun: 00

Rev: 1.0 ANSI SCSI revision: 02 Rev: 1.00 ANSI SCSI revision: 05

Tpico 101.1: Identificao e configurao de hardware

19

prpria controladora monitora o estado do disco e disponibiliza um log numa rea reservada, que pode ser lida pelo sistema operacional. O comando smartctl pode ser usado para extrair um relatrio detalhado sobre o disco IDE/SCSI presente no sistema. Esse comando pode ser executado em ambos os tipos de discos IDE (/dev/hd??) e SCSI (/dev/sd??):
# smartctl -i /dev/sda ou smartctl -i /dev/hda Informao resumida. # smartctl -a /dev/sda ou smartctl -a /dev/hda Informao detalhada. smartctl version 5.38 [i386-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF INFORMATION SECTION === Model Family: IBM Travelstar 48GH, 30GN, and 15GN family Device Model: IC25N010ATDA04-0 Serial Number: 170172M9962 Firmware Version: DACOA76A User Capacity: 10,056,130,560 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 5 ATA Standard is: ATA/ATAPI-5 T13 1321D revision 3 Local Time is: Tue Aug 6 16:25:45 2013 BRT SMART support is: Available - device has SMART capability. SMART support is: Enabled (...) Nota: Aqui podemos ver que o suporte ao smart est habilitado, caso no tivesse, usaramos o comando smartctl -s on /dev/sda, para habilitar nesse tipo de disco.

O parmetro -H exibe um diagnstico rpido da sade do disco, fornecido pela prpria controladora:
# smartctl -H /dev/sda | grep result SMART overall-health self-assessment test result: PASSED Nota: Em casos de problemas iminentes o resultado ser FAILING. Se isso ocorrer, recomenda-se trocar o disco o mais rpido possvel.

O comando hdparm pode ser usado para extrair um relatrio detalhado sobre o disco IDE/SCSI presente no sistema. Esse comando pode ser executado em ambos os tipos de discos IDE (/dev/hd??) e SCSI (/dev/sd??). Use esse comando com cuidado, pois possvel ajustar alguns parmetros do disco, mas se fizer isso errado poder ter problemas:
# hdparm -I /dev/sda ou hdparm -I /dev/hda /dev/sda: ATA device, with non-removable media Model Number: IC25N010ATDA04-0 Serial Number: 170172M9962 Firmware Revision: DACOA76A Standards: Used: ATA/ATAPI-5 T13 1321D revision 3 Supported: 5 4 3 & some of 6 Configuration: Logical max current

20

Tpico 101: Arquitetura do Sistema

cylinders 16383 16383 heads 16 16 sectors/track 63 63 -CHS current addressable sectors: 16514064 LBA user addressable sectors: 19640880 Logical/Physical Sector size: 512 bytes device size with M = 1024*1024: 9590 MBytes device size with M = 1000*1000: 10056 MBytes (10 GB) cache/buffer size = 347 KBytes (type=DualPortCache) (...)

O comando ainda permite que seja feita uma checagem de performance do disco:
# hdparm -Tt /dev/sda ou hdparm -Tt /dev/hda /dev/sda: Timing cached reads: 174 MB in 2.01 seconds = 86.53 MB/sec Timing buffered disk reads: 24 MB in 3.09 seconds = 7.76 MB/sec

Para uma listagem completa sobre dispositivos SCSI em seu sistema:


# dmesg | grep sd[a-z] sd 0:0:0:0: [sda] 19640880 512-byte logical blocks: (10.0 GB/9.36 GiB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesnt support DPO or FUA sda: sda1 sda2 sd 0:0:0:0: [sda] Attached SCSI disk dracut: Scanning devices sda2 for LVM volume groups EXT4-fs (sda1): barriers enabled kjournald2 starting: pid 535, dev sda1:8, commit interval 5 seconds EXT4-fs (sda1): internal journal on sda1:8 EXT4-fs (sda1): delayed allocation enabled EXT4-fs (sda1): mounted filesystem with ordered data mode SELinux: initialized (dev sda1, type ext4), uses xattr (...) Nota: Essa listagem pode ter sutis diferenas conforme particionamento do disco, sistema de arquivos etc. NOTA: Os dispositivos SCSI quando ligados na mesma placa recebem um endereamento nico que podemos chamar de SCSI ID. Esse cdigo de identificao SCSI simples e vai de 0 (zero) a 7 nas placas que operam a 8 bits e de 0 (zero) a 15 nas placas que operam a 16 bits. O identificador ID 7 reservado para as prprias placas. Tabela 101.1.7: Quadro das categorias dos dispositivos SCSI. Nome SCSI 1 SCSI 2 Wide SCSI Fast SCSI Fast Wide Bits 8 8 16 8 16 Descrio Transferncia de 5 MB/s, usa um cabo de 50 pinos. Transferncia de 5 MB/s, usa um cabo de 50 pinos, permite ligao de at 7 dispositivos na mesma controladora. Transferncia de 10 MB/s, usa um cabo de 68 pinos. Transferncia de 10 MB/s, usa um cabo de 50 pinos. Transferncia de 20 MB/s, usa um cabo de 68 pinos (a tecnologia foi melhorada).

Tpico 101.1: Identificao e configurao de hardware

21

Nome Ultra SCSI Ultra Wide SCSI

Bits 8 16

Descrio Transferncia de 20 MB/s, usa um cabo de 50 pinos. Transferncia de 40 MB/s, usa um cabo de 68 pinos, permite ligao de at 16 dispositivos na mesma controladora. Tambm chamada de SCSI 3. Transferncia de 320 MB/s, usa um cabo de 68 pinos. Taxa bem alta para transferncias.

Ultra SCSI 320

2 x 32

Atualmente tem-se um total de 8 (oito) categorias de dispositivos SCSI, sendo que a parte hardware desses dispositivos no entra no escopo dos exames LPI, mas o seu conhecimento sim, conforme a descrio. Para enderear um dispositivo SCSI em particular, o kernel adiciona alguns detalhes ao adaptador: host <nmero do adaptador>: O adaptador SCSI est em um bus SCSI. O nmero inicia-se em 0 (zero) e alocado aleatoriamente; bus <nmero do canal>: Um simples adaptador SCSI pode ter um nmero de bus SCSI adicionado a ele; target <nmero ID>: Controladora no bus SCSI sendo endereada; lun <nmero da unidade lgica>: Controladora com mltiplos dispositivos sendo endereadas. Assim como o comando lspci lista os dispositivos PCI, o comando lsscsi lista os dispositivos SCSI em seu sistema. No diretrio /proc/scsi voc encontrar informaes sobre SCSI; para isso, use o comando cat /proc/scsi/scsi o qual lista os dispositivos SCSI.
# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: VMware, Model: VMware Virtual S Type: Direct-Access Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: HL-DT-ST Model: RW/DVD GCC-4320B Type: CD-ROM Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: SMSC Model: USB FDC Type: Direct-Access Host: scsi4 Channel: 00 Id: 00 Lun: 00 Vendor: Sony Model: Sony DSC Type: Direct-Access

Rev: 1.0 ANSI SCSI revision: 02 Rev: 1.00 ANSI SCSI revision: 05 Rev: 2.10 ANSI SCSI revision: 00 Rev: 6.00 ANSI SCSI revision: 00

Para listar os diretrios dos dispositivos SCSI:


# ls -l /proc/scsi total 0 dr-xr-xr-x. 2 root -r--r--r--. 1 root -r--r--r--. 1 root dr-xr-xr-x. 2 root dr-xr-xr-x. 2 root

root root root root root

0 0 0 0 0

2010-03-18 2010-03-18 2010-03-18 2010-03-18 2010-03-18

15:00 15:00 15:00 15:00 15:00

BusLogic device_info scsi sg usb-storage

Observe que temos um diretrio para dispositivos USB e temos um de nmero 3. Para saber que o tal do dispositivo, basta um simples comando cat. E pelo jeito uma unidade de disquete externa:

22

Tpico 101: Arquitetura do Sistema

# ls -l /proc/scsi/usb-storage/ total 0 -rw-r--r--. 1 root root 0 2010-03-18 15:00 3 # cat /proc/scsi/usb-storage/3 Host scsi3: usb-storage Vendor: Sony Product: Sony DSC Serial Number: None Protocol: 8070i Transport: Control/Bulk Quirks: SINGLE_LUN

O kernel do Linux pode tratar dispositivos SCSI de modo transparente, porm, tome cuidado com alguns dispositivos meio ortodoxos que existem por a. Procure documentao para poder obter a melhor performance desses tipos de dispositivos. Os dispositivos SCSI precisam ser carregados pelo kernel se estiverem em forma de mdulos ou, ento, quando da compilao do kernel, a opo para o dispositivo deve ser inclusa nele. Para ver os mdulos (drive) para dispositivos SCSI que esto carregados. Fique atento quanto localizao desse arquivo, bem como seu nome conforme a distribuio em uso:
# cat /etc/modprobe.conf alias eth0 pcnet32 alias scsi_hostadapter mptspi alias scsi_hostadapter1 libata alias scsi_hostadapter2 ata_piix alias snd-card-0 snd-ens1371 options snd-card-0 index=0 options snd-ens1371 index=0 (...)

Algumas distribuies no usam mais o arquivo /etc/modprobe.conf, mas sim o diretrio /etc/modprobe.d/ onde se localizam vrios arquivos de mdulos. A ideia seria descentralizar para ficar mais fcil:
# ls -l /etc/modprobe.d/* -rw-r--r--. 1 root root 52 -rw-r--r--. 1 root root 845 -rw-r--r--. 1 root root 16 conf -rw-r--r--. 1 root root 5616 -rw-r--r--. 1 root root 473 -rw-r--r--. 1 root root 26 2010-03-18 15:00 /etc/modprobe.d/anaconda.conf 2010-03-18 15:00 /etc/modprobe.d/blacklist.conf 2010-03-18 15:00 /etc/modprobe.d/blacklist-visor. 2010-03-18 15:00 /etc/modprobe.d/dist.conf 2010-03-18 15:00 /etc/modprobe.d/dist-oss.conf 2010-03-18 15:00 /etc/modprobe.d/floppy-pnp.conf

NOTA: Os arquivos /etc/conf.modules (kernel 2.2.x), /etc/modules.conf (kernel 2.4.x) e /etc/modprobe.conf (kernel 2.6.x), possuem apenas leves mudanas em seus nomes, mas tm o mesmo objetivo que o arquivo que informa ao kernel quais mdulos carregar.

Configurao bsica de placas de expanso


Voc dever estar apto a configurar alguns tipos de cartes/placas em seu sistema mediante a identificao das informaes do seu hardware. Voc dever conhecer

Tpico 101.1: Identificao e configurao de hardware

23

a diferena entre cartes PCI e ISA e como configur-los em seu sistema. Como objetivo, os exames incluem a correta configurao pelas IRQs, DMA e portas I/O dos respectivos cartes, especialmente se houver conflito entre eles. Tambm est incluso o uso do isapnp se, por exemplo, a placa em questo for um dispositivo ISA PNP padro. O conhecimento a ser usado aqui muito simples e muito fcil, e j foram at mesmo comentados e ensinados nesse captulo. Ento, vamos revis-los. importante saber usar os arquivos de informao os quais podem ser usados junto com os comandos cat, more ou less. Os arquivos de informao so: /proc/dma, /proc/interrupts, /proc/ioports e /proc/pci. Tambm importante saber usar os comandos de informao direta que so: pnpdump, isapnp, lspci, lsusb e lsscsi. Para os exames LPI importante que voc no tenha dvidas sobre hardware e seus parmetros com (IRQ, DMA e I/O). Entender como funciona o diretrio /proc e seus arquivos de informao, placas ISA PNP, e como configurar e ler a hora do sistema e do hardware. O que vem a ser uma placa de expanso? Simples, um circuito eletrnico encaixado na placa me que tem por objetivo adicionar novas funcionalidades ao computador. Esta placa pode ser uma: Placa de som: Fornece suporte ao computador para sons, msicas, ligar um joystick, etc; Placa de Fax-modem: Fornece suporte ao computador para enviar/receber fax, conectar-se internet, BBS, acesso remoto, bina, etc; Placa de rede: Fornece suporte ao computador para permitir a comunicao com outros computadores em uma rede interna ou na Internet; Placa controladora de perifricos: Fornece suporte ao computador para ligar discos rgidos, unidades de disquete, impressora, mouse, joystick, etc; Placa SCSI: Fornece suporte ao computador para ligar unidades de disco rgidos e perifricos de alto desempenho; Placa controladora de scanner: Fornece suporte ao computador para ligar um scanner externo.

A arquitetura BUS
O BUS , fisicamente falando, um conjunto de condutores paralelos com a funo de conectar componentes/dispositivos em um computador. Esses componentes usam o bus para comunicao enviando sinais eltricos de um para outro. Os componentes que so conectados pelo bus so, por exemplo, a CPU, as memrias RAM e ROM e os perifricos/dispositivos, como o controlador de interrupo, o adaptador de vdeo, a interface de disco etc. Os recursos alocados pelo bus, tanto em PCI quanto ISA, podem ser: Endereo de entrada e sada (I/O) para um especfico componente como o endereamento I/O da prpria CPU. Logo j se percebe porque o sistema bus (I/O) no pode ser compartilhado; O endereamento de memria para ler e escrever em uma determinada localizao na memria. A CPU usa esses endereamentos de memria; As IRQs para quando um dispositivo qualquer precisar de enlaces de tempo da CPU. O bus inteligente, pois tem o nmero da interrupo o qual habilita o kernel a saber qual dispositivo causou uma interrupo;

24

Tpico 101: Arquitetura do Sistema

Se dois dispositivos compartilham uma mesma IRQ, pode acontecer de haver uma requisio ao mesmo tempo e o kernel responder a ambas de acordo com suas prioridades; O acesso direto memria (DMA) permite que dispositivos copiem dados diretamente da memria sem interveno da CPU. Isso permite uma melhoria na performance, mas no possvel o compartilhamento de canais DMA entre esses dispositivos.

A identificao BUS
Atravs da numerao bus que j conhecemos possvel saber mais um monte de informaes, pois dispositivos PCI incluem alguns recursos de identificao como parte de sua especificao. Por exemplo, sabemos que para uma placa de rede funcionar, ela precisa de um mdulo no sistema Linux, e esse mdulo deve ser lido pelo kernel. E para pesquisarmos por esse tipo de informao, um dos comandos mais usados o comando lspci. O comando lspci tem a seguinte sintaxe:
# lspci [opes]

As opes mais comuns so (para mais informaes use o comando man lspci ou info lspci): -k: Muito til, pois informa que mdulo do kernel est anexado ao dispositivo PCI; -m: Exibe informaes com mais detalhes que o simples comando lspci; -mm: Semelhante ao -m, porm com mais detalhes ainda; -n e -nn: Mostra codificao dos dispositivos e codificao, mais informaes do vendedor; -s e -d: Usado para pesquisas com mais detalhes sobre um dispositivo especifico; -v: Modo verboso; Para saber qual mdulo (driver) do kernel responsvel pelo dispositivo PCI, por exemplo. Aqui percebemos que o mdulo da interface de rede o pcnet32.
# lspci -k (...) 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50) Subsystem: ASUSTeK Computer Inc. A7V8X-X Motherboard Kernel driver in use: VIA 82xx Audio Kernel modules: snd-via82xx 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74) Subsystem: ASUSTeK Computer Inc. A7V8X-X Motherboard Kernel driver in use: via-rhine Kernel modules: via-rhine 01:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 440 AGP 8x] (rev a2) Kernel modules: nouveau

Os mdulos no sistema Linux terminam em .ko ou .o. Veja como saber onde ele est, o que nesse caso descobrimos que est em ../../drivers/net:
# locate pcnet32 | egrep .ko$|.o$ /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/drivers/net/pcnet32.ko

Tpico 101.1: Identificao e configurao de hardware

25

Para saber como essa interface de rede trabalha quando da transmisso/recepo, basta usar o comando modinfo com um filtro simples de comando grep. Veja:
# modinfo $(locate pcnet32 | egrep .ko$|.o$) | grep plex parm: full_duplex:pcnet32 full duplex setting(s) (1) (array of int

Para o comando anterior, se desejar as informaes tcnicas do dispositivo, basta retirar o filtro grep:
# modinfo $(locate pcnet32 | egrep .ko$|.o$) filename: /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/drivers/net/ pcnet32.ko license: GPL description: Driver for PCnet32 and PCnetPCI based ethercards author: Thomas Bogendoerfer srcversion: BE4E52164A7079455A3B16D alias: pci:v00001023d00002000sv*sd*bc02sc00i* alias: pci:v00001022d00002000sv*sd*bc*sc*i* alias: pci:v00001022d00002001sv*sd*bc*sc*i* depends: mii vermagic: 2.6.31.5-127.fc12.i686.PAE SMP mod_unload 686 parm: debug:pcnet32 debug level (int) parm: max_interrupt_work:pcnet32 maximum events handled per interrupt (int) parm: rx_copybreak:pcnet32 copy breakpoint for copy-only-tiny-frames (int) parm: tx_start_pt:pcnet32 transmit start point (0-3) (int) parm: pcnet32vlb:pcnet32 Vesa local bus (VLB) support (0/1) (int) parm: options:pcnet32 initial option setting(s) (0-15) (array of int) parm: full_duplex:pcnet32 full duplex setting(s) (1) (array of int) parm: homepna:pcnet32 mode for 79C978 cards (1 for HomePNA, 0 for Ethernet, default Ethernet (array of int)

O cdigo do dispositivo de interface de rede 00:12.00 (para esse hardware); e para saber informaes mais especficas sobre ele podemos fazer uma pesquisa direta. Nos exemplos a seguir poderamos usar tambm 12:0:
# lspci -s 12.0 Pesquisa direta sem detalhes. 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74) # lspci -s 12.0 -v Pesquisa direta com detalhes. 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74) Subsystem: ASUSTeK Computer Inc. A7V8X-X Motherboard Flags: bus master, stepping, medium devsel, latency 32, IRQ 23 I/O ports at a800 [size=256] Memory at ef800000 (32-bit, non-prefetchable) [size=256] Capabilities: [40] Power Management version 2 Kernel driver in use: via-rhine Kernel modules: via-rhine

Usando o comando lspci, podemos consultar informaes dos tipos de mdulos que o kernel poder trabalhar.
# lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge 00:01.0 PCI bridge: VIA Technologies, Inc. VT8235 PCI Bridge 00:0c.0 Multimedia audio controller: Cirrus Logic Crystal CS4281 PCI Audio (rev 01)

26

Tpico 101: Arquitetura do Sistema

00:0e.0 Communication controller: Agere Systems V.92 56K WinModem (rev 02) 00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) 00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) 00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) 00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge 00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/ A/C PIPC Bus Master IDE (rev 06) 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50) 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74) 01:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 440 AGP 8x] (rev a2)

Conseguiu entender at aqui? Bom, e agora? Qual o prximo passo? Use o lspci -n para sada resumida.
# lspci 00:00.0 00:01.0 00:0c.0 00:0e.0 00:10.0 00:10.1 00:10.2 00:10.3 00:11.0 00:11.1 00:11.5 00:12.0 01:00.0 -n 0600: 0604: 0401: 0780: 0c03: 0c03: 0c03: 0c03: 0601: 0101: 0401: 0200: 0300: 1106:3189 1106:b168 1013:6005 11c1:048c 1106:3038 1106:3038 1106:3038 1106:3104 1106:3177 1106:0571 1106:3059 1106:3065 10de:0181

(rev (rev (rev (rev (rev (rev (rev (rev (rev (rev

01) 02) 80) 80) 80) 82) 06) 50) 74) a2)

Para uma listagem resumida, mas com informaes mais teis como o cdigo do vendedor e dos dispositivos:
# lspci -nn 00:00.0 Host bridge [0600]: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge [1106:3189] 00:01.0 PCI bridge [0604]: VIA Technologies, Inc. VT8235 PCI Bridge [1106:b168] 00:0c.0 Multimedia audio controller [0401]: Cirrus Logic Crystal CS4281 PCI Audio [1013:6005] (rev 01) 00:0e.0 Communication controller [0780]: Agere Systems V.92 56K WinModem [11c1:048c] (rev 02) 00:10.0 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 80) 00:10.1 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 80) 00:10.2 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 80) 00:10.3 USB Controller [0c03]: VIA Technologies, Inc. USB 2.0 [1106:3104] (rev 82) 00:11.0 ISA bridge [0601]: VIA Technologies, Inc. VT8235 ISA Bridge [1106:3177] 00:11.1 IDE interface [0101]: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/ VT823x/A/C PIPC Bus Master IDE [1106:0571] (rev 06)

Tpico 101.1: Identificao e configurao de hardware

27

00:11.5 Multimedia audio controller [0401]: VIA Technologies, Inc. VT8233/ A/8235/8237 AC97 Audio Controller [1106:3059] (rev 50) 00:12.0 Ethernet controller [0200]: VIA Technologies, Inc. VT6102 [Rhine-II] [1106:3065] (rev 74) 01:00.0 VGA compatible controller [0300]: nVidia Corporation NV18 [GeForce4 MX 440 AGP 8x] [10de:0181] (rev a2)

Para uma listagem detalhada de todos os dispositivos, porm, aqui s tem o que nos interessa no momento:
# lspci -vvv (...) 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74) Subsystem: ASUSTeK Computer Inc. A7V8X-X Motherboard Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErrStepping+ SERR- FastB2B- DisINTxStatus: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort<MAbort- >SERR- <PERR- INTxLatency: 32 (750ns min, 2000ns max), Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 23 Region 0: I/O ports at a800 [size=256] Region 1: Memory at ef800000 (32-bit, non-prefetchable) [size=256] Capabilities: [40] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PMEKernel driver in use: via-rhine Kernel modules: via-rhine (...) DICA: Os mdulos no sistema Linux possuem a extenso .ko ou .o e, geralmente, residem dentro do diretrio /lib/modules/verso_do_kernel/kernel/drivers/. Eles so carregados dinamicamente com os comandos insmod ou modprobe e podem ser declarados no arquivo /etc/modprobe.conf.

Foi usado aqui como exemplo um carto/placa de rede modelo Pcnet32 como nica placa de rede. Para que ele seja carregado automaticamente, umas das alternativas seria usar uma chamada para o carregamento desse mdulo no arquivo /etc/ modprobe.conf. Ento, sua interface era a eth0. Quando estiver mais de uma interface de rede presente no sistema, a prxima interface eth1, e assim por diante. O contedo do arquivo modprobe.conf muda conforme o seu hardware e conforme a distribuio, e em raros casos (antes era comum), o administrador precisar editar esse arquivos e criar manualmente as entradas para os mdulos (drivers) para o sistema funcionar adequadamente com determinado tipo de hardware. Veja um exemplo desse arquivo em uma distribuio Red Hat:
# ls /etc/modprobe.conf (...) alias usb-uhci uhci-hcd alias usb-ohci ohci-hcd alias uhci uhci-hcd alias alias alias alias char-major-116-* snd sound-service-*-0 snd-mixer-oss sound-service-*-1 snd-seq-oss sound-service-*-3 snd-pcm-oss

28

Tpico 101: Arquitetura do Sistema

alias sound-service-*-8 snd-seq-oss alias sound-service-*-12 snd-pcm-oss install sound-slot-* slot[_-]} /sbin/modprobe snd-card-${MODPROBE_MODULE##sound[_-]

alias nfs4 nfs alias rpc_pipefs sunrpc alias rpc_svc_gss_pipefs sunrpc install eth1394 /bin/true (...) Nota: Dependendo da distribuio e do que foi instalado e o tipo de hardware, esse arquivo apresenta sutis diferenas.

Algumas distribuies atuais mudaram a ideia desse arquivo, pois agora usam o diretrio /etc/modprobe.d/ e, dentro dele, os arquivos de mdulos. Dessa forma, ficou menos centralizado para oferecer um melhor controle:
# ls /etc/modprobe.d/ anaconda.conf blacklist-visor.conf blacklist.conf dist-alsa.conf dist.conf dist-oss.conf floppy-pnp.conf openfwwf.conf

Nota: Dependendo da distribuio e do que foi instalado e o tipo de hardware, outros arquivos podero estar presente nesse diretrio.

Mdulos para placas de rede existem aos milhares para Linux, para carregar via linha de comando um mdulo para uma placa de rede como o mdulo via-rhine, por exemplo. Esses comandos carregam o mdulo para a memria e o kernel faz o devido tratamento. Geralmente, quando usamos o comando isnmod, precisamos passar o caminho completo, e com o comando modprobe, apenas o nome do mdulo:
# insmod /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/drivers/net/via-rhine. ko ou # modprobe via-rhine

Para verificar via linha de comando se esse mdulo est carregado:


# lsmod | grep rhine via_rhine mii 19872 4028 0 1 via_rhine

NOTA: O comando rmmod <mdulo> remove, ou tenta remover, um mdulo da memria. Tome muito cuidado com ele, pois se voc remover um mdulo errado ter srios problemas, principalmente se esse mdulo for um mdulo de interface de rede. Todas as suas conexes de rede estaro seriamente comprometidas.

Quando o mdulo j faz parte da instalao do sistema, tudo funciona a mil maravilhas; mas e se o mdulo existe, porm no veio com o sistema? Bom, a precisaremos ler as instrues na pgina do desenvolvedor de como fazer o procedimento correto. Lembre-se que uma entrada no arquivo /etc/modules.conf ou /etc/conf. modules ou /etc/modprobe.conf para esse mdulo dever existir, e o mdulo dever ser copiado em um local padro do sistema para que os comandos

Tpico 101.1: Identificao e configurao de hardware

29

de pesquisa e gerao de cache funcionem. S para exemplificar, usaremos o mdulo pcnet32.ko, o qual dever ser copiado no local correto. E na sequncia, execute o comando depmod -va para que seja criado/verificado o arquivo /lib/modules/2.6.29.4-167.fc11.i686.PAE/modules.dep se o mdulo mais novo ou no, e para que ele possa estar ativo no sistema na prxima inicializao. A funo desse arquivo guardar o caminho para os diversos mdulo do sistema. Essa listagem para o kernel PAE presente no sistema:
# grep rhine /lib/modules/2.6.29.4-167.fc11.i686.PAE/modules.dep --color kernel/drivers/net/via-rhine.ko: kernel/drivers/net/mii.ko

Agora, por ltimo (faa a pesquisa anteriormente mostrada para saber como identificar o nmero/cdigo do dispositivo PCI), usaremos o comando lspci -s 12.0 -v que vai listar mais informaes sobre a interface de rede (identificao 12:0):
# lspci -s 12:0 -v ou lspci -s 00:12.0 -v Pesquisa direta com detalhes. 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74) Subsystem: ASUSTeK Computer Inc. A7V8X-X Motherboard Flags: bus master, stepping, medium devsel, latency 32, IRQ 23 I/O ports at a800 [size=256] Memory at ef800000 (32-bit, non-prefetchable) [size=256] Capabilities: [40] Power Management version 2 Kernel driver in use: via-rhine Kernel modules: via-rhine Nota: Se desejar apenas a linha informativa, retire o parmetro -v.

Se tudo funcionou, poderemos consultar as informaes quando do procedimento de inicializao atravs do comando dmesg.
# dmesg | grep via-rhine via-rhine.c:v1.10-LK1.4.3 2007-03-06 Written by Donald Becker via-rhine 0000:00:12.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23

Os dispositivos PCI so identificados por um nico ID como se fosse um endereo MAC de uma placa de rede. As informaes sobre essa identificao, dependendo da distribuio, podem ficar em diretrios um pouco diferentes: /usr/share/pci.ids: Para uma distribuio SuSE; /usr/share/hwdata/pci.ids: Para uma distribuio Red Hat ou Debian; /usr/share/mics/pci.ids: Uma distribuio Debian mais antiga. Os arquivos anteriores podem ser visualizados com o comando cat, more ou less, e o comando update-pciids faz uma atualizao desses arquivos da internet baseado na hora atual:
# update-pciids --15:00:00-- http://pciids.sourceforge.net/pci.ids.bz2 => `/usr/share/pci.ids.new Resolving pciids.sourceforge.net...

Algumas informaes que so necessrias saber so: O suporte Linux para PCI (Bus ID=00) completo e no precisa de configurao manual;

30

Tpico 101: Arquitetura do Sistema

O AGP PCI bus (Bus ID=01) reservado para cartes/placa de vdeo e tem apenas um slot (encaixe) feito para transferncia de dados entre chip de vdeo e o PC; O sistema de endereamento para o bus PCI segue a mesma lgica do endereamento SCSI: BusNo:SlotNo:FunoNo (Dispositivo No); O comando lspci usado para listar dispositivos PCI no sistema e tambm retorna o fabricante a partir do arquivo /usr/share/pci.ids. Se usarmos o parmetro -n no ser feita a leitura a partir desse arquivo. A partir do kernel 2.1.82 h mais informaes sobre os dispositivos PCI no diretrio /proc/pci; As portas seriais, conhecidas como COM 1, COM 2 etc no sistema Linux, so referenciadas como ttyS0, ttyS1 etc, e as impressoras paralelas, como lpt1, lpt2, so referenciadas como lp0, lp1 etc.

Configurao bsica de dispositivos de comunicao


Os conhecimentos para essa parte so praticamente os mesmos usados para a configurao do modem, com a diferena que aqui tem mais algumas observaes importantes. Os mesmos objetivos requisitados para a configuraes do modem so requisitados aqui e mais alguma complementao sobre protocolos.

Funcionamento de uma conexo PPP


As redes como, por exemplo, a ethernet, frame relay e ATM conectam um nmero muito grande de computadores entre si, e cada computador conectado nessa rede pode trocar informaes com diferentes tipos de computadores simultaneamente sobre a mesma conexo. Uma das formas mais comuns de interconexo a ponto a ponto (p2p), e um exemplo disso o seu computador conectado ao computador do seu provedor de acesso. E para esse tipo de conexo h vrios mtodos para disponibiliz-las: Modem analgico: Usando uma linha telefnica do computador para o computador do provedor onde os modems podem conversar entre si, e dessa conversa passa a existir uma conexo; Modem ISDN: praticamente a mesma ideia que o modem analgico, porm aqui o sinal digital; Modem DSL: Aqui j um pouco mais complexo, pois aproveitamos a mesma banda de voz para usar dados. Esses modems so sofisticados e podem at mesmo ter implementaes de Firewall embutida neles. A funo elementar do modem prover um canal de comunicao em duas direes, e para isso, pode ser usado um protocolo de comunicao ponto a ponto (point to point) ou simplesmente PPP, o qual usa protocolos de rede para comunicao. Quando dois computadores esto interligados usando o protocolo PPP, um processo executado, o qual informaes so enviadas para o kernel para processamento de rede.

Modems analgicos
O protocolo PPP em modems analgicos requer autenticao em ambos os lados da conexo ponto a ponto. Geralmente funciona assim: iniciada uma discagem

Tpico 101.1: Identificao e configurao de hardware

31

para o provedor (ISP Internet Solution Provider) e l, ento, o servidor requisita a autenticao. Se estiver tudo certo, completa-se a conexo e um processo pppd passa a existir. Esse tipo de modem geralmente configurado da seguinte maneira: Usa uma das portas de comunicao do sistema como, por exemplo, /dev/ttyS0 ou /dev/ttyS1; Se o modem for WinModem, um mdulo especfico para o kernel dever ser carregado antes disso. Se for modem interno, dever ser configurado com o comando setserial; Ser necessrio o telefone do provedor para discar; Um nome de usurio (login) e uma senha (password) vlida;
DICA: Depois que esses requisitos estiverem todos certos, pode-se usar inmeros programas para configurar parmetros extras do protocolo PPP como o wvdial, kppp etc. No entanto, a explicao desses utilitrios est fora do escopo desse material.

H na maioria dos sistemas um script que podemos cham-lo com o comando / sbin/ifup ppp0 para ativar o link de comunicao. Como seria uma conexo usando ento o processo pppd? Simples, mas preciso fazer tudo mo. Vamos seguir o procedimento para ativar um link de comunicao com o provedor: Cria-se um arquivo texto chamado provedor no diretrio /etc/ppp/peers/. Esse arquivo vai ser consultado quando executarmos o comando pppd call provedor. O contedo dele :
/dev/cua0 38400 crtscts connect "chat /etc/ppp/lpi-isp/conectar" user adilson /dev/cua0 pode ser /dev/ttyS0.

Depois, cria-se um diretrio chamado lpi-isp dentro do diretrio /etc/ppp, e depois cria-se um arquivo chamado conectar (chamado de chap script) nesse diretrio com o seguinte contedo:
ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "ERROR" ABORT "NO ANSWER" ABORT "BUSY" ABORT "Username/Password incorreto..." "" "at" OK "at&d0&c1" OK "atdt11123456789" Telefone a ser chamado. CONNECT

Agora, dependendo do modo de autenticao que vai ser usado, o arquivo /etc/ppp/ chap-secrets ou /etc/ppp/pap-secrets deve conter o nome do usurio e a senha. Se quiser, pode-se colocar a mesma informao de um em outro. Esses arquivos apresentaro o seguinte contedo (nome de login e senha):
"adilson" * "lpi2010"

Agora s executar o comando pppd call provedor. Dependendo de como est configurado o syslogd vai ser gerado uma sada de log em /var/log/messages.

32

Tpico 101: Arquitetura do Sistema

Espere pela conexo, e depois navegue vontade. O protocolo CHAP mais seguro que o PAP porque criptografado, enquanto o outro no.

Modems DSL
Esses modems, que so muito populares, usam uma tcnica chamada PPP sobre Ethernet, ou pppoe. Nos CDs de sua distribuio instale esse pacote para ter os utilitrios corretos. Seu funcionamento simples e preciso que a placa de rede esteja configurada corretamente, e ento s seguir os passos para ter um link de comunicao com o provedor. Dependendo da distribuio a ser usada, cada uma pode trazer seus prprios utilitrios de configurao; e aps instalados os pacotes necessrios (geralmente quase todos) rp-pppoe-gui-[verso], rp-pppoe-server-[verso] e rp-pppoe[verso], estar presente tambm alguns scripts de conexo: adsl-connect, adsl-setup: Usado para conectar e configurar a autenticao em uma conta ADSL; adsl-start: Inicia uma conexo; adsl-status: Mostra status da conexo; adsl-stop: Para a conexo. Em algumas distribuies os comandos todos comeam com adsl; mas cuidado, pois na maioria das distribuies os comandos iniciam por ppp, sendo os comandos adsl-start e adsl-stop links para os comandos ppp responsveis. Veja:
# ppp <tab><tab> pppd pppoe pppoe-discovery pppoe-server pppoe-sniff p p p o e status pppstats pppdump pppoe-connect pppoe-relay pppoe-setup pppoe-start pppoe-stop ppp-watch # file $(which adsl-start) /usr/sbin/adsl-start: symbolic link to `../../sbin/pppoe-start # file $(which adsl-stop) /usr/sbin/adsl-stop: symbolic link to `../../sbin/pppoe-stop

Um utilitrio, o tkpppoe, para o modo grfico para o pacote pppoe poder ser encontrado em http://www.roaringpenguin.com/pppoe, caso sua distribuio no o tenha.

Configurao bsica de dispositivos USB


Voc dever estar apto a ativar e compreender o suporte a dispositivos USB Universal Serial Bus em um sistema Linux, o que de certa forma muito simples de ser feito. Nessa parte vamos aprender como fazer a seleo correta do chipset USB e os mdulos correspondentes. Tambm vamos ter uma base do modelo de camada da arquitetura bsica de dispositivos USB. O uso correto dos comandos para dispositivos USB e a compreenso dos mdulos e utilitrios de acordo com a verso do kernel.

Tpico 101.1: Identificao e configurao de hardware

33

A arquitetura USB
O USB Universal Serial Bus foi concebido com o intuito de facilitar a conexo de perifricos existentes para computador. Entre eles, esto os dispositivos mais comuns como teclados, mouses, impressoras e webcams, e placas de rede com fio ou wireless. Mas espere ver por a muita coisa extica como caixas de som, mini ventiladores, e, acredite, tem at barbeador e mini lanternas. Estou falando srio! Cada vez mais popular, o USB uma boa soluo para unificar e facilitar a adio de perifricos a um computador. Atualmente, a deteco e a configurao de dispositivos USB so feitas automaticamente atravs do subsistema hotplug e udev. Quando um dispositivo conectado ao barramento USB da mquina, o prprio kernel o reconhece e envia uma mensagem ao programa hotplug/udev, que se encarrega de carregar os mdulos necessrios ao seu funcionamento, bem como executar outras tarefas como, por exemplo, o acerto de permisses. Eventualmente, claro, pode haver um dispositivo muito recente que pode no ser suportado pelo kernel, a voc ter que arregaar as mangas e recompilar o kernel. Mas felizmente muitos fabricantes tm optado por padres como, por exemplo, o usb-storage, o que torna o perifrico totalmente suportado. O suporte ao padro USB em sistemas Linux est presente desde o kernel 2.2.18, mas a partir do kernel 2.4 que o suporte a esse padro melhorou muito. E a ideia do padro USB veio como uma mo na roda para todos os tipos de usurios; e quem for do tempo do kernel 2.0, sabe do que estou falando. O padro muito flexvel e muito funcional, basta plugar um dispositivo USB (mouse, cd-rom, scanner, cmera, pendrive, players, teclado, unidades de disquetes e fitas etc) que o sistema j detecta automaticamente. O barramento USB pode operar em velocidades baixas de 1,5 MB/s at velocidades altas como 12 MB/s. A configurao de dispositivos USB no sistema Linux extremamente simples e pode ser feito de duas maneiras: a frio e a quente onde: A frio (coldplug): Conecta-se todos os dispositivos USB, por exemplo, ligase o micro, e tudo vai sendo detectado automaticamente. Outros exemplos de dispositivos coldplug so placas PCI, ISA, e dispositivos IDE e pentes de memria; A quente (hotplug): Depois do micro ligado, conecta-se os dispositivos e aguardase um tempo para que o sistema detecte um novo hardware. Seu funcionamento simples. Assim que um dispositivo conectado ou desconectado, o hotplug dispara um evento que atualiza os arquivos de dispositivos em /dev (diretrio de dispositivos) e faz o devido reconhecimento do tipo de dispositivo.
NOTA: No entanto, o padro USB 1.0 tambm evoluiu e, em 1999, foi anunciada a verso 2.0 muito mais rpida que a anterior. O padro USB 1.0 permitia que 127 (cento e vinte e sete) dispositivos fossem conectados ao mesmo tempo e operava a velocidades de 12 Mbit/s. Porm, na prtica, a velocidade mxima no poderia ultrapassar 8,5 Mbit/s, nem mesmo sobre as melhores condies. Com a verso 2.0 do padro USB a velocidade mudou bastante e hoje se trabalha na velocidade de 480 Mbit/s, porm, a tecnologia USB 3.0 (xHCI) promete ser 10 (dez) vezes mais rpida que o USB 2.0.

34

Tpico 101: Arquitetura do Sistema

Para quem ainda no sabe, o padro USB foi desenvolvido em 1994, em conjunto com a Compac, Intel, NEC e Microsoft, e tinha os seguintes objetivos: a) facilidade de uso, b) PCs baseados em telefonia devem ser possveis e previstos, e c) portas de expanso, assim voc no fica limitado ao nmero fsico de portas do computador. Para ver como foi reconhecido seus dispositivos USB, use o comando:
# dmesg | grep usb | uniq usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb usb usb1: New USB device found, idVendor=1d6b, idProduct=0001 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: OHCI Host Controller usb usb1: Manufacturer: Linux 2.6.31.5-127.fc12.i686.PAE ohci_hcd usb usb1: SerialNumber: 0000:00:01.2 usb usb1: configuration #1 chosen from 1 choice usb usb2: New USB device found, idVendor=1d6b, idProduct=0001 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: OHCI Host Controller usb usb2: Manufacturer: Linux 2.6.31.5-127.fc12.i686.PAE ohci_hcd usb usb2: SerialNumber: 0000:00:01.3 usb usb2: configuration #1 chosen from 1 choice usbcore: registered new interface driver hiddev usbcore: registered new interface driver usbhid usbhid: v2.6:USB HID core driver usb 1-1: new low speed USB device using ohci_hcd and address 2 usb 1-1: New USB device found, idVendor=046d, idProduct=c016 usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 1-1: Product: Optical USB Mouse usb 1-1: Manufacturer: Logitech usb 1-1: configuration #1 chosen from 1 choice input: Logitech Optical USB Mouse as /devices/pci0000:00/0000:00:01.2/usb1/11/1-1:1.0/input/input2 generic-usb 0003:046D:C016.0001: input,hidraw0: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-0000:00:01.2-1/input0 SELinux: initialized (dev usbfs, type usbfs), uses genfs_contexts (...)

Agora foi anexada uma cmera digital e executado novamente o comando, e no final da listagem j est registrado o reconhecimento desse hardware. Acompanhe:
# dmesg | grep usb | uniq (...) usbcore: registered new interface driver hiddev usbcore: registered new interface driver usbhid usbhid: v2.6:USB HID core driver usb 1-6: new high speed USB device using ehci_hcd and address 6 usb 4-2: new full speed USB device using uhci_hcd and address 2 usb 4-2: not running at top speed; connect to a high speed hub usb 4-2: New USB device found, idVendor=054c, idProduct=0010 usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 4-2: Product: Sony DSC usb 4-2: Manufacturer: Sony usb 4-2: configuration #1 chosen from 1 choice usbcore: registered new interface driver usb-storage usb-storage: device found at 2 usb-storage: waiting for device to settle before scanning usb-storage: device scan complete

Tpico 101.1: Identificao e configurao de hardware

35

Agora identificamos esse hardware atravs do comando lsusb que semelhante ao lspci. Esse comando lsub possui alguns parmetros de pesquisa:
# lsusb # lsusb Bus 001 Device 001: ID 1d6b:0002 Bus 004 Device 002: ID 054c:0010 Cybershot/Mavica Digital Camera Bus 004 Device 001: ID 1d6b:0001 Bus 003 Device 001: ID 1d6b:0001 Bus 002 Device 001: ID 1d6b:0001

Linux Foundation 2.0 root hub Sony Corp. DSC-S30/S70/S75/F505V/F505/FD92/W1 Linux Foundation 1.1 root hub Linux Foundation 1.1 root hub Linux Foundation 1.1 root hub

Para listar informaes mais detalhadas sobre um dispositivo USB, nesse caso uma mquina digital da Sony anexada como mass storage (comportamento como pendrive), poderemos usar o comando lsusb -s bus:num -v, assim:
# lsusb -s 002.002 -v Bus 004 Device 002: ID 054c:0010 Sony Corp. DSC-S30/S70/S75/F505V/F505/FD92/W1 Cybershot/Mavica Digital Camera Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x054c Sony Corp. idProduct 0x0010 DSC-S30/S70/S75/F505V/F505/FD92/W1 Cybershot/Mavica Digital Camera bcdDevice 6.00 iManufacturer 1 Sony iProduct 2 Sony DSC (...)

O comando ls -F /proc/bus/usb/ lista os dispositivos conectados ao sistema, e nesse diretrio podem ser vistos dois arquivos (devices e drivers). Esses arquivos contm informaes sobre os dispositivos conectados ao sistema. Experimente usar o comando cat /proc/bus/usb/devices ou cat /proc/bus/usb/ drivers para fazer uma anlise.
# ls -F /proc/bus/usb/ 001/ 002/ 003/ 004/ devices

Veja como podemos identificar o hardware da mquina digital. No arquivo devices estaro presentes todos os dispositivos USB abertos no sistema:
# cat /proc/bus/usb/devices (...) T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=054c ProdID=0010 Rev= 6.00 S: Manufacturer=Sony S: Product=Sony DSC C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=ff Prot=01 Driver=usb-storage

36

Tpico 101: Arquitetura do Sistema

E: Ad=01(O) Atr=02(Bulk) MxPS= E: Ad=82(I) Atr=02(Bulk) MxPS= E: Ad=83(I) Atr=03(Int.) MxPS= (...)

64 Ivl=0ms 64 Ivl=0ms 8 Ivl=255ms

DICA: O diretrio /proc/bus/usb vai apresentar as entradas numeradas (001, 002, 003 ...) para cada dispositivo USB no sistema. Assim, para listar o contedo do dispositivo 1, usamos o comando ls /mnt/usb-storage/device-0/, por exemplo. A maioria das distribuies est montada nos dispositivos USB no diretrio /media.

A arquitetura dos mdulos USB


Embora ainda no seja exigido como conhecimento obrigatrio diretamente nos exames LPI, extremamente importante que saibamos como que o funcionamento da arquitetura dos mdulos USB, os quais so simples de se entender. Os principais mdulos USB so: HID (hid.o) Human Interface Device: Dispositivo para interface humana; Input Core (input.o): Dispositivos para entradas somente USB; keyboard (usbkbd.o): Mdulo para teclado; Mouse (usbmouse.o): Mdulo para mouse; Joystick (joydev.o): Mdulo para joystick; Impressora (printer.o): Mdulo para impressora; Armazenamento (usb-storage.o): Mdulo para dispositivos de armazenamento como pendrive, floppy, mquina digital, mp3 e etc. Os mdulos no sistema Linux tm o sufixo .o ou .ko e podem estar em diversos locais de seu sistema. Geralmente esto em /lib/modules, alguns esto em /sys/ module, e outros esto em /usr/lib etc. Mas os mdulos que nos interessam ficam em /lib/modules/2.6.29.4-167.fc11.i686.PAE/kernel/drivers/usb/, sendo 2.6.29, nesse caso, o kernel do sistema. Para as impressoras USB, quando o mdulo printer.o for carregado, em /dev/usb/lp0 vai ter a respectiva entrada para ela. Para uma lista completa dos mdulos USB em seu sistema, use o comando find, mas lembre-se que o seu sistema pode ter outros mdulos. Se retirarmos | fmt -w 80, teremos a listagem de um mdulo por linha.
# find /lib/modules/ -iname *usb* -exec basename {} \; | fmt -w 80 usb snd-usb-caiaq.ko snd-usb-lib.ko snd-usb-usx2y.ko snd-usb-us122l.ko snd-usb-audio.ko i2400m-usb.ko at76c50x-usb.ko p54usb.ko usb8xxx.ko ar9170usb.ko rt2x00usb.ko rt73usb.ko rt2500usb.ko rt2800usb.ko libertas_tf_usb.ko irda-usb.ko usb plusb.ko usbnet.ko pcwd_usb.ko bfusb.ko btusb.ko hfcsusb.ko usb_gigaset.ko i1480-dfu-usb.ko i2c-tiny-usb.ko at76_usb at76_usb.ko usbtouchscreen.ko lirc_igorplugusb.ko lirc_mceusb.ko lirc_ttusbir.ko ttusb-budget dvb-ttusb-budget.ko b2c2-flexcop-usb.ko smsusb.ko dvb-usb dvb-usb-dw2102.ko dvb-usb-gp8psk.ko dvb-usb-m920x.ko dvb-usb-ce6230.ko dvb-usb-digitv.ko dvb-usb-au6610.ko dvb-usb-dibusb-common.ko dvb-usb-a800.ko dvb-usb.ko dvb-usb-vp7045.ko dvb-usb-dib0700.ko dvb-usb-vp702x.ko dvb-usb-dtv5100.ko dvb-usb-gl861.ko dvb-usb-cinergyT2.ko dvb-usb-umt-010.ko dvb-usb-ttusb2.ko dvb-usb-af9015.ko dvb-usb-dibusb-mc.ko dvb-usb-dtt200u.ko dvb-usb-opera.ko dvb-usb-anysee.ko dvb-usb-af9005.ko dvb-usb-cxusb.ko dvb-usb-dibusb-mb.ko dvb-usb-af9005-remote.ko dvb-usb-nova-t-usb2.ko ttusb-dec (...)

Tpico 101.1: Identificao e configurao de hardware

37

Aqui tivemos uma listagem de mais de setenta mdulos para dispositivos USB. Esses mdulos so os mdulos modernos por apresentarem o sufixo .ko no nome do arquivo, porm, em kernel 2.2 o sufixo ser .o. O carregamento dinmico dos mdulos se d quando inserimos dispositivos USB, nesse ponto dois sistemas estaro disponveis dependendo da verso do kernel em uso:
hotplug: USB, PCMCIA e FireWire(ieee1394); usbmgr: Gerenciamento USB apenas para esses dispositivos. Presente em kernel 2.2.

Tipos de drivers e chipset USB


Atualmente h dois tipos oficiais de drivers e um terceiro que compatvel com os outros dois. Esses drivers so mdulos que podemos carregar no kernel do sistema devido s duas especificaes de controladores USB. usb-ohci.o: o OHCI Open Host Controller Interface (Compaq), que usado pela Nvidia. usb-uhci.o: o UHCI Universal Host Controller Interface (Intel) que padronizado, porm, simples em hardware, mas complexo em software. Tambm usado nos chipset VIA. usb-ehci.o: compatvel com os demais. Esse o USB 2.0 Para saber quais mdulos para os tipos de USB foram reconhecidos pelo kernel:
# dmesg | grep hci | uniq | nl 1 ehci_hcd: USB 2.0 Enhanced Host Controller (EHCI) Driver 2 ohci_hcd: USB 1.1 Open Host Controller (OHCI) Driver 3 ohci_hcd 0000:00:01.2: found PCI INT D -> IRQ 5 4 ohci_hcd 0000:00:01.2: sharing IRQ 5 with 0000:00:01.3 5 ohci_hcd 0000:00:01.2: OHCI Host Controller 6 ohci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 1 7 ohci_hcd 0000:00:01.2: irq 5, io mem 0xdffd0000 8 usb usb1: Manufacturer: Linux 2.6.31.5-127.fc12.i686.PAE ohci_hcd 9 ohci_hcd 0000:00:01.3: found PCI INT D -> IRQ 5 10 ohci_hcd 0000:00:01.3: sharing IRQ 5 with 0000:00:01.2 11 ohci_hcd 0000:00:01.3: OHCI Host Controller 12 ohci_hcd 0000:00:01.3: new USB bus registered, assigned bus number 2 13 ohci_hcd 0000:00:01.3: irq 5, io mem 0xdffe0000 14 usb usb2: Manufacturer: Linux 2.6.31.5-127.fc12.i686.PAE ohci_hcd 15 uhci_hcd: USB Universal Host Controller Interface driver 16 usb 1-1: new low speed USB device using ohci_hcd and address 2

Para esse padro USB, seu sistema vai apresentar os seguintes mdulos: ohci.o, uhci.o e ehci-hcd.o. Para sabermos quais desses mdulos seu sistema est usando simples:
# lspci -v | grep -i usb 00:01.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 07) (prog-if 10 [OHCI]) Subsystem: Silicon Integrated Systems [SiS] USB 1.1 Controller 00:01.3 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 07) (prog-if 10 [OHCI]) Subsystem: Silicon Integrated Systems [SiS] Onboard USB Controller)

38

Tpico 101: Arquitetura do Sistema

Tabela 101.1.8: Quadro dos fabricantes com modelo USB. OHCI (USB 1.0) Compac ALI NEC Opti Chipset UHCI (USB 1.1) Intel VIA ----EHCI (USB 2.0) Intel VIA NEC Phillips

O padro USB 2.0 (EHCI) tem suporte a partir do kernel 2.4.19, mas no kernel 2.6 que esse suporte est bem completo e melhorado como, por exemplo, alta velocidade de transferncia. Mas o seu hardware deve ser USB 2.0 para que essa sincronia seja completa. Para verificar se seu hardware tem algum suporte a USB 2.0, use o comando lspci -v | grep HCI. Arquivos ligados aos mdulos (ehci, ohci e uhci) ficam nesse caminho:
# ls -F /sys/bus/pci/drivers/ | grep hci ahci/ ehci_hcd/ ohci_hcd/ uhci_hcd/

Depois da montagem do sistema de arquivos propriamente dita, baseada no contedo do diretrio /proc/bus/usb, os mdulos usb-ohci ou usb-uhci so carregados, e cada diretrio numerado (001, 002, 003 etc) equivale a montagem de um dispositivo USB. E dentro desses diretrios h o respectivo arquivo numrico no formato binrio. O sistema Linux usa o arquivo /etc/conf.modules ou o /etc/modules.conf ou, ainda no caso de um sistema no muito antigo, o /etc/modprobe.conf. Esse arquivo tem a finalidade de guardar os mdulos que sero carregados pelo sistema. Ele consultado pelos programas modprobe e depmod. Aqui j percebemos que o sistema est usando OHCI.
# cat /etc/modprobe.conf | grep -i usb alias usbdevfs usbcore alias usb ohci-hcd

Os mdulos (drivers) no sistema Linux so arquivos que tem o sufixo .o ou .ko. Veja esse exemplo:
# find /lib/modules/2.6.31.5-127.fc12.i686.PAE/ -iname "*.ko" -print | grep audio /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/pcmcia/pdaudiocf/sndpdaudiocf.ko /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/usb/snd-usb-audio.ko /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/pci/echoaudio/sndlayla20.ko /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/pci/echoaudio/snd-mona.ko /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/pci/echoaudio/snd-mia.ko /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/pci/echoaudio/snd-indigo. ko

Tpico 101.1: Identificao e configurao de hardware

39

/lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/pci/echoaudio/snddarla24.ko /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/pci/echoaudio/snddarla20.ko /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/pci/echoaudio/snd-echo3g. ko /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/pci/echoaudio/sndindigoio.ko /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/sound/pci/echoaudio/sndindigoiox.ko (...)

Como o padro USB tornou-se muito popular, veja os mdulos para USB encontrados nos sistemas Linux: mousedev: Mouse USB e keybdev: Teclado USB; usb-storage: CD-ROM, HD, ZIP drive, e/ou pen-drives e mquinas fotogrficas digitais; audio: Placas de som USB e joydev: Joystick USB. Os mdulos ativos para dispositivos USB ficam no arquivo /etc/modules.conf, mas dependendo da distribuio pode haver uma pequena mudana no nome desse arquivo, como /etc/modprobe.conf, ou at mesmo uma nova lgica de organizao de arquivos de mdulos. Portanto, fique atento. A seguir, veja o exemplo de um arquivo desses com mdulos USB para alguns dispositivos. Esse arquivo est presente em distribuies mais antigas:
# cat /etc/modules.conf (...) alias usb uhci post-install uhci modprobe printer post-install printer modprobe joydev post-install joydev modprobe hid

Montagem de dispositivos USB


Como a grande maioria dos dispositivos USB reconhecida automaticamente no sistema Linux, basta espet-los em uma porta USB que a montagem ser automtica e ser criado um cone na rea de trabalho do usurio representando aquele dispositivo. At aqui tudo bem, mas nem sempre assim. E se, por algum motivo, o dispositivo no for montado automaticamente? E se o objetivo for fazer um acesso ao dispositivo via shell script? Pois , tem horas que interessante a montagem automtica, e tem horas que no. Mas, como proceder? Simples. Entenda que os discos podem ser IDE ou SCSI/ SATA. Sendo assim, para os discos IDE temos a nomenclatura hda, hdb, hdc etc e para os discos SCSI temos a nomenclatura sda, sdb, sdc etc. E sabendo disso, as distribuies tratam os dispositivos USB que armazenam dados como um segundo disco, e as distribuies mais modernas reservam sdb ou sdc para os dispositivos USB. Ento, se h apenas um disco hda ou das, o dispositivo USB ser reconhecido como sdb1, mas preciso uma verificao para ter mais certeza, pois pequenas mudanas podem ocorrer.

40

Tpico 101: Arquitetura do Sistema

Primeiramente uma pesquisa, e descobrimos que o disco sda tem trs parties:
# dmesg | grep sda sd 0:0:0:0: [sda] 156250000 512-byte hardware sectors: (80.0 GB/74.5 GiB) (...) sda: sda1 sda2 sda3 sd 0:0:0:0: [sda] Attached SCSI disk EXT3 FS on sda2, internal journal

Seguindo essa linha de pensamento, descobrimos que o dispositivo USB foi reconhecido como sdb1. Esse o procedimento correto para todos os dispositivos USB, caso eles no sejam detectados automaticamente em modo grfico. E pelo modo texto usamos essa ideia:
# dmesg | grep sdb sd 2:0:0:0: [sdb] 4014080 512-byte hardware sectors: (2.05 GB/1.91 GiB) (...) sd 2:0:0:0: [sdb] Assuming drive cache: write through sdb: sdb1 sd 2:0:0:0: [sdb] Attached SCSI removable disk

O objetivo de podermos acessar esse dispositivo e sabermos que o nosso disco principal do tipo sda e que o disco secundrio sdb foi reconhecido. O grande macete voc entender que esses dispositivos usam armazenamento ou servem para isso. O padro do sistema de arquivos deles adotado FAT (Windows) ou VFAT (Linux). Assim, em nosso exemplo, pela nossa anlise sabemos que sdb1 ser usado para acessar a mquina digital a qual, nesse caso, possui memria para armazenamento e funciona como disco. Ento criaremos no diretrio /media um diretrio para esse dispositivo:
# mkdir /media/sony

E agora as respectivas montagens dos dispositivos (lembrando que eles no esto montados). Aps isso, o usurio poder gravar seus arquivos normalmente. O sdb1 foi usado porque esse dispositivo foi reconhecido assim. Proceda de forma semelhante para outros dispositivos:
# mount -t vfat /dev/sdb1 /media/sony

Agora s usar o dispositivo, mas lembre-se que, se no for mais usar o dispositivo, ter que desmont-lo, e para isso no poder estar dentro dele. Para desmontar esses dispositivos use os comandos a seguir:
# umount /media/sony

Tpico 101.1: Identificao e configurao de hardware

41

RESUMOS IMPORTANTES PARA O EXAME LPIC1 - 117-102: Conhecimento chave: Ativar/desativar perifricos integrados ao sistema. Configurao do sistema para inicializar sem perifricos externos, como teclados Diferenciar os vrios tipos de mdias de armazenamento. Conhecer o identificador (ID) de hardware correto para os diversos tipos de dispositivos Conceituar os termos coldplug e hotplug. Identificar os recursos de hardware de um dispositivo qualquer. Uso de ferramentas de informao de hardware como lspci, lsdev, lsusb, hwinfo e afins. Conhecer ferramentas de manipulao de dispositivos USB. Conceituar os termos sysfs, udev, hald, dbus e afins. Os seguintes itens so uma listagem parcial dos arquivos usados, termos e utilitrios: /sys, /proc, /dev, modprobe. lsmod, lspci, lsusb.