Назад | Перейти на главную страницу

Альтернатива / proc / interrupts

Я хочу получить информацию о прерываниях, назначенных моим сетевым картам. Есть ли другой способ, кроме / proc / interrupts?

Есть два общих интерфейса к информации ядра (кроме системных вызовов), и они реализованы как файловые системы. Эти две файловые системы - это / 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. Например, в / 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

Итак, чтобы получить irq для eth0, вы можете просто:

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

lspci -v покажет вам, какое IRQ назначено вашей сетевой карте (ам).

Ура