替代/ proc /中断

我想获得有关分配给我的网卡的中断的信息。 有没有其他的办法,比/ proc /中断?

内核信息有两个通用接口(除了系统调用),它们被实现为文件系统。 这两个文件系统是/ proc和/ sys。 sys比proc更新,但是不像用户友好。 所以对于程序员来说这样会更好一些,并避免parsing。

如果你想要sys文件系统的信息(lspciparsing(见strace -o somefile lspci输出的文件)):

 $ lspci | grep -i network 00:19.0 Ethernet controller: Intel Corporation 82566DC Gigabit Network Connection (rev 02) $ cat /sys/devices/pci0000:00/0000:00:19.0/irq 2299 

注意两个命令之间的00:19关系。 irq文件返回的数字将与相关设备的/ proc / interrupts的第一列相同。

如果你想了解更多有关sys文件系统的信息,请查看内核源代码文档,例如/usr/src/linux-source-2.6.27/Documentation/filesystems的文本文件

更新:

有没有办法将输出连接到接口名称?

当然,如果你玩sys,你会发现有很多符号链接指向sys中的其他位置。 例如,在/ sys / class / net中:

 [kbrandt@kb: /sys/class/net] ls -l lrwxrwxrwx 1 root root 0 2009-11-02 11:01 eth0 -> ../../devices/pci0000:00/0000:00:19.0/net/eth0 lrwxrwxrwx 1 root root 0 2009-11-02 11:01 lo -> ../../devices/virtual/net/lo lrwxrwxrwx 1 root root 0 2009-11-02 11:01 pan0 -> ../../devices/virtual/net/pan0 lrwxrwxrwx 1 root root 0 2009-11-02 11:01 vmnet1 -> ../../devices/virtual/net/vmnet1 lrwxrwxrwx 1 root root 0 2009-11-02 11:01 vmnet8 -> ../../devices/virtual/net/vmnet8 

所以要获得eth0的irq,你可以:

 cat /sys/class/net/eth0/../../irq 

lspci -v会告诉你哪个IRQ被分配给你的网卡。

干杯