Master
핵심요약: 루트는 ALSA의 제어 에 액세스할 수 없습니다.
내 질문
키보드로 볼륨을 조절할 수 없습니다
내가 내린 진단
journalctl -f
오류를 드러내다amixer: Unable to find simple control 'Master', 0
amixer
터미널에서 실행하면 잘 되더라구요
이로 인해 권한 문제라고 생각됩니다.
내 환경
- 내 acpid 볼륨 낮추기 프로필은 다음과 같습니다.
events=button/volumedown
action=amixer set Master
저는 Arch Linux와 Windows를 듀얼 부팅합니다.
예전에는 xfce를 사용했는데 기분에 따라 제거하고 dwm/lxde로 전환했습니다.
나는 블루투스를 지원하기 위해 PulseAudio를 사용하고 있습니다.
내가 지금까지 시도한 것
doas 사용(sudo와 같은)
- 정확히 같은 오류입니다 . 단, 그 앞에 (내 사용자 이름은 vince입니다)
journalctl -f
라는 줄이 있습니다.root ran command amixer set Master 5- as vince from /
- 정확히 같은 오류입니다 . 단, 그 앞에 (내 사용자 이름은 vince입니다)
사용
pactl
- 같은 질문
솔루션을 통해 무엇을 얻고 싶나요?
Master
컨트롤에 대한 루트 액세스를 제공합니다.sudo
OR은 실제로 여러 사용자에게 확장되지 않기 때문에 의존하고 싶지 않습니다.doas
(하지만 임시 해결 방법으로 사용할 수 있습니다.)콘솔 및
X
모든 사용자에게 작동할 필요는 없지만 작동한다면 선호합니다.
(답이 이 모든 것을 만족하지 못해도 괜찮습니다. 그냥 볼륨키를 사용하고 싶습니다)
답변1
나는 블루투스를 지원하기 위해 PulseAudio를 사용하고 있습니다.
pacmd
Pulseaudio를 실행하는 경우 볼륨 설정을 위해 (또는 스크립트를 통해) Pulseaudio API를 사용하십시오 pactl
.
Pulseaudio는 이 "기본" 컨트롤을 포함하지만 Pulseaudio 볼륨 설정에 매핑되는 ALSA에 대한 호환성 레이어를 제공합니다.
또한 읽어보세요전체 시스템사용자별 Pulseaudio를 갖춘 Pulseaudio. 후자가 기본 설정이므로 Pulseaudio를 시작한 로그인 사용자 이외의 사용자는 루트를 포함하여 Pulseaudio에 액세스할 수 없습니다.
따라서 귀하의 문제는 ALSA 문제가 아닙니다. ALSA에서는 귀하만이 보편적인 "마스터" 제어를 가질 수 없습니다(대부분의 경우에도 불구하고).사운드 카드실제로 하나가 있습니다. 이에 대한 루트 액세스는 ALSA에서만 문제가 되지 않습니다.
답변2
이 문제를 성공적으로 해결했습니다. 의심했던 대로 root
펄스 오디오로 인해 사용자의 수신기에 액세스할 수 없습니다. @dirkt의 답변으로 인해 여기에 강조 표시된 pulseaudio에 대한 솔루션을 찾게 되었습니다.pactl은 i3의 루트가 아닌 사용자 공간에서 작동합니다..
를 사용하고 있었기 때문에 에 doas
추가해야 했습니다 . 그런 다음 acpid 구성 파일을 다음과 같이 편집했습니다.setenv {XDG_RUNTIME_DIR=/run/user/1000}
doas.conf
event=button/volumedown
action=doas -u vince pactl set-sink-volume @DEFAULT_SINK@ -5%%
더 나은 해결책은 @dikrt의 답변에서 알 수 있듯이 시스템 전체 펄스 오디오를 사용하는 것일 수 있지만 이것이 지금까지 내가 가진 해결책입니다.