방금 Debian SID 컴퓨터에서 dist 업그레이드를 했는데 소리가 사라졌습니다.
루트에서는 오디오 파일을 재생할 수 있지만 일반 사용자로는 재생할 수 없습니다. 나는 "오디오" 그룹에 속해 있는지 확인했습니다. 실행하여 침묵이 발생했는지 확인했습니다.알사 믹서, 그러나 모든 라인이 작동 중입니다.
이것은 내 컴퓨터의 오디오 출력입니다.
$ lspci | grep Audio
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
01:00.1 Audio device: NVIDIA Corporation GK107 HDMI Audio Controller (rev a1)
HDMI 출력(NVIDIA 컨트롤러)이 분리되어 있습니다. 내 오디오 헤더가 Intel 컨트롤러에 연결되어 있습니다. 달릴 때 이 운전자를 볼 수 있어요알사 믹서, 하지만 내 그래픽 카드의 HDMI 출력만 볼 수 있습니다.파부 컨트롤출력 장치.
오디오 수신기를 나열하면 빈 장치만 표시됩니다.
$ pacmd list-sinks
1 sink(s) available.
* index: 2
name: <auto_null>
driver: <module-null-sink.c>
flags: DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
state: IDLE
suspend cause:
priority: 1000
volume: front-left: 56362 / 86% / -3,93 dB, front-right: 55706 / 85% / -4,23 dB
balance -0,01
base volume: 65536 / 100% / 0,00 dB
volume steps: 65537
muted: no
current latency: 5,63 ms
max request: 6 KiB
max rewind: 6 KiB
monitor source: 2
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stéréo
used by: 0
linked by: 1
configured latency: 40,00 ms; range is 0,50 .. 2000,00 ms
module: 20
properties:
device.description = "Sortie factice"
device.class = "abstract"
device.icon_name = "audio-card"
나는 데비안에서 사운드 시스템이 어떻게 작동하는지 잘 이해하지 못하지만 일반 사용자가 Intel 칩에 접근할 수 없다는 것은 이해한다고 생각합니다. 이제부터 막혀서 어찌할 바를 모르겠습니다...
편집하다:
alsamixer에서 자동 음소거를 비활성화하여 사운드를 복원했습니다. 이 설정은 시스템 업데이트 중에 어느 정도 변경되었습니다.
그런데 재부팅 후 문제가 다시 나타났지만 자동 음소거는 여전히 꺼져 있었습니다.
dirkt의 답변 덕분에 이 문제의 원인을 찾은 것 같습니다. 런타임플레이-L일반 사용자와 루트 사용자로서 저는 몇 가지 차이점을 발견했습니다.
$ aplay -L
default
Playback/recording through the PulseAudio sound server
sysdefault:CARD=PCH
HDA Intel PCH, ALC887-VD Analog
Default Audio Device
$ sudo aplay -L
default:CARD=PCH
HDA Intel PCH, ALC887-VD Analog
Default Audio Device
sysdefault:CARD=PCH
HDA Intel PCH, ALC887-VD Analog
Default Audio Device
단순 사용자로 실행시 기본 카드가 다른 것 같습니다. 선택할 때 약간의 소리가 날 수 있습니다.시스템 기본값바꾸다기본일반 사용자 카드.
$ aplay -D sysdefault sound.wav
하지만 지금은 좀 갇혔어요. 문제의 원인을 정확히 찾아낸 것 같은데 해결 방법을 모르겠습니다...
답변1
다음 명령을 실행하여 문제를 해결했습니다.
sudo apt-get remove --purge timidity
이것이 제거되는지 확인하십시오소심한그리고소심한 악마. 내가 이해한 바에 따르면 데몬은 시작 시 일부 리소스를 획득하고 다른 서비스가 사운드 카드를 찾지 못하게 합니다. 소심함은 MIDI 파일과 관련이 있다고 생각하므로 패키지를 제거할 때 해당 파일이 필요하지 않은지 확인하고 제거하려는 항목이 무엇인지 확인하십시오.
이를 통해 일부 사용자의 문제가 해결되기를 바랍니다. 위의 문제가 해결되면 나중에 timidity를 다시 설치하고 싶을 수도 있습니다.
답변2
사운드에 대한 간략한 개요: 사운드 하드웨어는 커널 드라이버(이전 ALSA의 일부)에 의해 관리되고, ALSA는 커널 드라이버에 액세스하기 위한 라이브러리를 제공하며(alsamixer에서 볼 수 있는 내용), Pulseaudio는 ALSA 위에서 실행됩니다. 한 가지 이유는 ALSA 장치는 추가 노력 없이 단일 프로그램에서만 사용할 수 있는 반면, Pulseaudio는 전송 계층을 제공하여 여러 프로그램이 하드웨어를 사용할 수 있다는 것입니다.
Pulseaudio에 수신기가 없다는 것은 Pulseaudio가 ALSA 장치를 획득할 수 없다는 것을 의미합니다. 아마도 (1) 권한이 잘못되었거나, (2) 다른 것이 이미 이를 사용하고 있거나, (3) 완전히 다른 것이 잘못되었기 때문일 것입니다.
따라서 첫 번째 단계는 Pulseaudio를 중지한 다음 이를 사용하여 aplay -L
ALSA 장치를 보고 aplay -D ... audio_file.wav
장치에 직접 액세스할 수 있는지 확인하는 것입니다. 결과에 따라 다음 단계는 장치를 차단하는 것이 무엇인지 확인하거나(다른 것이 더 일찍 시작되어 이를 사용하고 있음) Pulseaudio가 ALSA 장치를 사용하지 않는 이유(예: 로드 중)를 알아내는 것입니다.모듈 alsa 카드직접 사용하세요 pacmd
. 오류 메시지/로그 항목을 참조하세요. Pulseaudio를 중지하는 방법은 systemd를 사용하거나 데스크탑 시스템을 통해 로그인하여 시작한 방법에 따라 다릅니다.
등을 사용하여 실행 중인 프로세스에 대한 명령줄을 확인하면 ps axu
위 사항에 대한 힌트를 얻을 수 있으며 Pulseaudio가 올바르게 중지되고 자체적으로 다시 시작되지 않았는지 확인할 수도 있습니다.
답변3
문제 해결: 업그레이드 후 어떤 이유로 출력이 자동으로 음소거됩니다. alsamixer에서 변경하면됩니다.
때로는 깊게 파고들 필요가 없습니다.
답변4
실제로 문제는 PulseAudio와 Blob이 있는 NVidia GPU를 사용할 때 발생합니다.
해결 방법에는 /etc/pulse/daemon.conf에 가비지를 삽입하여 PulseAudio가 시작되지 않도록 방지하는 것이 포함됩니다(파일 끝에 문자를 삽입하기만 하면 됩니다). 그러면 AlsaMixer를 통해서만 볼륨을 설정할 수 있지만 최소한 소리는 다시 나올 것입니다.
이 문제에 대해 티켓 #918522를 제출했습니다. 자유롭게 기여해 주세요.