ctinnist Asked: 2009-11-03 06:48:00 +0800 CST2009-11-03 06:48:00 +0800 CST 2009-11-03 06:48:00 +0800 CST 替代 /proc/interrupts 772 我想获得有关分配给我的网卡的中断的信息。除了 /proc/interrupts 还有其他方法吗? networking 2 个回答 Voted Best Answer Kyle Brandt 2009-11-03T07:47:57+08:002009-11-03T07:47:57+08:00 内核信息有两个通用接口(除了系统调用),它们被实现为文件系统。这两个文件系统是 /proc 和 /sys。sys 比 proc 和更新的更有条理,但不是用户友好的。所以对程序员来说稍微好一点,避免解析。 如果您想要来自 sys 文件系统的信息(lspci 解析的信息(请参阅由 输出的一些文件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.xml 中的其他位置。例如,在 /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 HTTP500 2009-11-03T07:30:50+08:002009-11-03T07:30:50+08:00 lspci -v 将显示分配给您的网卡的 IRQ。 干杯
内核信息有两个通用接口(除了系统调用),它们被实现为文件系统。这两个文件系统是 /proc 和 /sys。sys 比 proc 和更新的更有条理,但不是用户友好的。所以对程序员来说稍微好一点,避免解析。
如果您想要来自 sys 文件系统的信息(lspci 解析的信息(请参阅由 输出的一些文件
strace -o somefile lspci
)):注意两个命令之间的 00:19 关系。irq 文件返回的数字将与相关设备的 /proc/interrupts 的第一列相同。
如果您想了解有关 sys 文件系统的更多信息,请查看内核源代码中包含的文档,例如
/usr/src/linux-source-2.6.27/Documentation/filesystems
更新:
当然,如果您使用 sys,您会发现有很多符号链接指向 sys.xml 中的其他位置。例如,在 /sys/class/net 中:
因此,要获取 eth0 的 irq,您可以:
lspci -v 将显示分配给您的网卡的 IRQ。
干杯