Tpico 101: Arquitetura do sistema 101.1: Identifcao e confgurao 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 confgurao de modems a placas de som, bem como sua nomenclatura tcnica. BIOS e componentes principais Muita gente sabe o que BIOS, mas no consegue defnir 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 confguraes de forma automtica, mas alguns dispositivos requerem alguns acertos, e isso feito manualmente para ajustes mais fnos. 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; 4 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 fcam armazenadas as confguraes do computador feitas pelo programa residente em BIOS. BIOS modernas so muito fceis de confgurar, ao contrrio de BIOS antigas onde tnhamos que praticamente jampear tudo na mo. Todo computador pode ter a parte BIOS confgurada 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 confgurar o computador modifcando os valores localizados na CMOS (memria temporria alimentada por uma bateria onde so lidas/armazenadas as confguraes 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 identifcam 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: Identifcao e confgurao de hardware 5 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 confgurao da BIOS, uma bateria que guarda as confguraes, 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 Descrio ISA 8 Bits o Industry Standard Architecture. Esse um padro antigo e pode ainda ser encontrado nos velhos computadores PC/XT, se ainda existirem. ISA 16 Bits a evoluo do ISA 8 bits. Permite uma taxa de transferncia de 2 MB/s e seu conector maior. VESA o Video Electronics Standard Association. Foi feito para placas de vdeo rpidas. Apresenta taxa de transferncia que pode chegar a 132MB/s. EISA 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. MCA o Micro Channel Architecture (32 bits). Desenvolvido pela IBM e foi usado nos antigos PS/1 e PS/2. PCI 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). AGP o Accelerated Graphics Port. novo e foi criado exclusivamente para a ligao de placas de vdeo. Muito bom para processamento de jogos. PCMCIA 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. 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. 6 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/ t ot al 2 - r - - r - - r - - . 1 r oot r oot 0 2010- 03- 18 15: 00 dr i ver s l r wxr wxr wx. 1 r oot r oot 8 2010- 03- 18 15: 00 hda - > i de0/ hda l r wxr wxr wx. 1 r oot r oot 8 2010- 03- 18 15: 00 hdc - > i de1/ hdc dr - xr - xr - x. 3 r oot r oot 0 2010- 03- 18 15: 00 i de0 dr - xr - xr - x. 3 r oot r oot 0 2010- 03- 18 15: 00 i de1 - r - - r - - r - - . 1 r oot r oot 0 2010- 03- 18 15: 00 si s Para disco SCSI use o comando: # ls -l /proc/scsi t ot al 0 - r - - r - - r - - . 1 r oot r oot 0 2010- 03- 18 15: 00 devi ce_i nf o - r - - r - - r - - . 1 r oot r oot 0 2010- 03- 18 15: 00 scsi dr - xr - xr - x. 2 r oot r oot 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 At t ached devi ces: Host : scsi 0 Channel : 00 I d: 00 Lun: 00 Vendor : ATA Model : ST380011A Rev: 3. 16 Type: Di r ect - Access ANSI SCSI r evi si on: 05 Host : scsi 1 Channel : 00 I d: 00 Lun: 00 Vendor : HL- DT- ST Model : RW/ DVD GCC- 4320B Rev: 1. 00 Type: CD- ROM ANSI SCSI r evi si on: 05 H dois comandos teis, o hwi nf o e o hwscan, os quais tm a funo de mostrar informaes e varrer dispositivos no computador. Alm desses, em algumas distribuies h o di scover (Debian), o kudzu (Red Hat), o l sdev (maioria dos sistemas Linux) e o hwset up- knoppi x (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: Identifcao e confgurao de hardware 7 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 Barramento Descrio DMA 0 8/16 bits Livre, mas usado por circuitos de memria RAM. DMA 1 8/16 bits Utilizado por placas de som (canal 8 bits), porta paralela ECP, adaptadoras SCSI, placas de rede ou controladora de scanner. DMA 2 8/16 bits Utilizado pela controladora de disquete e controladoras de fitas. DMA 3 8/16 bits 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. DMA 4 --- Modo Cascade. usado como ponte para comunicao entre os canais. DMA 5, 6, 7 8/16 bits 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. 8 Tpico 101: Arquitetura do Sistema Algumas BIOS fazem alocao de recursos automaticamente com o intuito de evitar confitos, onde os dispositivos PCI e ISA plug and play compartilham interrupes entre si. Pode acontecer de os dispositivos entrarem em confito pelo uso ao mesmo tempo desses endereamentos. Isso resolve-se da seguinte maneira: Trocar as confguraes dos dispositivos via confgurao BIOS; Trocar os jumpers nos cartes/placas de expanso; Confgurar o dispositivo em questo usando um programa especfco. Praticando a configurao bsica da BIOS Essa parte de certa forma simples, pois aqui voc dever estar apto a fazer umas confguraes 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 r oot r oot 536858624 2010- 03- 18 15: 00 / pr oc/ kcor e # ls -lh /proc/kcore - r - - - - - - - - . 1 r oot r oot 512M 2010- 03- 18 15: 00 / pr oc/ kcor e 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 t ouch: cannot t ouch `/ pr oc/ t est e : No such f i l e or di r ect or y # echo oi proc > /proc/oi - bash: / pr oc/ oi : No such f i l e or di r ect or 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 , l ess, mor e, porm, os mais usados so o hwi nf o, l shal , l spci e o dmesg. Fique atento quanto a esses dois ltimos. Tpico 101.1: Identifcao e confgurao de hardware 9 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 especfco do sistema no mapa de memria. A comunicao do dispositivo com a CPU d-se pela leitura e escrita na memria em endereos especfcos; 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 especfcos 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; hwi nf o, l shal : Esses dois comandos so muito teis, pois nos fornecem todas as informaes detalhadas do sistema em forma de relatrio; l spci : 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; l susb: 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 buddyi nf o bus cgr oups cmdl i ne cpui nf o cr ypt o devi ces di skst at s dma dr i dr i ver execdomai ns f b f i l esyst ems f s i nt er r upt s i omem i opor t s i r q kal l syms kcor e keys key- user s kmsg kpagecount kpagef l ags l at ency_st at s l oadavg l ocks mdst at memi nf o mi sc modul es mount s mt r r net paget ypei nf o par t i t i ons sched_ debug schedst at scsi sel f sl abi nf o st at swaps sys sysr q- t r i gger sysvi pc t i mer _ l i st t i mer _st at s t t y upt i me ver si on vmal l oci nf o vmst at zonei nf o Por exemplo, caso queira saber como est mapeada a memria, simplesmente digite o comando cat / pr oc/ memi nf o (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 t ot al used f r ee shar ed buf f er s cached Mem: 510720 461368 49352 0 4796 161212 - / + buf f er s/ cache: 295360 215360 Swap: 1048568 10128 1038440 Veja outros parmetros para brincar com o comando f r ee: f r ee: Exibe uso de memria em kilobytes (-k padro); f r ee - m: Exibe uso de memria em megabytes; f r ee - g: Exibe uso de memria em gigabytes; f r ee - b: Exibe uso de memria em blocos; f r ee - mt : Exibe uso de memria + Swap; f r ee - s 5: Exibe uso de memria a cada cinco segundos. Para informaes de memria com mais detalhes usamos o comando vmst at (use vmst at - d para ver estatsticas do disco) ou o cat / pr oc/ meni nf o. Esses dois comandos so teis para uma inspeo com mais detalhes: # vmstat -S M -s 498 M t ot al memor y 450 M used memor y 137 M act i ve memor y 208 M i nact i ve memor y 47 M f r ee memor y 4 M buf f er memor y 157 M swap cache 1023 M t ot al swap 9 M used swap 1014 M f r ee swap 32439 non- ni ce user cpu t i cks 0 ni ce user cpu t i cks 6464 syst emcpu t i cks 80397 i dl e cpu t i cks 5972 I O- wai t cpu t i cks 73 I RQ cpu t i cks ( . . . ) # cat /proc/meminfo MemTot al : 510720 kB MemFr ee: 48876 kB Buf f er s: 4952 kB Cached: 161384 kB SwapCached: 284 kB Act i ve: 141228 kB I nact i ve: 213948 kB Act i ve( anon) : 68552 kB I nact i ve( anon) : 124648 kB Act i ve( f i l e) : 72676 kB I nact i ve( f i l e) : 89300 kB Unevi ct abl e: 8 kB Ml ocked: 8 kB Hi ghTot al : 0 kB Hi ghFr ee: 0 kB LowTot al : 510720 kB ( . . . ) Um outro comando til o sl abt op 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 i ost at e o l sof ; use a pgina de manual para aprender mais sobre eles): # slabtop Act i ve / Tot al Obj ect s ( %used) : 554898 / 582805 ( 95. 2%) Act i ve / Tot al Sl abs ( %used) : 4586 / 4586 ( 100. 0%) Act i ve / Tot al Caches ( %used) : 63 / 77 ( 81. 8%) Act i ve / Tot al Si ze ( %used) : 17935. 39K / 21606. 70K ( 83. 0%) Mi ni mum/ Aver age / Maxi mumObj ect : 0. 01K / 0. 04K / 4. 00K OBJ S ACTI VE USE OBJ SI ZE SLABS OBJ / SLAB CACHE SI ZE NAME Tpico 101.1: Identifcao e confgurao de hardware 11 294912 293642 99% 0. 02K 1152 256 4608K kmal l oc- 16 157696 157690 99% 0. 01K 308 512 1232K kmal l oc- 8 26944 18494 68% 0. 06K 421 64 1684K buf f er _head 22144 22046 99% 0. 03K 173 128 692K kmal l oc- 32 12720 6092 47% 0. 13K 424 30 1696K dent r y 12648 7137 56% 0. 04K 124 102 496K sel i nux_i node_secur i t y 9798 9710 99% 0. 09K 213 46 852K vm_ar ea_st r uct 8840 8831 99% 0. 05K 104 85 416K sysf s_di r _cache ( . . . ) Para verifcar os pontos de montagens no sistema nesse momento (veja como a sada desse comando diferente do comando df ): # cat /proc/mounts r oot f s / r oot f s r w 0 0 / dev/ r oot / ext 4 r w, r el at i me, bar r i er =1, dat a=or der ed 0 0 / dev / dev t mpf s r w, r el at i me, mode=755 0 0 / pr oc / pr oc pr oc r w, r el at i me 0 0 / sys / sys sysf s r w, r el at i me 0 0 / pr oc/ bus/ usb / pr oc/ bus/ usb usbf s r w, r el at i me 0 0 devpt s / dev/ pt s devpt s r w, r el at i me, mode=600, pt mxmode=000 0 0 / dev/ sda2 / boot ext 3 r w, r el at i me, er r or s=cont i nue, user _xat t r , acl , dat a=or der ed 0 0 t mpf s / dev/ shmt mpf s r w, r el at i me 0 0 ( . . . ) Para saber qual a sua partio de troca (swap) use o comando (dois exemplos): # cat /proc/swaps For mat ado nor mal ment e comExt 3. Fi l ename Type Si ze Used Pr i or i t y / dev/ sda5 par t i t i on 1020088 64 - 1 # cat /proc/swaps For mat ado comLVM. Fi l ename Type Si ze Used Pr i or i t y / dev/ mapper / vg_ns1- l v_swap par t i t i on 1048568 10128 - Tabela 101.1.3: Quadro dos principais diretrios do diretrio /proc. Diretrio Descrio asound/ Informaes sobre a placa de som. bus/ Informaes sobre dispositivos como mouse, PCI e USB. driver/ Informaes sobre tipos de driver, geralmente USB. fs/ Informaes sobre sistema de arquivos (file system) no sistema. Geralmente, nfsd e supermount. ide/ Informaes sobre dispositivos IDE no sistema. irq/ Diretrio reservado para IRQs. net Informaes sobre conexes. sys/ A partir do kernel 2.6 o novo diretrio para configuraes plug and play. tty/ 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 , mor e e l ess. 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 simplifcada. 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 : pi c1 0040- 0043 : t i mer 0 0050- 0053 : t i mer 1 0060- 0060 : keyboar d 0064- 0064 : keyboar d 0070- 0071 : r t c0 0080- 008f : dma page r eg 00a0- 00a1 : pi c2 00c0- 00df : dma2 00f 0- 00f f : f pu 0170- 0177 : 0000: 00: 07. 1 0170- 0177 : at a_pi i x 01f 0- 01f 7 : 0000: 00: 07. 1 01f 0- 01f 7 : at a_pi i x 02f 8- 02f f : ser i al ( . . . ) 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 I O- API C- edge t i mer 1: 4035 I O- API C- edge i 8042 Tpico 101.1: Identifcao e confgurao de hardware 13 4: 1 I O- API C- edge 7: 0 I O- API C- edge par por t 0 8: 1 I O- API C- edge r t c0 9: 0 I O- API C- f ast eoi acpi 12: 89242 I O- API C- edge i 8042 14: 20969 I O- API C- edge pat a_vi a 15: 23503 I O- API C- edge pat a_vi a 16: 1 I O- API C- f ast eoi nouveau@pci : 0000: 01: 00. 0 19: 26 I O- API C- f ast eoi CS4281 21: 0 I O- API C- f ast eoi ehci _hcd: usb1, uhci _hcd: usb2, uhci _hcd: usb3, uhci _hcd: usb4 22: 389 I O- API C- f ast eoi VI A8233 23: 0 I O- API C- f ast eoi et h0 NMI : 0 Non- maskabl e i nt er r upt s LOC: 476004 Local t i mer i nt er r upt s RES: 0 Reschedul i ng i nt er r upt s CAL: 0 Funct i on cal l i nt er r upt s TLB: 0 TLB shoot downs TRM: 0 Ther mal event i nt er r upt s SPU: 0 Spur i ous i nt er r upt s ERR: 0 MI S: 0 NOTA: No confunda o comando cat / pr oc/ i opor t s que lista as portas I/O (entrada e sada) com o comando cat / pr oc/ i omemque 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: f l oppy 4: cascade Comandos relacionados com as informaes sobre dispositivos PCI: l spci : Lista todos os dispositivos PCI; cat / pr oc/ pci : semelhante ao comando l spci ; set pci : Confgura dispositivos PCI; pci t weak: L, escreve e lista confguraes para dispositivos PCI e scanpci : Faz uma varredura e testa dispositivos PCI; / sbi n/ hot pl ug: 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 br i dge: VI A Technol ogi es, I nc. VT8377 [ KT400/ KT600 AGP] Host Br i dge 00: 01. 0 PCI br i dge: VI A Technol ogi es, I nc. VT8235 PCI Br i dge 00: 0c. 0 Mul t i medi a audi o cont r ol l er : Ci r r us Logi c Cr yst al CS4281 PCI Audi o ( r ev 01) 00: 0e. 0 Communi cat i on cont r ol l er : Ager e Syst ems V. 92 56K Wi nModem( r ev 02) 00: 10. 0 USB Cont r ol l er : VI A Technol ogi es, I nc. VT82xxxxx UHCI USB 1. 1 Cont r ol l er ( r ev 80) 00: 10. 1 USB Cont r ol l er : VI A Technol ogi es, I nc. VT82xxxxx UHCI USB 1. 1 Cont r ol l er ( r ev 80) 00: 10. 2 USB Cont r ol l er : VI A Technol ogi es, I nc. VT82xxxxx UHCI USB 1. 1 Cont r ol l er ( r ev 80) 00: 10. 3 USB Cont r ol l er : VI A Technol ogi es, I nc. USB 2. 0 ( r ev 82) 00: 11. 0 I SA br i dge: VI A Technol ogi es, I nc. VT8235 I SA Br i dge 00: 11. 1 I DE i nt er f ace: VI A Technol ogi es, I nc. VT82C586A/ B/ VT82C686/ A/ B/ VT823x/ A/ C PI PC Bus Mast er I DE ( r ev 06) 00: 11. 5 Mul t i medi a audi o cont r ol l er : VI A Technol ogi es, I nc. VT8233/ A/ 8235/ 8237 AC97 Audi o Cont r ol l er ( r ev 50) 00: 12. 0 Et her net cont r ol l er : VI A Technol ogi es, I nc. VT6102 [ Rhi ne- I I ] ( r ev 74) 01: 00. 0 VGA compat i bl e cont r ol l er : nVi di a Cor por at i on NV18 [ GeFor ce4 MX 440 AGP 8x] ( r ev a2 Para listar todos os dispositivos PCI com detalhamento. Use o parmetro -vv para mais detalhes (o comando scanpci fornece uma sada resumida; verifque se esse comando est presente): # lspci -v 00: 00. 0 Host br i dge: VI A Technol ogi es, I nc. VT8377 [ KT400/ KT600 AGP] Host Br i dge Subsyst em: ASUSTeK Comput er I nc. A7V8X mot her boar d Fl ags: bus mast er , 66MHz, medi umdevsel , l at ency 0 Memor y at f 8000000 ( 32- bi t , pr ef et chabl e) [ si ze=64M] Capabi l i t i es: [ 80] AGP ver si on 3. 5 Capabi l i t i es: [ c0] Power Management ver si on 2 Ker nel dr i ver i n use: agpgar t - vi a 00: 01. 0 PCI br i dge: VI A Technol ogi es, I nc. VT8235 PCI Br i dge ( pr og- i f 00 [ Nor mal decode] ) Fl ags: bus mast er , 66MHz, medi umdevsel , l at ency 0 Bus: pr i mar y=00, secondar y=01, subor di nat e=01, sec- l at ency=0 Memor y behi nd br i dge: f 2000000- f 3ef f f f f Pr ef et chabl e memor y behi nd br i dge: f 3f 00000- f 7f f f f f f Capabi l i t i es: [ 80] Power Management ver si on 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 et h0: VI A Rhi ne I I at 0xef 800000, 00: 0c: 6e: 4e: 41: ec, I RQ 23. et h0: MI I PHY f ound at addr ess 1, st at us 0x7849 adver t i si ng 01e1 Li nk 0000. et h0: l i nk down ADDRCONF( NETDEV_UP) : et h0: l i nk i s not r eady 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: Identifcao e confgurao 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 I ni t i al i zi ng cgr oup subsys cpuset I ni t i al i zi ng cgr oup subsys cpu Li nux ver si on 2. 6. 31. 5- 127. f c12. i 686. PAE ( mockbui l d@x86- 3. f edor a. phx. r edhat . com) ( gcc ver si on 4. 4. 2 20091027 ( Red Hat 4. 4. 2- 7) ( GCC) ) #1 SMP Sat Nov 7 21: 25: 57 EST 2009 KERNEL suppor t ed cpus: I nt el Genui neI nt el AMD Aut hent i cAMD NSC Geode by NSC Cyr i x Cyr i xI nst ead Cent aur Cent aur Haul s Tr ansmet a Genui neTMx86 Tr ansmet a Tr ansmet aCPU ( . . . ) O retorno do comando l shal 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 (confrme com o comando ar ch), e o driver da placa de rede 8139: # lshal | grep kernel syst em. ker nel . machi ne = i 686 ( st r i ng) syst em. ker nel . name = Li nux ( st r i ng) syst em. ker nel . ver si on = 2. 6. 31. 5- 127. f c12. i 686. PAE ( st r i ng) syst em. ker nel . ver si on. maj or = 2 ( 0x2) ( i nt ) syst em. ker nel . ver si on. mi cr o = 31 ( 0x1f ) ( i nt ) syst em. ker nel . ver si on. mi nor = 6 ( 0x6) ( i nt ) # lshal | grep 8139 udi = / or g/ f r eedeskt op/ Hal / devi ces/ pci _10ec_8139 i nf o. l i nux. dr i ver = 8139t oo ( st r i ng) i nf o. pr oduct = RTL- 8139/ 8139C/ 8139C+ ( st r i ng) i nf o. udi = / or g/ f r eedeskt op/ Hal / devi ces/ pci _10ec_8139 ( st r i ng) pci . pr oduct = RTL- 8139/ 8139C/ 8139C+ ( st r i ng) pci . pr oduct _i d = 33081 ( 0x8139) ( i nt ) i nf o. par ent = / or g/ f r eedeskt op/ Hal / devi ces/ pci _10ec_8139 ( st r i ng) net . or i gi nat i ng_devi ce = / or g/ f r eedeskt op/ Hal / devi ces/ pci _10ec_8139 ( st r i ng) net . physi cal _devi ce = / or g/ f r eedeskt op/ Hal / devi ces/ pci _10ec_8139 ( st r i ng) 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 $(lshal | grep eth0 | head -1 | cut -d -f5 | cut -d/ -f5) | tail -3 | head -2 Ker nel dr i ver i n use: 8139t oo Ker nel modul es: 8139t oo, 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 fxas para o sistema como, por exemplo, a IRQ 0 (fxa) que o Timer do Sistema, a IRQ 1 (fxa) que o teclado e a IRQ 2 (fxa) que o controlador de interrupo programvel. Essa interrupo interessante, pois ela serve como ponte para outras IRQs, mais especifcamente 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. 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 confgurar 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 confguraes corretas que sero usadas na hora da inicializao. Tabela 101.1.4: Quadro dos endereos dos principais recursos. Dispositivo I/O Port IRQ DMA /dev/ttyS0 (COM 1) 0x03f8 4 --- /dev/ttyS1 (COM 2) 0x02f8 3 --- /dev/ttyS2 (COM 3) 0x03e8 4 --- /dev/ttyS3 (COM 4) 0x02e8 3 --- /dev/lp0 (LPT 1:) 0x378 7 3 (ECP) /dev/lp0 (LPT 2:) 0x278 5 3 (ECP) /dev/lp0 (LPT 3:) 0x3bc 7 3 (ECP) /dev/fd0 e /dev/fd1 (A: e B:) 0x3f0, 0x3f7 6 2 /dev/fd2 e /dev/fd3 0x370, 0x377 10 3 Ethernet (Placa de rede) 0xd0000 10 --- Sound Card (Placa de som) 0x220, 0x330, 0x388 11 --- /dev/hda1 (C:) 0x1f0, 0x3f6 14 --- /dev/hdc (D: ou CDROM) 0x170-0x177, 0x376 15 --- 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]. Tpico 101.1: Identifcao e confgurao 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 classifcados 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 identifcados atravs de nmeros chamados de identifcador 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 / pr oc/ pci mostra os dispositivos PCI e o comando cat / pr oc/ scsi / scsi mostra todos os dispositivos SCSI que atualmente esto carregados pelo kernel. Observe que os dispositivos tm um identifcador 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 At t ached devi ces: Host : scsi 0 Channel : 00 I d: 00 Lun: 00 Vendor : VMwar e, Model : VMwar e Vi r t ual S Rev: 1. 0 Type: Di r ect - Access ANSI SCSI r evi si on: 02 Host : scsi 2 Channel : 00 I d: 00 Lun: 00 Vendor : HL- DT- ST Model : RW/ DVD GCC- 4320B Rev: 1. 00 Type: CD- ROM ANSI SCSI r evi si on: 05 Host : scsi 3 Channel : 00 I d: 00 Lun: 00 Tpico 101.1: Identifcao e confgurao 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 smar t ct l 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 I nf or mao r esumi da. # smartctl -a /dev/sda ou smartctl -a /dev/hda I nf or mao det al hada. smar t ct l ver si on 5. 38 [ i 386- r edhat - l i nux- gnu] Copyr i ght ( C) 2002- 8 Br uce Al l en Home page i s ht t p: / / smar t mont ool s. sour cef or ge. net / === START OF I NFORMATI ON SECTI ON === Model Fami l y: I BM Tr avel st ar 48GH, 30GN, and 15GN f ami l y Devi ce Model : I C25N010ATDA04- 0 Ser i al Number : 170172M9962 Fi r mwar e Ver si on: DACOA76A User Capaci t y: 10, 056, 130, 560 byt es Devi ce i s: I n smar t ct l dat abase [ f or det ai l s use: - P show] ATA Ver si on i s: 5 ATA St andar d i s: ATA/ ATAPI - 5 T13 1321D r evi si on 3 Local Ti me i s: Tue Aug 6 16: 25: 45 2013 BRT SMART suppor t i s: Avai l abl e - devi ce has SMART capabi l i t y. SMART suppor t i s: Enabl ed ( . . . ) Nota: Aqui podemos ver que o suporte ao smart est habilitado, caso no tivesse, usaramos o comando smar t ct l - 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 over al l - heal t h sel f - assessment t est r esul t : 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 hdpar mpode 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 fzer isso errado poder ter problemas: # hdparm -I /dev/sda ou hdparm -I /dev/hda / dev/ sda: ATA devi ce, wi t h non- r emovabl e medi a Model Number : I C25N010ATDA04- 0 Ser i al Number : 170172M9962 Fi r mwar e Revi si on: DACOA76A St andar ds: Used: ATA/ ATAPI - 5 T13 1321D r evi si on 3 Suppor t ed: 5 4 3 & some of 6 Conf i gur at i on: Logi cal max cur r ent 20 Tpico 101: Arquitetura do Sistema cyl i nder s 16383 16383 heads 16 16 sect or s/ t r ack 63 63 - - CHS cur r ent addr essabl e sect or s: 16514064 LBA user addr essabl e sect or s: 19640880 Logi cal / Physi cal Sect or si ze: 512 byt es devi ce si ze wi t h M = 1024*1024: 9590 MByt es devi ce si ze wi t h M = 1000*1000: 10056 MByt es ( 10 GB) cache/ buf f er si ze = 347 KByt es ( t ype=Dual Por t Cache) ( . . . ) O comando ainda permite que seja feita uma checagem de performance do disco: # hdparm -Tt /dev/sda ou hdparm -Tt /dev/hda / dev/ sda: Ti mi ng cached r eads: 174 MB i n 2. 01 seconds = 86. 53 MB/ sec Ti mi ng buf f er ed di sk r eads: 24 MB i n 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- byt e l ogi cal bl ocks: ( 10. 0 GB/ 9. 36 Gi B) sd 0: 0: 0: 0: [ sda] Wr i t e Pr ot ect i s of f sd 0: 0: 0: 0: [ sda] Mode Sense: 00 3a 00 00 sd 0: 0: 0: 0: [ sda] Wr i t e cache: enabl ed, r ead cache: enabl ed, doesn t suppor t DPO or FUA sda: sda1 sda2 sd 0: 0: 0: 0: [ sda] At t ached SCSI di sk dr acut : Scanni ng devi ces sda2 f or LVM vol ume gr oups EXT4- f s ( sda1) : bar r i er s enabl ed kj our nal d2 st ar t i ng: pi d 535, dev sda1: 8, commi t i nt er val 5 seconds EXT4- f s ( sda1) : i nt er nal j our nal on sda1: 8 EXT4- f s ( sda1) : del ayed al l ocat i on enabl ed EXT4- f s ( sda1) : mount ed f i l esyst emwi t h or der ed dat a mode SELi nux: i ni t i al i zed ( dev sda1, t ype ext 4) , uses xat t r ( . . . ) 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 Bits Descrio SCSI 1 8 Transferncia de 5 MB/s, usa um cabo de 50 pinos. SCSI 2 8 Transferncia de 5 MB/s, usa um cabo de 50 pinos, permite ligao de at 7 dispositivos na mesma controladora. Wide SCSI 16 Transferncia de 10 MB/s, usa um cabo de 68 pinos. Fast SCSI 8 Transferncia de 10 MB/s, usa um cabo de 50 pinos. Fast Wide 16 Transferncia de 20 MB/s, usa um cabo de 68 pinos (a tecnologia foi melhorada). Tpico 101.1: Identifcao e confgurao de hardware 21 Nome Bits Descrio Ultra SCSI 8 Transferncia de 20 MB/s, usa um cabo de 50 pinos. Ultra Wide SCSI 16 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. Ultra SCSI 320 2 x 32 Transferncia de 320 MB/s, usa um cabo de 68 pinos. Taxa bem alta para transferncias. 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 l spci lista os dispositivos PCI, o comando l sscsi lista os dispositivos SCSI em seu sistema. No diretrio /proc/scsi voc encontrar informaes sobre SCSI; para isso, use o comando cat / pr oc/ scsi / scsi o qual lista os dispositivos SCSI. # cat /proc/scsi/scsi At t ached devi ces: Host : scsi 0 Channel : 00 I d: 00 Lun: 00 Vendor : VMwar e, Model : VMwar e Vi r t ual S Rev: 1. 0 Type: Di r ect - Access ANSI SCSI r evi si on: 02 Host : scsi 2 Channel : 00 I d: 00 Lun: 00 Vendor : HL- DT- ST Model : RW/ DVD GCC- 4320B Rev: 1. 00 Type: CD- ROM ANSI SCSI r evi si on: 05 Host : scsi 3 Channel : 00 I d: 00 Lun: 00 Vendor : SMSC Model : USB FDC Rev: 2. 10 Type: Di r ect - Access ANSI SCSI r evi si on: 00 Host : scsi 4 Channel : 00 I d: 00 Lun: 00 Vendor : Sony Model : Sony DSC Rev: 6. 00 Type: Di r ect - Access ANSI SCSI r evi si on: 00
Para listar os diretrios dos dispositivos SCSI: # ls -l /proc/scsi t ot al 0 dr - xr - xr - x. 2 r oot r oot 0 2010- 03- 18 15: 00 BusLogi c - r - - r - - r - - . 1 r oot r oot 0 2010- 03- 18 15: 00 devi ce_i nf o - r - - r - - r - - . 1 r oot r oot 0 2010- 03- 18 15: 00 scsi dr - xr - xr - x. 2 r oot r oot 0 2010- 03- 18 15: 00 sg dr - xr - xr - x. 2 r oot r oot 0 2010- 03- 18 15: 00 usb- st or age 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/ t ot al 0 - r w- r - - r - - . 1 r oot r oot 0 2010- 03- 18 15: 00 3 # cat / pr oc/ scsi / usb- st or age/ 3 Host scsi 3: usb- st or age Vendor : Sony Pr oduct : Sony DSC Ser i al Number : None Pr ot ocol : 8070i Tr anspor t : Cont r ol / Bul k Qui r ks: SI NGLE_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 al i as et h0 pcnet 32 al i as scsi _host adapt er mpt spi al i as scsi _host adapt er 1 l i bat a al i as scsi _host adapt er 2 at a_pi i x al i as snd- car d- 0 snd- ens1371 opt i ons snd- car d- 0 i ndex=0 opt i ons snd- ens1371 i ndex=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 fcar mais fcil: # ls -l /etc/modprobe.d/* - r w- r - - r - - . 1 r oot r oot 52 2010- 03- 18 15: 00 / et c/ modpr obe. d/ anaconda. conf - r w- r - - r - - . 1 r oot r oot 845 2010- 03- 18 15: 00 / et c/ modpr obe. d/ bl ackl i st . conf - r w- r - - r - - . 1 r oot r oot 16 2010- 03- 18 15: 00 / et c/ modpr obe. d/ bl ackl i st - vi sor . conf - r w- r - - r - - . 1 r oot r oot 5616 2010- 03- 18 15: 00 / et c/ modpr obe. d/ di st . conf - r w- r - - r - - . 1 r oot r oot 473 2010- 03- 18 15: 00 / et c/ modpr obe. d/ di st - oss. conf - r w- r - - r - - . 1 r oot r oot 26 2010- 03- 18 15: 00 / et c/ modpr obe. d/ f l oppy- 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 confgurar alguns tipos de cartes/placas em seu sistema mediante a identifcao das informaes do seu hardware. Voc dever conhecer Tpico 101.1: Identifcao e confgurao de hardware 23 a diferena entre cartes PCI e ISA e como confgur-los em seu sistema. Como objetivo, os exames incluem a correta confgurao pelas IRQs, DMA e portas I/O dos respectivos cartes, especialmente se houver confito entre eles. Tambm est incluso o uso do i sapnp 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 , mor e ou l ess. 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, i sapnp, l spci , l susb e l sscsi . 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 confgurar 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 , fsicamente 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 especfco 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 identifcao como parte de sua especifcao. 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 l spci . O comando lspci tem a seguinte sintaxe: # lspci [opes] As opes mais comuns so (para mais informaes use o comando man l spci ou i nf o l spci ): -k: Muito til, pois informa que mdulo do kernel est anexado ao dispositivo PCI; -m: Exibe informaes com mais detalhes que o simples comando l spci ; -mm: Semelhante ao -m, porm com mais detalhes ainda; -n e -nn: Mostra codifcao dos dispositivos e codifcao, mais informaes do vendedor; -s e -d: Usado para pesquisas com mais detalhes sobre um dispositivo especifco; -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 Mul t i medi a audi o cont r ol l er : VI A Technol ogi es, I nc. VT8233/ A/ 8235/ 8237 AC97 Audi o Cont r ol l er ( r ev 50) Subsyst em: ASUSTeK Comput er I nc. A7V8X- X Mot her boar d Ker nel dr i ver i n use: VI A 82xx Audi o Ker nel modul es: snd- vi a82xx 00: 12. 0 Et her net cont r ol l er : VI A Technol ogi es, I nc. VT6102 [ Rhi ne- I I ] ( r ev 74) Subsyst em: ASUSTeK Comput er I nc. A7V8X- X Mot her boar d Ker nel dr i ver i n use: via-rhine Ker nel modul es: via-rhine 01: 00. 0 VGA compat i bl e cont r ol l er : nVi di a Cor por at i on NV18 [ GeFor ce4 MX 440 AGP 8x] ( r ev a2) Ker nel modul es: 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$ / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / dr i ver s/ net / pcnet 32. ko Tpico 101.1: Identifcao e confgurao de hardware 25 Para saber como essa interface de rede trabalha quando da transmisso/recepo, basta usar o comando modi nf o com um fltro simples de comando gr ep. Veja: # modinfo $(locate pcnet32 | egrep .ko$|.o$) | grep plex par m: f ul l _dupl ex: pcnet 32 f ul l dupl ex set t i ng( s) ( 1) ( ar r ay of i nt Para o comando anterior, se desejar as informaes tcnicas do dispositivo, basta retirar o fltro gr ep: # modinfo $(locate pcnet32 | egrep .ko$|.o$) f i l ename: / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / dr i ver s/ net / pcnet 32. ko l i cense: GPL descr i pt i on: Dr i ver f or PCnet 32 and PCnet PCI based et her car ds aut hor : Thomas Bogendoer f er sr cver si on: BE4E52164A7079455A3B16D al i as: pci : v00001023d00002000sv*sd*bc02sc00i * al i as: pci : v00001022d00002000sv*sd*bc*sc*i * al i as: pci : v00001022d00002001sv*sd*bc*sc*i * depends: mi i ver magi c: 2. 6. 31. 5- 127. f c12. i 686. PAE SMP mod_unl oad 686 par m: debug: pcnet 32 debug l evel ( i nt ) par m: max_i nt er r upt _wor k: pcnet 32 maxi mumevent s handl ed per i nt er r upt ( i nt ) par m: r x_copybr eak: pcnet 32 copy br eakpoi nt f or copy- onl y- t i ny- f r ames ( i nt ) par m: t x_st ar t _pt : pcnet 32 t r ansmi t st ar t poi nt ( 0- 3) ( i nt ) par m: pcnet 32vl b: pcnet 32 Vesa l ocal bus ( VLB) suppor t ( 0/ 1) ( i nt ) par m: opt i ons: pcnet 32 i ni t i al opt i on set t i ng( s) ( 0- 15) ( ar r ay of i nt ) par m: f ul l _dupl ex: pcnet 32 f ul l dupl ex set t i ng( s) ( 1) ( ar r ay of i nt ) par m: homepna: pcnet 32 mode f or 79C978 car ds ( 1 f or HomePNA, 0 f or Et her net , def aul t Et her net ( ar r ay of i nt ) O cdigo do dispositivo de interface de rede 00:12.00 (para esse hardware); e para saber informaes mais especfcas sobre ele podemos fazer uma pesquisa direta. Nos exemplos a seguir poderamos usar tambm 12:0: # lspci -s 12.0 Pesqui sa di r et a semdet al hes. 00: 12. 0 Et her net cont r ol l er : VI A Technol ogi es, I nc. VT6102 [ Rhi ne- I I ] ( r ev 74) # lspci -s 12.0 -v Pesqui sa di r et a comdet al hes. 00: 12. 0 Et her net cont r ol l er : VI A Technol ogi es, I nc. VT6102 [ Rhi ne- I I ] ( r ev 74) Subsyst em: ASUSTeK Comput er I nc. A7V8X- X Mot her boar d Fl ags: bus mast er , st eppi ng, medi umdevsel , l at ency 32, I RQ 23 I / O por t s at a800 [ si ze=256] Memor y at ef 800000 ( 32- bi t , non- pr ef et chabl e) [ si ze=256] Capabi l i t i es: [ 40] Power Management ver si on 2 Ker nel dr i ver i n use: vi a- r hi ne Ker nel modul es: vi a- r hi ne Usando o comando l spci , podemos consultar informaes dos tipos de mdulos que o kernel poder trabalhar. # lspci 00: 00. 0 Host br i dge: VI A Technol ogi es, I nc. VT8377 [ KT400/ KT600 AGP] Host Br i dge 00: 01. 0 PCI br i dge: VI A Technol ogi es, I nc. VT8235 PCI Br i dge 00: 0c. 0 Mul t i medi a audi o cont r ol l er : Ci r r us Logi c Cr yst al CS4281 PCI Audi o ( r ev 01) 26 Tpico 101: Arquitetura do Sistema 00: 0e. 0 Communi cat i on cont r ol l er : Ager e Syst ems V. 92 56K Wi nModem( r ev 02) 00: 10. 0 USB Cont r ol l er : VI A Technol ogi es, I nc. VT82xxxxx UHCI USB 1. 1 Cont r ol l er ( r ev 80) 00: 10. 1 USB Cont r ol l er : VI A Technol ogi es, I nc. VT82xxxxx UHCI USB 1. 1 Cont r ol l er ( r ev 80) 00: 10. 2 USB Cont r ol l er : VI A Technol ogi es, I nc. VT82xxxxx UHCI USB 1. 1 Cont r ol l er ( r ev 80) 00: 10. 3 USB Cont r ol l er : VI A Technol ogi es, I nc. USB 2. 0 ( r ev 82) 00: 11. 0 I SA br i dge: VI A Technol ogi es, I nc. VT8235 I SA Br i dge 00: 11. 1 I DE i nt er f ace: VI A Technol ogi es, I nc. VT82C586A/ B/ VT82C686/ A/ B/ VT823x/ A/ C PI PC Bus Mast er I DE ( r ev 06) 00: 11. 5 Mul t i medi a audi o cont r ol l er : VI A Technol ogi es, I nc. VT8233/ A/ 8235/ 8237 AC97 Audi o Cont r ol l er ( r ev 50) 00: 12. 0 Et her net cont r ol l er : VI A Technol ogi es, I nc. VT6102 [ Rhi ne- I I ] ( r ev 74) 01: 00. 0 VGA compat i bl e cont r ol l er : nVi di a Cor por at i on NV18 [ GeFor ce4 MX 440 AGP 8x] ( r ev a2) Conseguiu entender at aqui? Bom, e agora? Qual o prximo passo? Use o l spci - n para sada resumida. # lspci -n 00: 00. 0 0600: 1106: 3189 00: 01. 0 0604: 1106: b168 00: 0c. 0 0401: 1013: 6005 ( r ev 01) 00: 0e. 0 0780: 11c1: 048c ( r ev 02) 00: 10. 0 0c03: 1106: 3038 ( r ev 80) 00: 10. 1 0c03: 1106: 3038 ( r ev 80) 00: 10. 2 0c03: 1106: 3038 ( r ev 80) 00: 10. 3 0c03: 1106: 3104 ( r ev 82) 00: 11. 0 0601: 1106: 3177 00: 11. 1 0101: 1106: 0571 ( r ev 06) 00: 11. 5 0401: 1106: 3059 ( r ev 50) 00: 12. 0 0200: 1106: 3065 ( r ev 74) 01: 00. 0 0300: 10de: 0181 ( r ev a2) Para uma listagem resumida, mas com informaes mais teis como o cdigo do vendedor e dos dispositivos: # lspci -nn 00: 00. 0 Host br i dge [ 0600] : VI A Technol ogi es, I nc. VT8377 [ KT400/ KT600 AGP] Host Br i dge [ 1106: 3189] 00: 01. 0 PCI br i dge [ 0604] : VI A Technol ogi es, I nc. VT8235 PCI Br i dge [ 1106: b168] 00: 0c. 0 Mul t i medi a audi o cont r ol l er [ 0401] : Ci r r us Logi c Cr yst al CS4281 PCI Audi o [ 1013: 6005] ( r ev 01) 00: 0e. 0 Communi cat i on cont r ol l er [ 0780] : Ager e Syst ems V. 92 56K Wi nModem [ 11c1: 048c] ( r ev 02) 00: 10. 0 USB Cont r ol l er [ 0c03] : VI A Technol ogi es, I nc. VT82xxxxx UHCI USB 1. 1 Cont r ol l er [ 1106: 3038] ( r ev 80) 00: 10. 1 USB Cont r ol l er [ 0c03] : VI A Technol ogi es, I nc. VT82xxxxx UHCI USB 1. 1 Cont r ol l er [ 1106: 3038] ( r ev 80) 00: 10. 2 USB Cont r ol l er [ 0c03] : VI A Technol ogi es, I nc. VT82xxxxx UHCI USB 1. 1 Cont r ol l er [ 1106: 3038] ( r ev 80) 00: 10. 3 USB Cont r ol l er [ 0c03] : VI A Technol ogi es, I nc. USB 2. 0 [ 1106: 3104] ( r ev 82) 00: 11. 0 I SA br i dge [ 0601] : VI A Technol ogi es, I nc. VT8235 I SA Br i dge [ 1106: 3177] 00: 11. 1 I DE i nt er f ace [ 0101] : VI A Technol ogi es, I nc. VT82C586A/ B/ VT82C686/ A/ B/ VT823x/ A/ C PI PC Bus Mast er I DE [ 1106: 0571] ( r ev 06) Tpico 101.1: Identifcao e confgurao de hardware 27 00: 11. 5 Mul t i medi a audi o cont r ol l er [ 0401] : VI A Technol ogi es, I nc. VT8233/ A/ 8235/ 8237 AC97 Audi o Cont r ol l er [ 1106: 3059] ( r ev 50) 00: 12. 0 Et her net cont r ol l er [ 0200] : VI A Technol ogi es, I nc. VT6102 [ Rhi ne- I I ] [ 1106: 3065] ( r ev 74) 01: 00. 0 VGA compat i bl e cont r ol l er [ 0300] : nVi di a Cor por at i on NV18 [ GeFor ce4 MX 440 AGP 8x] [ 10de: 0181] ( r ev a2) Para uma listagem detalhada de todos os dispositivos, porm, aqui s tem o que nos interessa no momento: # lspci -vvv ( . . . ) 00: 12. 0 Et her net cont r ol l er : VI A Technol ogi es, I nc. VT6102 [ Rhi ne- I I ] ( r ev 74) Subsyst em: ASUSTeK Comput er I nc. A7V8X- X Mot her boar d Cont r ol : I / O+ Mem+ BusMast er + SpecCycl e- MemWI NV+ VGASnoop- Par Er r - St eppi ng+ SERR- Fast B2B- Di sI NTx- St at us: Cap+ 66MHz- UDF- Fast B2B- Par Er r - DEVSEL=medi um>TAbor t - <TAbor t - <MAbor t - >SERR- <PERR- I NTx- Lat ency: 32 ( 750ns mi n, 2000ns max) , Cache Li ne Si ze: 32 byt es I nt er r upt : pi n A r out ed t o I RQ 23 Regi on 0: I / O por t s at a800 [ si ze=256] Regi on 1: Memor y at ef 800000 ( 32- bi t , non- pr ef et chabl e) [ si ze=256] Capabi l i t i es: [ 40] Power Management ver si on 2 Fl ags: PMECl k- DSI - D1+ D2+ AuxCur r ent =0mA PME( D0+, D1+, D2+, D3hot +, D3col d+) St at us: D0 PME- Enabl e- DSel =0 DScal e=0 PME- Ker nel dr i ver i n use: vi a- r hi ne Ker nel modul es: vi a- r hi ne ( . . . ) 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 ( . . . ) al i as usb- uhci uhci - hcd al i as usb- ohci ohci - hcd al i as uhci uhci - hcd
al i as char - maj or - 116- * snd al i as sound- ser vi ce- *- 0 snd- mi xer - oss al i as sound- ser vi ce- *- 1 snd- seq- oss al i as sound- ser vi ce- *- 3 snd- pcm- oss 28 Tpico 101: Arquitetura do Sistema al i as sound- ser vi ce- *- 8 snd- seq- oss al i as sound- ser vi ce- *- 12 snd- pcm- oss
i nst al l sound- sl ot - * / sbi n/ modpr obe snd- car d- ${MODPROBE_MODULE##sound[ _- ] sl ot [ _- ] }
al i as nf s4 nf s al i as r pc_pi pef s sunr pc al i as r pc_svc_gss_pi pef s sunr pc
i nst al l et h1394 / bi n/ t r ue ( . . . ) 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, fcou menos centralizado para oferecer um melhor controle: # ls /etc/modprobe.d/ anaconda. conf bl ackl i st - vi sor . conf di st . conf f l oppy- pnp. conf bl ackl i st . conf di st - al sa. conf di st - oss. conf openf wwf . 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 i snmod, precisamos passar o caminho completo, e com o comando modpr obe, apenas o nome do mdulo: # insmod /lib/modules/2.6.31.5-127.fc12.i686.PAE/kernel/drivers/net/via-rhine. ko ou # modpr obe vi a- r hi ne Para verifcar via linha de comando se esse mdulo est carregado: # lsmod | grep rhine vi a_r hi ne 19872 0 mi i 4028 1 vi a_r hi ne NOTA: O comando r mmod <mdul o> 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: Identifcao e confgurao de hardware 29 de pesquisa e gerao de cache funcionem. S para exemplifcar, 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/verifcado 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 ker nel / dr i ver s/ net / vi a- r hi ne. ko: ker nel / dr i ver s/ net / mi i . ko Agora, por ltimo (faa a pesquisa anteriormente mostrada para saber como identifcar o nmero/cdigo do dispositivo PCI), usaremos o comando l spci - s 12. 0 - v que vai listar mais informaes sobre a interface de rede (identifcao 12:0): # lspci -s 12:0 -v ou lspci -s 00:12.0 -v Pesqui sa di r et a comdet al hes. 00: 12. 0 Et her net cont r ol l er : VI A Technol ogi es, I nc. VT6102 [ Rhi ne- I I ] ( r ev 74) Subsyst em: ASUSTeK Comput er I nc. A7V8X- X Mot her boar d Fl ags: bus mast er , st eppi ng, medi umdevsel , l at ency 32, I RQ 23 I / O por t s at a800 [ si ze=256] Memor y at ef 800000 ( 32- bi t , non- pr ef et chabl e) [ si ze=256] Capabi l i t i es: [ 40] Power Management ver si on 2 Ker nel dr i ver i n use: vi a- r hi ne Ker nel modul es: vi a- r hi ne 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 vi a- r hi ne. c: v1. 10- LK1. 4. 3 2007- 03- 06 Wr i t t en by Donal d Becker vi a- r hi ne 0000: 00: 12. 0: PCI I NT A - > GSI 23 ( l evel , l ow) - > I RQ 23 Os dispositivos PCI so identifcados por um nico ID como se fosse um endereo MAC de uma placa de rede. As informaes sobre essa identifcao, dependendo da distribuio, podem fcar 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 , mor e ou l ess, e o comando updat e- pci i ds faz uma atualizao desses arquivos da internet baseado na hora atual: # update-pciids - - 15: 00: 00- - ht t p: / / pci i ds. sour cef or ge. net / pci . i ds. bz2 => `/ usr / shar e/ pci . i ds. new Resol vi ng pci i ds. sour cef or ge. net . . . Algumas informaes que so necessrias saber so: O suporte Linux para PCI (Bus ID=00) completo e no precisa de confgurao 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 l spci 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 confgurao do modem, com a diferena que aqui tem mais algumas observaes importantes. Os mesmos objetivos requisitados para a confguraes 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 sofsticados 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: Identifcao e confgurao 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 confgurado 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 especfco para o kernel dever ser carregado antes disso. Se for modem interno, dever ser confgurado com o comando set ser i al ; 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 wvdi al , 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 cal l pr ovedor . O contedo dele : / dev/ cua0 38400 cr t sct s / dev/ cua0 pode ser / dev/ t t yS0. connect " chat / et c/ ppp/ l pi - i sp/ conect ar " user adi l son 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 CARRI ER" ABORT " NO DI ALTONE" ABORT " ERROR" ABORT " NO ANSWER" ABORT " BUSY" ABORT " User name/ Passwor d i ncor r et o. . . " " " " at " OK " at &d0&c1" OK " at dt 11123456789" Tel ef one 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): " adi l son" * " l pi 2010" Agora s executar o comando pppd cal l pr ovedor . Dependendo de como est confgurado 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 confgurada 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 confgurao; 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 confgurar 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 - st ar t e adsl - st op l i nks para os comandos ppp responsveis. Veja: # ppp <tab><tab> pppd pppoe pppoe- di scover y pppoe- ser ver pppoe- sni f f p p p o e - st at us pppst at s pppdump pppoe- connect pppoe- r el ay pppoe- set up p p p o e - s t a r t pppoe- st op ppp- wat ch # file $(which adsl-start) / usr / sbi n/ adsl - st ar t : symbol i c l i nk t o `. . / . . / sbi n/ pppoe- st ar t # file $(which adsl-stop) / usr / sbi n/ adsl - st op: symbol i c l i nk t o `. . / . . / sbi n/ pppoe- st op Um utilitrio, o t kpppoe, para o modo grfco 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: Identifcao e confgurao 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 fo 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 unifcar e facilitar a adio de perifricos a um computador. Atualmente, a deteco e a confgurao 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 fexvel e muito funcional, basta plugar um dispositivo USB (mouse, cd-rom, scanner, cmera, pendrive, players, teclado, unidades de disquetes e ftas 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 confgurao 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, liga- se 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 aguarda- se 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 fca limitado ao nmero fsico de portas do computador. Para ver como foi reconhecido seus dispositivos USB, use o comando: # dmesg | grep usb | uniq usbcor e: r egi st er ed new i nt er f ace dr i ver usbf s usbcor e: r egi st er ed new i nt er f ace dr i ver hub usbcor e: r egi st er ed new devi ce dr i ver usb usb usb1: New USB devi ce f ound, i dVendor =1d6b, i dPr oduct =0001 usb usb1: New USB devi ce st r i ngs: Mf r =3, Pr oduct =2, Ser i al Number =1 usb usb1: Pr oduct : OHCI Host Cont r ol l er usb usb1: Manuf act ur er : Li nux 2. 6. 31. 5- 127. f c12. i 686. PAE ohci _hcd usb usb1: Ser i al Number : 0000: 00: 01. 2 usb usb1: conf i gur at i on #1 chosen f r om1 choi ce usb usb2: New USB devi ce f ound, i dVendor =1d6b, i dPr oduct =0001 usb usb2: New USB devi ce st r i ngs: Mf r =3, Pr oduct =2, Ser i al Number =1 usb usb2: Pr oduct : OHCI Host Cont r ol l er usb usb2: Manuf act ur er : Li nux 2. 6. 31. 5- 127. f c12. i 686. PAE ohci _hcd usb usb2: Ser i al Number : 0000: 00: 01. 3 usb usb2: conf i gur at i on #1 chosen f r om1 choi ce usbcor e: r egi st er ed new i nt er f ace dr i ver hi ddev usbcor e: r egi st er ed new i nt er f ace dr i ver usbhi d usbhi d: v2. 6: USB HI D cor e dr i ver usb 1- 1: new l ow speed USB devi ce usi ng ohci _hcd and addr ess 2 usb 1- 1: New USB devi ce f ound, i dVendor =046d, i dPr oduct =c016 usb 1- 1: New USB devi ce st r i ngs: Mf r =1, Pr oduct =2, Ser i al Number =0 usb 1- 1: Pr oduct : Opt i cal USB Mouse usb 1- 1: Manuf act ur er : Logi t ech usb 1- 1: conf i gur at i on #1 chosen f r om1 choi ce i nput : Logi t ech Opt i cal USB Mouse as / devi ces/ pci 0000: 00/ 0000: 00: 01. 2/ usb1/ 1- 1/ 1- 1: 1. 0/ i nput / i nput 2 gener i c- usb 0003: 046D: C016. 0001: i nput , hi dr aw0: USB HI D v1. 10 Mouse [ Logi t ech Opt i cal USB Mouse] on usb- 0000: 00: 01. 2- 1/ i nput 0 SELi nux: i ni t i al i zed ( dev usbf s, t ype usbf s) , uses genf s_cont ext s ( . . . ) Agora foi anexada uma cmera digital e executado novamente o comando, e no fnal da listagem j est registrado o reconhecimento desse hardware. Acompanhe: # dmesg | grep usb | uniq ( . . . ) usbcor e: r egi st er ed new i nt er f ace dr i ver hi ddev usbcor e: r egi st er ed new i nt er f ace dr i ver usbhi d usbhi d: v2. 6: USB HI D cor e dr i ver usb 1- 6: new hi gh speed USB devi ce usi ng ehci _hcd and addr ess 6 usb 4- 2: new f ul l speed USB devi ce usi ng uhci _hcd and addr ess 2 usb 4- 2: not r unni ng at t op speed; connect t o a hi gh speed hub usb 4- 2: New USB devi ce f ound, i dVendor =054c, i dPr oduct =0010 usb 4- 2: New USB devi ce st r i ngs: Mf r =1, Pr oduct =2, Ser i al Number =0 usb 4- 2: Pr oduct : Sony DSC usb 4- 2: Manuf act ur er : Sony usb 4- 2: conf i gur at i on #1 chosen f r om1 choi ce usbcor e: r egi st er ed new i nt er f ace dr i ver usb- st or age usb- st or age: devi ce f ound at 2 usb- st or age: wai t i ng f or devi ce t o set t l e bef or e scanni ng usb- st or age: devi ce scan compl et e Tpico 101.1: Identifcao e confgurao de hardware 35 Agora identifcamos esse hardware atravs do comando l susb que semelhante ao l spci . Esse comando l sub possui alguns parmetros de pesquisa: # lsusb # l susb Bus 001 Devi ce 001: I D 1d6b: 0002 Li nux Foundat i on 2. 0 r oot hub Bus 004 Devi ce 002: I D 054c: 0010 Sony Cor p. DSC- S30/ S70/ S75/ F505V/ F505/ FD92/ W1 Cyber shot / Mavi ca Di gi t al Camer a Bus 004 Devi ce 001: I D 1d6b: 0001 Li nux Foundat i on 1. 1 r oot hub Bus 003 Devi ce 001: I D 1d6b: 0001 Li nux Foundat i on 1. 1 r oot hub Bus 002 Devi ce 001: I D 1d6b: 0001 Li nux Foundat i on 1. 1 r oot 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 l susb - s bus: num- v, assim: # lsusb -s 002.002 -v Bus 004 Devi ce 002: I D 054c: 0010 Sony Cor p. DSC- S30/ S70/ S75/ F505V/ F505/ FD92/ W1 Cyber shot / Mavi ca Di gi t al Camer a Devi ce Descr i pt or : bLengt h 18 bDescr i pt or Type 1 bcdUSB 2. 00 bDevi ceCl ass 0 ( Def i ned at I nt er f ace l evel ) bDevi ceSubCl ass 0 bDevi cePr ot ocol 0 bMaxPacket Si ze0 64 i dVendor 0x054c Sony Cor p. i dPr oduct 0x0010 DSC- S30/ S70/ S75/ F505V/ F505/ FD92/ W1 Cyber shot / Mavi ca Di gi t al Camer a bcdDevi ce 6. 00 i Manuf act ur er 1 Sony i Pr oduct 2 Sony DSC ( . . . ) O comando l s - F / pr oc/ 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 / pr oc/ bus/ usb/ devi ces ou cat / pr oc/ bus/ usb/ dr i ver s para fazer uma anlise. # ls -F /proc/bus/usb/ 001/ 002/ 003/ 004/ devi ces Veja como podemos identifcar 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 Pr nt =01 Por t =01 Cnt =01 Dev#= 2 Spd=12 MxCh= 0 D: Ver = 2. 00 Cl s=00( >i f c ) Sub=00 Pr ot =00 MxPS=64 #Cf gs= 1 P: Vendor=054c ProdID=0010 Rev= 6.00 S: Manufacturer=Sony S: Product=Sony DSC C: * #I f s= 1 Cf g#= 1 At r =c0 MxPwr = 2mA I : * I f #= 0 Al t = 0 #EPs= 3 Cl s=08( st or . ) Sub=f f Pr ot =01 Dr i ver =usb- st or age 36 Tpico 101: Arquitetura do Sistema E: Ad=01( O) At r =02( Bul k) MxPS= 64 I vl =0ms E: Ad=82( I ) At r =02( Bul k) MxPS= 64 I vl =0ms E: Ad=83( I ) At r =03( I nt . ) MxPS= 8 I vl =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 l s / mnt / usb- st or age/ devi ce- 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, foppy, mquina digital, mp3 e etc. Os mdulos no sistema Linux tm o sufxo .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 fcam 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 fnd, 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- cai aq. ko snd- usb- l i b. ko snd- usb- usx2y. ko snd- usb- us122l . ko snd- usb- audi o. ko i 2400m- usb. ko at 76c50x- usb. ko p54usb. ko usb8xxx. ko ar 9170usb. ko r t 2x00usb. ko r t 73usb. ko r t 2500usb. ko r t 2800usb. ko l i ber t as_t f _usb. ko i r da- usb. ko usb pl usb. ko usbnet . ko pcwd_usb. ko bf usb. ko bt usb. ko hf csusb. ko usb_gi gaset . ko i 1480- df u- usb. ko i 2c- t i ny- usb. ko at 76_usb at 76_usb. ko usbt ouchscr een. ko l i r c_i gor pl ugusb. ko l i r c_mceusb. ko l i r c_t t usbi r . ko t t usb- budget dvb- t t usb- budget . ko b2c2- f l excop- usb. ko smsusb. ko dvb- usb dvb- usb- dw2102. ko dvb- usb- gp8psk. ko dvb- usb- m920x. ko dvb- usb- ce6230. ko dvb- usb- di gi t v. ko dvb- usb- au6610. ko dvb- usb- di busb- common. ko dvb- usb- a800. ko dvb- usb. ko dvb- usb- vp7045. ko dvb- usb- di b0700. ko dvb- usb- vp702x. ko dvb- usb- dt v5100. ko dvb- usb- gl 861. ko dvb- usb- ci ner gyT2. ko dvb- usb- umt - 010. ko dvb- usb- t t usb2. ko dvb- usb- af 9015. ko dvb- usb- di busb- mc. ko dvb- usb- dt t 200u. ko dvb- usb- oper a. ko dvb- usb- anysee. ko dvb- usb- af 9005. ko dvb- usb- cxusb. ko dvb- usb- di busb- mb. ko dvb- usb- af 9005- r emot e. ko dvb- usb- nova- t - usb2. ko t t usb- dec ( . . . ) Tpico 101.1: Identifcao e confgurao de hardware 37 Aqui tivemos uma listagem de mais de setenta mdulos para dispositivos USB. Esses mdulos so os mdulos modernos por apresentarem o sufxo .ko no nome do arquivo, porm, em kernel 2.2 o sufxo 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: hot pl ug: USB, PCMCI A e Fi r eWi r e( i eee1394) ; usbmgr : Ger enci ament o USB apenas par a esses di sposi t i vos. Pr esent e em ker nel 2. 2. Tipos de drivers e chipset USB Atualmente h dois tipos ofciais 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 especifcaes 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 Cont r ol l er ( EHCI ) Dr i ver 2 ohci _hcd: USB 1. 1 Open Host Cont r ol l er ( OHCI ) Dr i ver 3 ohci _hcd 0000: 00: 01. 2: f ound PCI I NT D - > I RQ 5 4 ohci _hcd 0000: 00: 01. 2: shar i ng I RQ 5 wi t h 0000: 00: 01. 3 5 ohci _hcd 0000: 00: 01. 2: OHCI Host Cont r ol l er 6 ohci _hcd 0000: 00: 01. 2: new USB bus r egi st er ed, assi gned bus number 1 7 ohci _hcd 0000: 00: 01. 2: i r q 5, i o mem0xdf f d0000 8 usb usb1: Manuf act ur er : Li nux 2. 6. 31. 5- 127. f c12. i 686. PAE ohci _hcd 9 ohci _hcd 0000: 00: 01. 3: f ound PCI I NT D - > I RQ 5 10 ohci _hcd 0000: 00: 01. 3: shar i ng I RQ 5 wi t h 0000: 00: 01. 2 11 ohci _hcd 0000: 00: 01. 3: OHCI Host Cont r ol l er 12 ohci _hcd 0000: 00: 01. 3: new USB bus r egi st er ed, assi gned bus number 2 13 ohci _hcd 0000: 00: 01. 3: i r q 5, i o mem0xdf f e0000 14 usb usb2: Manuf act ur er : Li nux 2. 6. 31. 5- 127. f c12. i 686. PAE ohci _hcd 15 uhci _hcd: USB Uni ver sal Host Cont r ol l er I nt er f ace dr i ver 16 usb 1- 1: new l ow speed USB devi ce usi ng ohci _hcd and addr ess 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 Cont r ol l er : Si l i con I nt egr at ed Syst ems [ Si S] USB 1. 1 Cont r ol l er ( r ev 07) ( pr og- i f 10 [ OHCI ] ) Subsyst em: Si l i con I nt egr at ed Syst ems [ Si S] USB 1. 1 Cont r ol l er 00: 01. 3 USB Cont r ol l er : Si l i con I nt egr at ed Syst ems [ Si S] USB 1. 1 Cont r ol l er ( r ev 07) ( pr og- i f 10 [ OHCI ] ) Subsyst em: Si l i con I nt egr at ed Syst ems [ Si S] Onboar d USB Cont r ol l er ) 38 Tpico 101: Arquitetura do Sistema Tabela 101.1.8: Quadro dos fabricantes com modelo USB. OHCI (USB 1.0) UHCI (USB 1.1) EHCI (USB 2.0) Compac Intel Intel ALI VIA VIA NEC --- NEC Opti Chipset --- 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 verifcar se seu hardware tem algum suporte a USB 2.0, use o comando l spci - v | gr ep HCI . Arquivos ligados aos mdulos (ehci, ohci e uhci) fcam 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 fnalidade de guardar os mdulos que sero carregados pelo sistema. Ele consultado pelos programas modpr obe e depmod. Aqui j percebemos que o sistema est usando OHCI. # cat /etc/modprobe.conf | grep -i usb al i as usbdevf s usbcor e al i as usb ohci - hcd Os mdulos (drivers) no sistema Linux so arquivos que tem o sufxo .o ou .ko. Veja esse exemplo: # find /lib/modules/2.6.31.5-127.fc12.i686.PAE/ -iname "*.ko" -print | grep audio / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ pcmci a/ pdaudi ocf / snd- pdaudi ocf . ko / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ usb/ snd- usb- audi o. ko / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ pci / echoaudi o/ snd- l ayl a20. ko / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ pci / echoaudi o/ snd- mona. ko / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ pci / echoaudi o/ snd- mi a. ko / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ pci / echoaudi o/ snd- i ndi go. ko Tpico 101.1: Identifcao e confgurao de hardware 39 / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ pci / echoaudi o/ snd- dar l a24. ko / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ pci / echoaudi o/ snd- dar l a20. ko / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ pci / echoaudi o/ snd- echo3g. ko / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ pci / echoaudi o/ snd- i ndi goi o. ko / l i b/ modul es/ 2. 6. 31. 5- 127. f c12. i 686. PAE/ ker nel / sound/ pci / echoaudi o/ snd- i ndi goi ox. 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 fotogrfcas digitais; audio: Placas de som USB e joydev: Joystick USB. Os mdulos ativos para dispositivos USB fcam 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, fque 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 ( . . . ) al i as usb uhci post - i nst al l uhci modpr obe pr i nt er post - i nst al l pr i nt er modpr obe j oydev post - i nst al l j oydev modpr obe hi d 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 verifcao 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- byt e har dwar e sect or s: ( 80. 0 GB/ 74. 5 Gi B) ( . . . ) sda: sda1 sda2 sda3 sd 0: 0: 0: 0: [ sda] At t ached SCSI di sk EXT3 FS on sda2, i nt er nal j our nal 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 grfco. E pelo modo texto usamos essa ideia: # dmesg | grep sdb sd 2: 0: 0: 0: [ sdb] 4014080 512- byt e har dwar e sect or s: ( 2. 05 GB/ 1. 91 Gi B) ( . . . ) sd 2: 0: 0: 0: [ sdb] Assumi ng dr i ve cache: wr i t e t hr ough sdb: sdb1 sd 2: 0: 0: 0: [ sdb] At t ached SCSI r emovabl e di sk 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: Identifcao e confgurao 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.