PC 스피커를 에뮬레이트하는 방법은 무엇입니까?

PC 스피커를 에뮬레이트하는 방법은 무엇입니까?

최신 노트북을 구입했는데 하드웨어 스피커가 없는 것 같습니다. ALSA를 통해 이를 에뮬레이트할 수 있는 커널 모듈이 있습니까? 최신 커널 버전에서는 거의 작동하지 않는 90년대 후반의 아주 오래된 패치 모듈만 찾을 수 있었습니다.

답변1

저렴한 AMD 미니 PC에서도 같은 문제가 발생했습니다. 저는 나이가 많고 시력이 나빠서 편집하거나 터미널을 사용할 때 삐 소리가 나는 걸 좋아합니다. 키보드를 두드려 졸다가도 알림음으로 깨울 수 있어요 :)

보드크로로와 논의한 후 그는 자신의 질문에 여기에 대답해야 한다고 제안했습니다. 두 가지 해결책을 찾았지만 둘 다 완벽하지는 않습니다.

삐 소리를 복원하는 방법을 찾고 있습니다. Lennart Poettering은 2002년에 LD_PRELOAD 방법을 사용하여 Softbeep을 작성했습니다. 시도해 보았지만 나에게는 잘 맞지 않았습니다.

그러다가 내가 찾았어https://github.com/mozzwald/Fancy-Beeper-Daemon패치 및 테스트 후 아치 리눅스 AUR을 작성하여 dkms 모듈로 빌드했습니다. https://aur.archlinux.org/packages/fancybeep-dkms 합리적인 경고음을 생성하기 위해 간단한 alsa 경고음 루틴을 추가했습니다. 이것은 작동하지만 데몬이 모듈(/dev/beep)에 의해 생성된 장치 중 하나에 정지되어 있기 때문에 모듈이 사용 중이기 때문에 modprobe -r fancybeep이 실패합니다. 따라서 먼저 사용자 공간 경고음 데몬을 종료해야 합니다.

SIGUSR1 신호에서 경고음이 울리도록 데몬을 변경하고 추가 장치 /dev/beep를 제거했습니다. 이 모듈에는 데몬이 PID를 보낼 수 있는 매개변수가 있습니다. 그런 다음 모듈은 신호음이 울려야 할 때 데몬에 신호를 보낼 수 있습니다. 이 방법https://aur.archlinux.org/packages/alsabeep-dkms또한 가능하지만 분명히 약간 안전하지 않습니다. 마치 모듈의 PID 매개변수를 지우지 않고 데몬이 종료되는 것처럼 모듈에 남겨진 PID 신호가 오래되어 나중에 문제가 될 수 있습니다.

올바른 방법은 PID를 가져오고 신호를 사용하거나 넷링크를 사용하여 경고음을 요청할 수 있는 데몬의 모듈을 직접 시작하는 것입니다. 나는 이 작업을 수행하는 방법을 알아낼 만큼 하드코어하지 않습니다.

관련 정보