2. Informations sur le matériel

Outre les répertoires des différents processus, /proc contient aussi une foule de renseignements sur le matériel présent dans votre machine. Une liste des fichiers du répertoire /proc donne ceci :

$ ls -d [a-z]*
apm         devices      interrupts  loadavg  partitions  sysrq-trigger
asound/     diskstats    iomem       locks    pci         sysvipc/
bluetooth/  dma          ioports     mdstat   scsi/       tty/
buddyinfo   driver/      irq/        meminfo  self@       uptime
bus/        execdomains  kallsyms    misc     slabinfo    version
cmdline     fb           kcore       modules  splash      vmstat
cpufreq     filesystems  keys        mounts@  stat
cpuinfo     fs/          key-users   mtrr     swaps
crypto      ide/         kmsg        net/     sys/

Par exemple, en ce qui concerne le contenu de /proc/interrupts, on constate qu'il contient la liste des interruptions actuellement utilisées par le système, ainsi que le périphérique qui les utilise. De même, ioports contiendra la liste des plages d'entrée/sortie actuellement activées, et enfin dma fera de même avec les canaux DMA. Ainsi, pour repérer un conflit, il suffira de vérifier le contenu de ces trois fichiers :

$ cat interrupts 
           CPU0       
  0:   73751906    IO-APIC-edge  timer
  2:          0          XT-PIC  cascade
  3:      44301    IO-APIC-edge  NVidia CK8
  9:     115618    IO-APIC-edge  ohci_hcd
 10:    7758240    IO-APIC-edge  ohci_hcd, eth0
 11:     218753    IO-APIC-edge  libata, ehci_hcd
 12:    1153980    IO-APIC-edge  i8042
 15:       3419    IO-APIC-edge  ide1
NMI:          0 
LOC:   73749577 
ERR:          0
MIS:          0

$ cat ioports 
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
0376-0376 : ide1
0378-037a : parport0
037b-037f : parport0
03c0-03df : vesafb
03f8-03ff : serial
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
d000-d00f : 0000:00:0b.0
  d000-d00f : sata_nv
d400-d47f : 0000:00:0b.0
  d400-d47f : sata_nv
d800-d8ff : 0000:00:06.0
  d800-d8ff : NVidia CK8
dc00-dc7f : 0000:00:06.0
  dc00-dc7f : NVidia CK8
e000-e007 : 0000:00:04.0
  e000-e007 : forcedeth
e400-e41f : 0000:00:01.1
f000-f00f : 0000:00:09.0
  f000-f007 : ide0
  f008-f00f : ide1

$ cat dma
 4: cascade

Ou, plus simplement, utilisez la commande lsdev, qui regroupe les informations de ces trois fichiers et classe les informations par périphérique.[32] :

lsdev 
Device            DMA   IRQ  I/O Ports
------------------------------------------------
0000:00:01.1                 e400-e41f
0000:00:04.0                 e000-e007
0000:00:06.0                 d800-d8ff dc00-dc7f
0000:00:09.0                 f000-f00f
0000:00:0b.0                 0970-0977 09f0-09f7 0b70-0b73 0bf0-0bf3 d000-d00f d400-d47f
cascade             4     2 
CK8                       3 
dma                          0080-008f
dma1                         0000-001f
dma2                         00c0-00df
ehci_hcd                 11 
eth0                     10 
forcedeth                      e000-e007
fpu                          00f0-00ff
i8042                    12 
ide0                           f000-f007
ide1                     15  0170-0177 0376-0376   f008-f00f
keyboard                     0060-006f
NVidia                         d800-d8ff   dc00-dc7f
ohci_hcd                  9 
parport0                     0378-037a 037b-037f
PCI                          0cf8-0cff
pic1                         0020-0021
pic2                         00a0-00a1
sata_nv                        0970-0977   09f0-09f7   0b70-0b73   0bf0-0bf3   d000-d00f   d400-d47f
serial                       03f8-03ff
timer                     0 
timer0                       0040-0043
timer1                       0050-0053
vesafb                       03c0-03df

Une énumération complète des fichiers présents serait trop longue. Néanmoins, voici la description de quelques-uns d'entre eux :



[32] lsdev fait partie du paquetage procinfo.