업데이트 후 Pulseaudio가 Fedora 35에서 작동을 멈췄습니다.

업데이트 후 Pulseaudio가 Fedora 35에서 작동을 멈췄습니다.

방금 Fedora 35에서 업데이트를 실행했고 dnf update모든 작업이 완료된 후 재부팅했습니다.

첫 번째 증상:

YouTube 동영상을 보려고 하는데 재생되지 않습니다. YouTube에서 계속 버퍼링이 발생하며 곧 재생이 시작되지 않으면 '기기를 다시 시작해 보세요'라는 조언을 받습니다.

그런 다음 데스크탑에서 비디오를 시도했는데 소리가 나더군요.효과가있다, 소리 등을 들을 수 있어요.

pavucontrol입력 장치(마이크)를 실행하지 않으면 입력이 표시되지 않는 것으로 나타났습니다 .

또한 를 사용하여 비디오나 오디오를 재생할 때 mpv재생 탭에 표시되지 않지만 pavucontrol소리는 들리고 mpv에서 다음과 같이 보고합니다.

mpv bad\ apple\ instrumental.flac 
   cplayer:  (+) Audio --aid=1 (flac 2ch 44100Hz)
  ao/pulse: The stream is suspended. Bailing out.
   cplayer: AO: [alsa] 44100Hz stereo 2ch s32

그러면 ALSA 장치를 직접 사용하는 것 같은데요?

펄스오디오 볼륨 플러그인 등으로 볼륨을 조절할 수 없는 것 같습니다.

나는 문제를 해결하려고 노력합니다:

다음 명령을 사용하여 pulseaudio 데몬을 다시 시작해 보았습니다.

systemctl --user stop pulseaudio
systemctl --yser start pulseaudio

이제 pavucontrol"가상 출력"만 표시되고 입력 장치나 출력 장치가 전혀 표시되지 않습니다!

이제 비디오가 YouTube에서 재생되지만 소리는 나지 않습니다. 하지만 재생 탭에 브라우저가 표시되고 출력을 표시하는 레벨 미터도 있습니다.

다음을 사용하여 재생된 파일에서도 동일한 일이 발생합니다 mpv.

mpv bad\ apple\ instrumental.flac
   cplayer:  (+) Audio --aid=1 (flac 2ch 44100Hz)
   cplayer: AO: [pulse] 44100Hz stereo 2ch s32

그러나 이번에는 아무 소리도 들리지 않습니다. 이는 출력 장치만 인식되므로 논리적으로 보입니다. 출력을 보여주는 레벨도 볼 수 있지만 오디오는 없습니다.

그런 다음 systemctl --user stop pulseaudio데몬을 다시 중지하고 남은 모든 것을 종료해 보았습니다 pulseaudio -k. 이제 문제는 mpv브라우저를 실행하거나 사용하려고 할 때마다 데몬이 다시 시작된다는 것입니다. pulseaudio -k펄스 오디오가 가상 출력만 있고 입력 장치 없이 자체적으로 실행되는 것을 막을 수는 없습니다 .

