У меня недавно возникла проблема с Pulseaudio, при каждой загрузке машины pulseaudio не загружает изменения, внесенные в файл default.pa и system.pa, я создал модуль remap-source для загрузки пользовательских настроек, потому что микрофонный вход моего ноутбука работает только на правом канале, поэтому мне пришлось его настроить. каждый раз, когда я переустанавливал свою ОС, я всегда это делал, и это работало, но не до недавнего времени.
вот вывод pacmd list-sources | grep name:
name: <alsa_output.pci-0000_00_1f.3.analog-stereo.monitor>
name: <alsa_input.pci-0000_00_1f.3.analog-stereo>
и вот изменения, которые я внес в default.pa
load-module module-remap-source master=alsa_input.pci-0000_00_1f.3.analog-stereo source_name=mono channels=1 channel_map=right
set-default-source mono
небольшой фрагмент вывода, который я нашел в journalctl
Sep 01 21:54:23 MIYUKI pulseaudio[1244]: Most likely this is a bug in the ALSA driver 'snd_hda_intel'. Please report this issue to the ALSA developers.
Sep 01 21:54:23 MIYUKI pulseaudio[1244]: We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.
Sep 01 21:55:23 MIYUKI pulseaudio[1244]: ICE default IO error handler doing an exit(), pid = 1244, errno = 11
Sep 01 21:55:23 MIYUKI systemd[1233]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Sep 01 21:55:23 MIYUKI systemd[1233]: pulseaudio.service: Failed with result 'exit-code'.
Sep 01 21:55:23 MIYUKI systemd[1233]: pulseaudio.service: Failed to schedule restart job: Unit pulseaudio.socket is masked.
Sep 01 21:55:23 MIYUKI systemd[1233]: pulseaudio.service: Failed with result 'exit-code'.
Sep 01 21:55:50 MIYUKI pulseaudio[1201]: Master source not found.
Sep 01 21:55:50 MIYUKI pulseaudio[1201]: Failed to load module "module-remap-source" (argument: "master=alsa_input.pci-0000_00_1f.3.analog-stereo source_name=mono channels=1 channel_map=right"): initialization failed.
Sep 01 21:55:50 MIYUKI pulseaudio[1201]: Source mono does not exist.
Sep 01 21:55:50 MIYUKI pulseaudio[1201]: Failed to load module "module-alsa-card" (argument: "device_id="0" name="pci-0000_00_1f.3" card_name="alsa_card.pci-0000_00_1f.3" namereg_fail=false tsched=no fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=no avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed.
Sep 01 21:55:54 MIYUKI pulseaudio[1201]: After module unload, module 'module-null-sink' was still loaded!
Sep 01 21:55:54 MIYUKI systemd[1171]: pulseaudio.service: Succeeded.
Sep 01 21:55:54 MIYUKI pulseaudio[1249]: Master source not found.
Sep 01 21:55:54 MIYUKI pulseaudio[1249]: Failed to load module "module-remap-source" (argument: "master=alsa_input.pci-0000_00_1f.3.analog-stereo source_name=mono channels=1 channel_map=right"): initialization failed.
Sep 01 21:55:56 MIYUKI plasma_session[1337]: org.kde.plasma.session: Starting autostart service "/etc/xdg/autostart/pulseaudio.desktop" ("/usr/bin/start-pulseaudio-x11")
Sep 01 22:02:12 MIYUKI systemd[1238]: pulseaudio.service: Succeeded.
я уже пытался переместить настройки в другую папку, например ~/.config/pulse, снять маску и замаскировать процесс, но все равно не получилось. Единственное решение - добавить новую строку в мой скрипт входа (.zlogin или .zprofile):
pulseaudio --kill
pulseaudio --start
странно, но это работает после того, как я убил pulseaudio. но скрипт выполняется каждый раз, когда я вхожу в систему, а я не хочу, чтобы так было, это раздражает меня каждый раз, когда я запускаю новую сессию терминала (потому что скрипт также выполняется, когда я открываю сессию терминала, как в Android Studio или Visual Studio Code), и он продолжает показывать всплывающие окна. извините за мой плохой английский. Кто-нибудь знает, как это решить?
У меня была та же проблема, что и у вас. Я использую Ubuntu 20.04, и в моем случае изменения, которые я внес в default.pa, были следующими:
load-module module-echo-cancel source_name=noechosource sink_name=noechosink
set-default-source noechosource
set-default-sink noechosink
Кроме того, эти изменения также были включены в system.pa. Как и в вашем случае, каждый раз, когда я вхожу в систему, мне приходилось выполнять pulseaudio -k
, чтобы заставить pulseaudio загрузить эти настройки. Чтобы решить эту проблему, я изменил ~/.profile
и добавил следующие строки в конец файла:
chrome_open=$(pgrep chrome)
if [ -z "$chrome_open" ]
then
pulseaudio -k
fi
Таким образом, каждый раз, когда я вхожу в систему, и если Chrome не открыт, эта команда казнен. Я использую этот оператор if, потому что, если Chorme открыт и выполняется pulseaudio -k
, его необходимо перезагрузить. Я не знаю, лучшее ли это решение, но оно работает для меня, и я надеюсь, что этот ответ поможет кому-то вроде нас.