IRQ 값이 무료로 사용 가능한지 확인하는 방법

IRQ 값이 무료로 사용 가능한지 확인하는 방법

PNP(플러그 앤 플레이)를 지원하지 않는 장치를 추가하는 경우 제조업체는 해당 장치에 IRQ 값을 할당하는 방법에 대한 명확한 지침을 제공해야 합니다.

하지만 어떤 IRQ 값을 지정해야 할지 모른다면 IRQ 값이 사용 가능한지 확인하기 위해 어떤 명령줄을 사용해야 할까요?

lsdev장치에 대한 정보를 표시합니다:

$lsdev 
Device            DMA   IRQ  I/O Ports
------------------------------------------------
0000:00:02.0                   7000-703f
0000:00:1f.2                   7060-707f   7080-7087   7088-708f   7090-7093   7094-7097
0000:00:1f.3                   efa0-efbf
0000:01:00.0                     6000-607f
0000:04:00.0                     4000-40ff
0000:05:00.0                     3000-30ff
acpi                      9 
ACPI                           1800-1803   1804-1805   1808-180b   1810-1815   1820-182f   1850-1850
ahci                     43      7060-707f     7080-7087     7088-708f     7090-7093     7094-7097
cascade             4       

이 cmd 는 어떻습니까 lsdev? 이 작업을 수행하는 데 충분합니까? 예를 들어 1233이 사용 가능한지 알고 싶다면 다음 명령을 실행하면 됩니다.

lsdev | awk '{print $3}'|grep 1233  

노트: $3위 방법을 사용하는 이유는 IRQ 값이 출력의 세 번째 열에 인쇄되기 때문입니다 lsdev.

그렇다면 출력이 없다면 우리가 무료로 사용할 수 있다는 뜻인가요?

답변1

맨페이지를 보면 lsdev이런 코멘트가 있습니다.

이 프로그램은 실제로 물리적으로 사용 가능한 하드웨어가 아닌 존재하는 하드웨어에 대한 커널의 아이디어만 보여줍니다.

출력은 lsdev실제로 파일의 내용입니다 /proc/interrupts.

에서 발췌man proc

   /proc/interrupts
        This  is  used to record the number of interrupts per CPU per IO 
        device.  Since Linux 2.6.24, for the i386 and x86_64 architectures,
        at least, this also includes interrupts internal to the system (that 
        is, not associated with a device as such), such  as  NMI  (non‐
        maskable  interrupt), LOC (local timer interrupt), and for SMP 
        systems, TLB (TLB flush interrupt), RES (rescheduling interrupt), 
        CAL (remote function call interrupt), and possibly others.  Very 
        easy to read formatting, done in ASCII.

그래서 나는 아마도 다음을 삭제할 것입니다 /proc/interrupts:

$ cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       
  0:        157          0          0          0   IO-APIC-edge      timer
  1:     114046      13823      22163      22418   IO-APIC-edge      i8042
  8:          0          0          0          1   IO-APIC-edge      rtc0
  9:     863103     151734     155913     156348   IO-APIC-fasteoi   acpi
 12:    2401994     396391     512623     477252   IO-APIC-edge      i8042
 16:        555        593        598        626   IO-APIC-fasteoi   mmc0
 19:        127         31         83         71   IO-APIC-fasteoi   ehci_hcd:usb2, firewire_ohci, ips
 23:         32          8         21         16   IO-APIC-fasteoi   ehci_hcd:usb1, i801_smbus
 40:       5467       4735    1518263    1230227   PCI-MSI-edge      ahci
 41:    1206772    1363618    2193180    1477903   PCI-MSI-edge      i915
 42:        267    5142231        817        590   PCI-MSI-edge      iwlwifi
 43:          5          8          6          4   PCI-MSI-edge      mei_me
 44:          0          2          2      23405   PCI-MSI-edge      em1
 45:         19         66         39         23   PCI-MSI-edge      snd_hda_intel
NMI:      12126      25353      28874      26600   Non-maskable interrupts
LOC:   29927091   27300830   30247245   26674337   Local timer interrupts
SPU:          0          0          0          0   Spurious interrupts
PMI:      12126      25353      28874      26600   Performance monitoring interrupts
IWI:     634179     806528     600811     632305   IRQ work interrupts
RTR:          5          1          1          0   APIC ICR read retries
RES:    4083290    3763061    3806592    3539082   Rescheduling interrupts
CAL:      16375        624      25561        737   Function call interrupts
TLB:     806653     778539     828520     806776   TLB shootdowns
TRM:          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0   Machine check exceptions
MCP:        416        416        416        416   Machine check polls
ERR:          0
MIS:          0

인용하다

관련 정보