Aparte dos diretórios associados a
processos, o /proc
também contém uma miríade
de informação sobre o hardware na sua máquina. Uma listagem de
arquivos no diretório /proc
exibe o seguinte:
$ ls -d [a-z]* acpi/ diskstats iomem locks pci sysvipc/ asound/ dma ioports mdstat scsi/ tty/ buddyinfo driver/ irq/ meminfo self@ uptime bus/ execdomains kallsyms misc slabinfo version cmdline fb kcore modules splash vmstat config.gz filesystems keys mounts@ stat cpuinfo fs/ key-users mtrr swaps crypto ide/ kmsg net/ sys/ devices interrupts loadavg partitions sysrq-trigger $
Por exemplo, se olharmos
no conteúdo de /proc/interrupts
, nós podemos
ver que ele contém a lista de interrupções que estão sendo
utilizadas pelo sistema, junto com o periférico que as
utiliza. Similarmente, ioports
contém a lista
de intervalos de endereços de entrada/saída que estão ocupados, e
por último, o dma
faz o mesmo para os canais
DMA. Então, quando quiser localizar um conflito, olhe o conteúdo
destes três arquivos:
$ cat interrupts CPU0 0: 543488 XT-PIC timer 2: 0 XT-PIC cascade 5: 109 XT-PIC ohci_hcd:usb2, eth1 7: 1 XT-PIC parport0 8: 0 XT-PIC rtc 9: 3432 XT-PIC acpi, NVidia CK8 10: 52855 XT-PIC ehci_hcd:usb3, eth0 11: 7538 XT-PIC libata, ohci_hcd:usb1 12: 1386 XT-PIC i8042 14: 20 XT-PIC ide0 15: 5908 XT-PIC ide1 NMI: 0 LOC: 0 ERR: 0 MIS: 0 $ cat ioports 0000-001f : dma1 0020-0021 : pic1 0040-0043 : timer0 0050-0053 : timer1 0060-006f : keyboard 0070-0077 : rtc 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 0376-0376 : ide1 0378-037a : parport0 037b-037f : parport0 03c0-03df : vesafb 03f6-03f6 : ide0 03f8-03ff : serial 0778-077a : parport0 0970-0977 : 0000:00:0b.0 0970-0977 : sata_nv 09f0-09f7 : 0000:00:0b.0 09f0-09f7 : sata_nv 0b70-0b73 : 0000:00:0b.0 0b70-0b73 : sata_nv 0bf0-0bf3 : 0000:00:0b.0 0bf0-0bf3 : sata_nv 0cf8-0cff : PCI conf1 4000-407f : motherboard 4000-4003 : PM1a_EVT_BLK 4004-4005 : PM1a_CNT_BLK 4008-400b : PM_TMR 4020-4027 : GPE0_BLK 4080-40ff : motherboard 4080-40ff : pnp 00:00 4200-427f : motherboard 4200-427f : pnp 00:00 4280-42ff : motherboard 4280-42ff : pnp 00:00 4400-447f : motherboard 4400-447f : pnp 00:00 4480-44ff : motherboard 44a0-44af : GPE1_BLK 5000-503f : motherboard 5000-503f : pnp 00:01 5100-513f : motherboard 5100-513f : pnp 00:01 9000-9fff : PCI Bus #02 9000-907f : 0000:02:07.0 9000-907f : 0000:02:07.0 ac00-ac0f : 0000:00:0b.0 ac00-ac0f : sata_nv b000-b07f : 0000:00:0b.0 b000-b07f : sata_nv b800-b8ff : 0000:00:06.0 b800-b8ff : NVidia CK8 bc00-bc7f : 0000:00:06.0 bc00-bc7f : NVidia CK8 c000-c007 : 0000:00:04.0 c000-c007 : forcedeth c400-c41f : 0000:00:01.1 f000-f00f : 0000:00:09.0 f000-f007 : ide0 f008-f00f : ide1 $cat dma 3: parport0 4: cascade $
Ou, de maneira mais simlpes, use o comando lsdev, que reúne informação destes arquivos e ordena-as por periféricos, o que é, sem dúvida, mais conveniente.[8]:
$ lsdev Device DMA IRQ I/O Ports ------------------------------------------------ 0000:00:01.1 c400-c41f 0000:00:04.0 c000-c007 0000:00:06.0 b800-b8ff bc00-bc7f 0000:00:09.0 f000-f00f 0000:00:0b.0 0970-0977 09f0-09f7 0b70-0b73 0bf0-0bf3 ac00-ac0f b000-b07f 0000:02:07.0 9000-907f 9000-907f cascade 4 2 CK8 9 dma 0080-008f dma1 0000-001f dma2 00c0-00df eth0 10 eth1 5 forcedeth c000-c007 fpu 00f0-00ff GPE0_BLK 4020-4027 GPE1_BLK 44a0-44af i8042 12 ide0 14 01f0-01f7 03f6-03f6 f000-f007 ide1 15 0170-0177 0376-0376 f008-f00f keyboard 0060-006f motherboard 4000-407f 4080-40ff 4200-427f 4280-42ff 4400-447f 4480-44ff 5000-503f 5100-513f NVidia b800-b8ff bc00-bc7f ohci_hcd:usb1 11 parport0 3 7 0378-037a 037b-037f 0778-077a PCI 0cf8-0cff 9000-9fff pic1 0020-0021 pic2 00a0-00a1 PM1a_CNT_BLK 4004-4005 PM1a_EVT_BLK 4000-4003 PM_TMR 4008-400b pnp 4080-40ff 4200-427f 4280-42ff 4400-447f 5000-503f 5100-513f rtc 8 0070-0077 sata_nv 0970-0977 09f0-09f7 0b70-0b73 0bf0-0bf3 ac00-ac0f b000-b07f serial 03f8-03ff timer 0 timer0 0040-0043 timer1 0050-0053 vesafb 03c0-03df $
Uma listagem exaustiva dos arquivos demoraria demais, então aqui vai uma descrição dos principais:
cpuinfo
: este
arquivo contém, como o próprio nome diz, informação sobre o(s)
processador(es) presente(s) em sua máquina.
modules
: este arquivo
contém a lista de módulos que estão sendo utilizadas pelo kernel,
junto com a contagem de uso de cada um. Na verdade, esta é a
informação utilizada pelo comando lsmod que a exibe
de uma maneira mais inteligível.
meminfo
: este
arquivo contém informação sobre o uso de memória no momento em
que voce exibe o conteúdo dele. O comado
free exibe a mesma informação de uma
maneira mais fácil de se entender.
apm
: se você
possui um laptop, exibir o conteúdo deste arquivo irá permitir
qe você visualize o estado da bateria. Você pode ver quando o AC
está plugado, o nível de carga da bateria, e se a APM
BIOS de seu laptop suportar (infelizmente nem todos
possuem suporte), o tempo restante da bateria em minutos,
etc. O arquivo não é muito legível por si só, então talvez você
prefira utilizar o comando apm, o qual
oferece a mesma informação em um formato que pode ser
entendido por humanos.
Note que computadores modernos agora oferecem suporte a ACPI em vez de APM. Veja abaixo.
bus
: este
subdiretório contém informação sobre todos os periféricos
encontrados em diferentes barramentos na sua máquina. A
informação normalmente não é legível, e na maior parte das
vezes ela é reformatada com utilitários externos: lspcidrake, lspnp, etc.
acpi
: vários dos arquivos e diretórios contidos são úteis especialmente para laptops, onde você pode selecionar várias opções para economizar energia. Note que é mais fácil modificar estas opções com uma aplicação de alto nível, como as que estão inclusas nos pacotes acpid
e kapacity
.
As entradas mais interessantes são:
battery
Mostra quantas baterias estão no laptop, e informações relacionadas como a quantidade de carga restante, capacidade máxima, etc.
button
Permite que você controle ações associadas a botões “especiais” como power, sleep, lid, etc.
fan
Exibe o estado dos ventiladores do seu computador, se estão funcionando ou não, e permite que você pare/inicie eles de acordo com um certo critério. O nível de controle dos ventiladores em sua máquina depende da placa-mãe.
processor
Há um subdiretório para cada CPU na sua máquina. Opções de controle variam de um processador para outro. Processadores móveis possuem mais funcionalidade, incluindo:
Note que existem muitos processadores que não oferecem estas possibilidade.
thermal_zone
Informação sobre o quão quente o seu sistema/processador está.