Arch에서 Pulseaudio가 손상됨: pa_stream_writable_size() 실패: 연결이 종료됨

Arch에서 Pulseaudio가 손상됨: pa_stream_writable_size() 실패: 연결이 종료됨

질문

고치려고 노력 중케이크 조각내 아치 시스템에서는 더 큰 시스템을 만든 것 같습니다. 내가 무슨 짓을 해서 이런 일이 발생했는지는 잘 모르겠지만(자세한 내용은 나중에 설명하겠습니다), 펄스 오디오를 사용하려고 할 때마다 충돌이 발생하는 것 같습니다.

mp3 파일을 재생하려고 하면클레멘타인,나는 얻다:

pa_stream_writable_size() failed: Connection terminated

Vlc가 재생되는 것 같지만 사운드 출력이 없으며 Vlc를 실행하는 터미널 창에 다음과 같은 오류 메시지 스트림이 표시됩니다.

[0000000001e24418] pulse audio output error: unknown latency: Bad state
[0000000001e24418] pulse audio output error: cannot write: Bad state
[0000000001e24418] pulse audio output error: unknown latency: Bad state
[0000000001e24418] pulse audio output error: cannot write: Bad state

온라인에서 발견한 유사한 문제에는 제거가 포함된 것 같습니다 gstreamer. 내 DE인 Cinnamon을 포함하여 이에 의존하는 패키지가 많기 때문에 제거를 수행하지 않는 것이 좋습니다. 소리가 괜찮았기 때문에 만지작거리기 전까지는 이것이 어떻게 문제가 될 수 있는지 이해하지 못했습니다.

이 문제에 영향을 미쳤을 수 있는 유일한 명령은 pulseaudio에서 감지한 카드 목록에 온보드 사운드 카드를 추가하려고 시도한 것입니다. 안타깝게도 내 컴퓨터가 동시에 충돌하여 하드 재부팅을 해야 했기 때문에 실행한 정확한 명령을 잃어버렸지만 결과는 다음과 같습니다.

pactl load-module module-alsa-card device_id="0" name="pci-0000_00_05.0" card_name="alsa_card.pci-0000_00_05.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes

나는 거기에서 잘못된 매개 변수를 사용하고 동일한 카드를 두 번 추가하고 있거나 카드 중 하나에 잘못된 이름이 있거나 그와 유사한 것으로 추측합니다.


아마도 관련 정보

$ pactl list short cards
0   alsa_card.pci-0000_00_1b.0  module-alsa-card.c
1   alsa_card.pci-0000_03_00.0  module-alsa-card.c

실행하려고 하면 pavucontrol사운드 카드가 보이고 즉시 다음으로 교체됩니다.

Establishing connection to pulseaudio server, please wait` 

그런 다음 카드, 메시지 등이 이어집니다. 이는 안정화될 때까지 수십 번 반복됩니다.

펄스오디오에 연결하지 못했습니다.

start-pulseaudio-x11수동으로 실행하려는 시도 도 실패했습니다.

$ start-pulseaudio-x11 
Connection failure: Connection refused
pa_context_connect() failed: Connection refused

/etc/pulse/client.conf파일은 다음과 같습니다(제목 삭제됨).

; default-sink =
; default-source =
; default-server =
; default-dbus-server =

autospawn = no
; autospawn = yes
; daemon-binary = /usr/bin/pulseaudio
; extra-arguments = --log-target=syslog

; cookie-file =

; enable-shm = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB

; auto-connect-localhost = no
; auto-connect-display = no

관련 패키지를 제거해 보았습니다.

sudo pacman -Rdd pavucontrol pulseaudio pulseaudio-alsa lib32-libpulse libcanberra-pulse 

그런 다음 다시 설치하십시오.

sudo pacman -S pavucontrol pulseaudio pulseaudio-alsa lib32-libpulse libcanberra-pulse

그러나 그것은 아무런 차이가 없습니다. 또 무엇을 시도할 수 있나요? 이상적으로, 펄스 오디오를 어제 파괴하기 전의 상태로 어떻게 재설정할 수 있습니까? 실제로 문제가 내 pactl명령이 위반된 것이라면 해당 명령을 어떻게 실행 취소합니까?

답변1

@Takkat의 도움으로 pulseaudio구성 디렉터리의 이름을 바꾸는 간단한 방법으로 이 문제를 해결할 수 있었습니다.

mv ~/.config/pulse ~/.config/pulse.old

그 후에 pavucontrol는 정상적으로 시작할 수 있습니다. 해당 디렉토리의 어떤 파일이 문제를 망쳤는지 모르겠습니다. 누군가에게 도움이 된다면 다음과 같이 설명합니다.

$ ls .config/pulse.old/
cookie                                              e9ec65fd88a04300a02d204ca1e6ff58-default-source
e9ec65fd88a04300a02d204ca1e6ff58-card-database.tdb  e9ec65fd88a04300a02d204ca1e6ff58-device-volumes.tdb
e9ec65fd88a04300a02d204ca1e6ff58-default-sink       e9ec65fd88a04300a02d204ca1e6ff58-stream-volumes.tdb

관련 정보