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