Linux 커널 구성과 관련하여 항상 나를 괴롭히는 것: PC 스피커는 일반 경고음의 원인으로 "기타"로 간주됩니다.입력하다출력 관련 카테고리나 "Misc.device"에 속하기를 바랍니다. 장비".
│ CONFIG_INPUT_PCSPKR:
│
│ Say Y here if you want the standard PC Speaker to be used for
│ bells and whistles.
│
│ Prompt: PC Speaker support
│ Location:
│ -> Device Drivers
│ -> Input device support
│ -> Generic input layer (needed for keyboard, mouse, ...) (INPUT [=y])
│ -> Miscellaneous devices (INPUT_MISC [=y])
(참고: PC 스피커를 ALSA/OSS 사운드 카드로 사용하는 것과는 다릅니다.)
답변1
아마도 당시에는 편리했고 기존 커널 구조를 사용하는 사용자가 접근하기 가장 쉬운 방법이었기 때문일 것입니다.
할 수 있다는 것은 잘 알려져 있지 않습니다.쓰다/dev/input/eventX
파일 에 이런 식으로생산하다입력 레벨 이벤트.
같은 방법으로쓰다 EV_SND
/dev/input/eventX
이벤트를 스피커(또는 일반적으로 심볼릭 링크 중 하나)를 나타내는 파일 에 추가 /dev/input/by-path/platform-pcspkr-event-spkr
하고 이러한 방식으로 스피커를 사용하여 사운드를 생성합니다. 이것은 훨씬 덜 알려져 있습니다. :-)
이것은 지정된 피치로 음을 생성하는 32비트 시스템용 Perl oneliner입니다.
perl -e 'print pack("qssl", 0, 0x12, 2, 2000)' > /dev/input/by-path/platform-pcspkr-event-spkr
이것은 다른 온라인 사용자가 끌 수 있습니다.
perl -e 'print pack("qssl", 0, 0x12, 2, 0)' > /dev/input/by-path/platform-pcspkr-event-spkr
64비트 시스템의 경우 다음을 사용합니다.
package("qqssl", 0, 0, 0x12, 2, 간격)
실제 레이아웃은 구조를 정의하는 C 헤더 파일이 컴파일되는 방식에 따라 달라집니다.
그런데 HDA 오디오 장치에 대한 삽입 이벤트도 입력 레이어에 파일로 표시됩니다 /dev/input/eventX
. 실제라고 분류하는 것이 더 논리적이긴 하지만입력하다이벤트.