러닝 sudo fuser -v /dev/snd/*쇼:

                     USER        PID ACCESS COMMAND
/dev/snd/controlC0:  root       1104 f.... alsactl
                     polemon    2544 F.... wireplumber
/dev/snd/controlC1:  root       1104 f.... alsactl
                     polemon    2544 F.... wireplumber
/dev/snd/controlC2:  root       1104 f.... alsactl
                     polemon    2544 F.... wireplumber
/dev/snd/controlC3:  root       1104 f.... alsactl
                     polemon    2544 F.... wireplumber
/dev/snd/seq:        polemon    2543 F.... pipewire

이것이 제가 이룬 진전입니다. 어떤 이유에서인지 pulseaudio나 ALSA에 문제가 있는 것 같은데 여기서는 어떻게 해결해야 할지 모르겠습니다.

pactl info이것을 보여주세요:

Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 1
Tile Size: 65472
User Name: polemon
Host Name: desk
Server Name: pulseaudio
Server Version: 15.0
Default Sample Specification: s16le 2ch 44100Hz
Default Channel Map: front-left,front-right
Default Sink: auto_null
Default Source: auto_null.monitor
Cookie: e6fd:9850

추가 조사:

journalctl --user -ef출판할 때 모니터링을 하다가 systemctl --user restart pulseaudio다음과 같은 사실을 발견했습니다.

Dec 28 20:40:37 desk systemd[1770]: Stopping Sound Service...
Dec 28 20:40:37 desk panel-8-pulseau[2027]: Disconected from the PulseAudio server. Attempting to reconnect in 5 seconds.
Dec 28 20:40:37 desk systemd[1770]: Stopped Sound Service.
Dec 28 20:40:37 desk systemd[1770]: Starting Sound Service...
Dec 28 20:40:37 desk pulseaudio[7299]: Failed to load module "module-alsa-card" (argument: "device_id="2" name="pci-0000_03_00.1" card_name="alsa_card.pci-0000_03_00.1" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed.
Dec 28 20:40:37 desk pulseaudio[7299]: Failed to load module "module-alsa-card" (argument: "device_id="1" name="pci-0000_00_1b.0" card_name="alsa_card.pci-0000_00_1b.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed.
Dec 28 20:40:37 desk pulseaudio[7299]: Failed to load module "module-alsa-card" (argument: "device_id="0" name="usb-MICE_MICROPHONE_USB_MICROPHONE_201308-00" card_name="alsa_card.usb-MICE_MICROPHONE_USB_MICROPHONE_201308-00" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed.
Dec 28 20:40:37 desk pulseaudio[7299]: stat('/etc/pulse/default.pa.d'): No such file or directory
Dec 28 20:40:37 desk systemd[1770]: Started Sound Service.
Dec 28 20:41:02 desk pulseaudio[7299]: GetManagedObjects() failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

초기화가 실패하고 있는 것을 알 수 있지만 여기서 어디로 가야할지 모르겠습니다.

디렉토리가 /etc/pulse/default.pa.d존재하지 않습니다.

pulseaudio -vvv그런 다음 데몬을 중지한 후 실행을 systemctl시도 했습니다 pulseaudio -k. 몇 번 시도한 후(pulseaudio가 계속 다시 시작됨) 성공적으로 실행했으며 이것이 표시됩니다.

I: [pulseaudio] module.c: Loaded "module-stream-restore" (index: #1; argument: "").
D: [pulseaudio] database-tdb.c: Opened TDB database '/home/polemon/.config/pulse/c65f61a4c3e84f299be315ace0144549-card-database.tdb'
I: [pulseaudio] database.c: Successfully opened 'card-database' database file '/home/polemon/.config/pulse/c65f61a4c3e84f299be315ace0144549-card-database.tdb'.
I: [pulseaudio] module.c: Loaded "module-card-restore" (index: #2; argument: "").
I: [pulseaudio] module.c: Loaded "module-augment-properties" (index: #3; argument: "").
I: [pulseaudio] module.c: Loaded "module-switch-on-port-available" (index: #4; argument: "").
D: [pulseaudio] module.c: Checking for existence of '/usr/lib64/pulse-15.0/modules/module-udev-detect.so': success
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC2 is accessible: yes
D: [pulseaudio] module-udev-detect.c: /devices/pci0000:00/0000:00:03.0/0000:03:00.1/sound/card2 is busy: no
D: [pulseaudio] module-udev-detect.c: Loading module-alsa-card with arguments 'device_id="2" name="pci-0000_03_00.1" card_name="alsa_card.pci-0000_03_00.1" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1"'
D: [pulseaudio] dbus-util.c: Successfully connected to D-Bus session bus c50f3068e569b911e3dd80c9a958124a as :1.255
D: [pulseaudio] reserve-wrap.c: Device 'Audio2' already locked.
E: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="2" name="pci-0000_03_00.1" card_name="alsa_card.pci-0000_03_00.1" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed.
I: [pulseaudio] module-udev-detect.c: Card /devices/pci0000:00/0000:00:03.0/0000:03:00.1/sound/card2 (alsa_card.pci-0000_03_00.1) failed to load module.
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC1 is accessible: yes
D: [pulseaudio] module-udev-detect.c: /devices/pci0000:00/0000:00:1b.0/sound/card1 is busy: no
D: [pulseaudio] module-udev-detect.c: Loading module-alsa-card with arguments 'device_id="1" name="pci-0000_00_1b.0" card_name="alsa_card.pci-0000_00_1b.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1"'
D: [pulseaudio] dbus-util.c: Successfully connected to D-Bus session bus c50f3068e569b911e3dd80c9a958124a as :1.256
D: [pulseaudio] reserve-wrap.c: Device 'Audio1' already locked.
E: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="1" name="pci-0000_00_1b.0" card_name="alsa_card.pci-0000_00_1b.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed.
I: [pulseaudio] module-udev-detect.c: Card /devices/pci0000:00/0000:00:1b.0/sound/card1 (alsa_card.pci-0000_00_1b.0) failed to load module.
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC0 is accessible: yes
D: [pulseaudio] module-udev-detect.c: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/sound/card0 is busy: no
D: [pulseaudio] module-udev-detect.c: Loading module-alsa-card with arguments 'device_id="0" name="usb-MICE_MICROPHONE_USB_MICROPHONE_201308-00" card_name="alsa_card.usb-MICE_MICROPHONE_USB_MICROPHONE_201308-00" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1"'
D: [pulseaudio] dbus-util.c: Successfully connected to D-Bus session bus c50f3068e569b911e3dd80c9a958124a as :1.257
D: [pulseaudio] reserve-wrap.c: Device 'Audio0' already locked.
E: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="usb-MICE_MICROPHONE_USB_MICROPHONE_201308-00" card_name="alsa_card.usb-MICE_MICROPHONE_USB_MICROPHONE_201308-00" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed.
I: [pulseaudio] module-udev-detect.c: Card /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/sound/card0 (alsa_card.usb-MICE_MICROPHONE_USB_MICROPHONE_201308-00) failed to load module.
I: [pulseaudio] module-udev-detect.c: Found 3 cards.
I: [pulseaudio] module.c: Loaded "module-udev-detect" (index: #5; argument: "").
D: [pulseaudio] module.c: Checking for existence of '/usr/lib64/pulse-15.0/modules/module-jackdbus-detect.so': failure
D: [pulseaudio] module.c: Checking for existence of '/usr/lib64/pulse-15.0/modules/module-bluetooth-policy.so': success
I: [pulseaudio] module.c: Loaded "module-bluetooth-policy" (index: #9; argument: "").
D: [pulseaudio] module.c: Checking for existence of '/usr/lib64/pulse-15.0/modules/module-bluetooth-discover.so': success
D: [pulseaudio] module.c: Checking for existence of '/usr/lib64/pulse-15.0/modules/module-bluez5-discover.so': success
D: [pulseaudio] dbus-util.c: Successfully connected to D-Bus system bus 1e8b84c239532ac8ec203f444f9e5c24 as :1.207
I: [pulseaudio] module.c: Loaded "module-bluez5-discover" (index: #11; argument: "").
I: [pulseaudio] module.c: Loaded "module-bluetooth-discover" (index: #10; argument: "").
D: [pulseaudio] module.c: Checking for existence of '/usr/lib64/pulse-15.0/modules/module-esound-protocol-unix.so': failure
E: [pulseaudio] socket-server.c: bind(): Address already in use
E: [pulseaudio] module.c: Failed to load module "module-native-protocol-unix" (argument: ""): initialization failed.
D: [pulseaudio] module.c: Checking for existence of '/usr/lib64/pulse-15.0/modules/module-gsettings.so': failure
I: [pulseaudio] module-default-device-restore.c: Restoring default sink 'auto_null'.
I: [pulseaudio] core.c: configured_default_sink: (unset) -> auto_null
I: [pulseaudio] module-default-device-restore.c: Restoring default source 'auto_null.monitor'.
I: [pulseaudio] core.c: configured_default_source: (unset) -> auto_null.monitor
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
I: [pulseaudio] module.c: Loaded "module-default-device-restore" (index: #13; argument: "").
D: [pulseaudio] module-always-sink.c: Autoloading null-sink as no other sinks detected.
I: [pulseaudio] module-device-restore.c: Restoring volume for sink auto_null: front-left: 65536 / 100%,   front-right: 65536 / 100%
I: [pulseaudio] module-device-restore.c: Restoring mute state for sink auto_null: unmuted
I: [pulseaudio] sink.c: Created sink 0 "auto_null" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: [pulseaudio] sink.c:     device.description = "Dummy Output"
I: [pulseaudio] sink.c:     device.class = "abstract"
I: [pulseaudio] sink.c:     device.icon_name = "audio-card"
I: [pulseaudio] source.c: Created source 0 "auto_null.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: [pulseaudio] source.c:     device.description = "Monitor of Dummy Output"
I: [pulseaudio] source.c:     device.class = "monitor"
I: [pulseaudio] source.c:     device.icon_name = "audio-input-microphone"
D: [null-sink] module-null-sink.c: Thread starting up
D: [null-sink] util.c: RealtimeKit worked.
I: [null-sink] util.c: Successfully enabled SCHED_RR scheduling for thread, with priority 5.
D: [pulseaudio] sink.c: auto_null: state: INIT -> IDLE
D: [pulseaudio] source.c: auto_null.monitor: state: INIT -> IDLE
I: [pulseaudio] core.c: default_source: (unset) -> auto_null.monitor
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
I: [pulseaudio] core.c: default_sink: (unset) -> auto_null
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
I: [pulseaudio] module.c: Loaded "module-null-sink" (index: #15; argument: "sink_name=auto_null sink_properties='device.description="Dummy Output"'").
I: [pulseaudio] module.c: Loaded "module-always-sink" (index: #14; argument: "").
I: [pulseaudio] module.c: Loaded "module-intended-roles" (index: #16; argument: "").
D: [pulseaudio] module-suspend-on-idle.c: Sink auto_null becomes idle, timeout in 5 seconds.
I: [pulseaudio] module.c: Loaded "module-suspend-on-idle" (index: #17; argument: "").
D: [pulseaudio] module.c: Checking for existence of '/usr/lib64/pulse-15.0/modules/module-console-kit.so': success
D: [pulseaudio] module.c: Checking for existence of '/usr/lib64/pulse-15.0/modules/module-systemd-login.so': success
I: [pulseaudio] client.c: Created 0 "Login Session 2"
D: [pulseaudio] module-systemd-login.c: Added new session 2
I: [pulseaudio] core.c: exit_idle_time: 20 -> 0
I: [pulseaudio] module.c: Loaded "module-systemd-login" (index: #18; argument: "").
I: [pulseaudio] module.c: Loaded "module-position-event-sounds" (index: #19; argument: "").
D: [pulseaudio] stream-interaction.c: Using role 'phone' as trigger role.
D: [pulseaudio] stream-interaction.c: Using roles 'music' and 'video' as cork roles.
I: [pulseaudio] module.c: Loaded "module-role-cork" (index: #20; argument: "").
I: [pulseaudio] module.c: Loaded "module-filter-heuristics" (index: #21; argument: "").
I: [pulseaudio] module.c: Loaded "module-filter-apply" (index: #22; argument: "").
W: [pulseaudio] cli-command.c: stat('/etc/pulse/default.pa.d'): No such file or directory
D: [pulseaudio] dbus-util.c: Successfully connected to D-Bus session bus c50f3068e569b911e3dd80c9a958124a as :1.258
D: [pulseaudio] main.c: Got org.PulseAudio1!
D: [pulseaudio] main.c: Got org.pulseaudio.Server!
I: [pulseaudio] main.c: Daemon startup complete.

(관련 없는 줄은 생략)

혹시 데이터베이스가 어떤 식으로 손상된 것인지 궁금합니다만, 잘 모르겠습니다.

부분적으로 성공:

Pipewire가 Pulseaudio를 대체할 수 있는 방법에 대해 IRC에서 몇 가지 제안을 받았습니다. 내 경우에는 이 업데이트 프로세스에 문제가 있을 수 있으므로 이를 해결하는 데 도움을 주어야 할 것 같습니다.

dnf다음 패키지를 설치했습니다 .

  • 파이프라인 펄스 오디오
  • 파이프라인-gstreamer
  • 파이프 라인 유틸리티

이를 위해서는 패키지 --allowerasing로 옵션이 필요합니다.pulseaudio그 과정에서 제거되었습니다. Pipeline-pulseaudio 덕분에 여전히pipeline-pulseaudio 같은 도구를 사용할 수 있기 때문에 이것이 큰 문제가 되지 않을 것이라고 들었습니다 pavucontrol.

나는 또한 wireplumber그것을 교체하기보다는 유지하는 것이 좋습니다 pipewire-media-session.

결과 - 재부팅 후 소리가 정상이었습니다. 이 설정에는 여전히 문제가 있습니다.

  • 장치를 핫 플러그할 수 없습니다. 새 마이크를 연결하면 사용할 수 없습니다 pavucontrol.

이는 매우 바람직하지 않습니다. 다른 마이크를 계속 사용할 수 있기 때문에 웹캠과 같은 것에는 큰 문제가 아니지만 마이크를 뽑으면 재부팅할 때까지 작동하지 않습니다. (아직 서버 재부팅을 시도하지 않았는데 여전히 마이크를 찾고 있습니다. 파이프 주위로).

관련 정보