除了包括各个进程的信息之外,/proc
也还包含您机器上各种硬件的信息。浏览 /proc
目录,您将看到:
$ 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/
例如,查看 /proc/interrupts
的内容将了解系统当前使用的中断的情况,以及它们相应的外设。同样,ioports
包含当前被占用的输入/输出地址范围列表,而 dma
给出了 DMA 通道的使用情况。因此,要查找冲突原因,请查看这三个文件的内容:
$ 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
更简单的是使用 lsdev 命令。它将从这些文件中收集信息,并按照外设对它们排序以方便用户[29]:
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
apm
:如果您在使用膝上型计算机,该文件的内容表示电池的当前状态。您可以看到 AC 是否插上,电池的充电状态;如果您的膝上型计算机的 APM BIOS 支持的话(不幸的是,这并非必然),还会显示电池剩余的使用分钟数。该文件本身并不易于阅读,因此您会需要使用 apm 命令将该信息以人类可阅读格式显示出来。
bus
:该子目录包含您机器上的总线能够找到的所有外设信息。这些信息通常是不可阅读的,不过可以使用外部工具(比如 lspcidrake、lspnp 等)对其中大部分重新格式化。
acpi
:拥有膝上型计算机的人会对该目录中的某些文件感兴趣。其中他们可以选择某些省电选项。请注意,通过更高级的应用程序(比如包含在 acpid
软件包中的一些程序)来修改这些选项更为容易。