Я пытаюсь заставить Firefox 56.0 на Ubuntu 17.04 и 17.10 играть звук в видео в Facebook (даже уверенный, что это характерно для Facebook). Я изолировал проблему вниз к pulseaudio, не начинающему, когда я играю видео, или просто не запущенный вообще. Но если я выполняю pulseaudio из командной строки и затем играю видео из Facebook, я становлюсь звуковым.
То, что смущает меня, пытается выяснить то, относительно чего я должен ожидать точно, когда этот pulseaudio процесс UNIX, как будет предполагаться, будет запущен.
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Running/подразумевает мне, что это должно быть в пользовательское время входа в систему.
/etc/xdg/autostart каталог, который содержит информацию о сеансовых службах, которые графические менеджеры сеансов должны запустить автоматически на пользовательском входе в систему. PulseAudio поставляет свой собственный файл туда. pulseaudio.desktop говорит менеджеру сеансов выполнять start-pulseaudio-x11, который является сценарием, который загружается, несколько X11 связали модули (и на KDE также диспетчер устройств модуля, который требуется аудио инструментами настройки маршрутизации KDE). start-pulseaudio-x11 обычно является первой вещью, которая требует рабочего сервера PulseAudio, таким образом, обычно сервер начинает, когда менеджер сеансов выполняет start-pulseaudio-x11 в начале сессии входа в систему.
Если автопорождение отключено, start-pulseaudio-x11 не имеет эффекта, потому что start-pulseaudio-x11 не запускает сервер явно. Это полагается на автопорождение, когда это загружает модули X11. В этом смысле название сценария вводит в заблуждение. start-pulseaudio-x11 сценарий раньше запускал сервер явно в прошлом, который объясняет название сценария.
Команды, которые я сделал недавно, чтобы гарантировать, что я запускаю с хорошей базовой линии на инструкции по http://support.system76.com/articles/audio/ (был сделан по разным причинам, как передний аудиоразъем в моей машине, не работали и делали, следующее зафиксировало его):
rm -r ~/.config/pulse
sudo apt install --reinstall alsa-base alsa-utils pulseaudio linux-sound-base libasound2
Я в данный момент не думаю что пропавшие без вести ~/.config/pulse
каталог является преступником, но является этим?
dmesg | grep pulse
шоу ничто, таким образом, это - как будто что-то даже не выполняет правильный сценарий в нужное время.
Что я должен изменить для включения этого? Я не хочу вручную вызывать pulseaudio
каждый раз, когда я запускаю Firefox (я могу клудж что-то мудрое сценарием, но я не хочу).
Я прихожу к заключению, что автоикра включена, так как она комментируется (принятие, прокомментированное средства, прокомментированной вещью ЯВЛЯЕТСЯ значение по умолчанию программы):
drunkard@norehab:~$ ps -ef --forest --cols=10000 | grep pulse
drunkard 3448 2721 0 14:25 pts/0 00:00:00 | \_ grep pulse
drunkard@norehab:~$ ls -ld ~/.config/pulse
ls: cannot access '/home/drunkard/.config/pulse': No such file or directory
drunkard@norehab:~$ ls -ld /etc/xdg/autostart/pulseaudio-kde.desktop
ls: cannot access '/etc/xdg/autostart/pulseaudio-kde.desktop': No such file or directory
drunkard@norehab:~$ ls -ld /etc/xdg/autostart/pulseaudio*
-rw-r--r-- 1 root root 4836 Mar 29 2017 /etc/xdg/autostart/pulseaudio.desktop
drunkard@norehab:~$ grep auto /etc/pulse/client.conf
; autospawn = yes
; auto-connect-localhost = no
; auto-connect-display = no
drunkard@norehab:~$
Я попробовал это:
cp -p /etc/pulse/client.conf ~/.config/pulse/client.conf
И перезагруженный и это автоматически все еще не запускается.
Следующее доказывает мне это /usr/bin/start-pulseaudio-x11
НЕ становится выполняемым вообще:
Я сохранил прочь /usr/bin/start-pulseaudio-x11
:
drunkard@norehab:~$ sudo cp -p /usr/bin/start-pulseaudio-x11 /usr/bin/start-pulseaudio-x11.orig
Затем добавленный строка в конце, который просто выписывает текущую метку времени к файлу журнала в /tmp/start-pulseaudio-x11.log
:
drunkard@norehab:~$ sudo sh -c 'echo "date >> /tmp/start-pulseaudio-x11.log" >> /usr/bin/start-pulseaudio-x11'
drunkard@norehab:~$ tail /usr/bin/start-pulseaudio-x11
if [ x"$KDE_FULL_SESSION" = x"true" ]; then
/usr/bin/pactl load-module module-device-manager "do_routing=1" > /dev/null
fi
if [ x"$SESSION_MANAGER" != x ] ; then
/usr/bin/pactl load-module module-x11-xsmp "display=$DISPLAY session_manager=$SESSION_MANAGER" > /dev/null
fi
fi
date >> /tmp/start-pulseaudio-x11.log
drunkard@norehab:~$
Затем перезагрузка и вошла в систему и нашла что /tmp/start-pulseaudio-x11.log
не существовало.
Таким образом независимо от того, что, как предполагается, вызывает /usr/bin/start-pulseaudio-x11
прежде или после того, как вход в систему не делает так.
Это все еще повреждается в Ubuntu 17.10. но комментарий, хорошо осведомленный меня, в котором мое обходное решение может использовать systemctl
вместо прямого выполнения.
Но я говорю, что это все еще повреждается потому что, почему звук не включен для всех пользователей, которые используют рабочие столы? Я имею в виду, ни при каких обстоятельствах что я могу думать, был бы, я когда-либо НЕ хочу услышать звук от видео, играемых от любых браузеров. Независимо от того, что звуковой демон (pulseaudio в этом случае, но это не имеет значения) должен быть значением по умолчанию к "включенному" для настольных пользователей. Не так для установок сервера, но дело не в этом здесь.
Это - обходное решение, которое я рассматриваю как ответ, пока кто-то не может определить мне, что это фиксируется в восходящей логике установки Ubuntu, которая обрабатывает настольную пользовательскую конфигурацию:
у меня есть скрипт, который я запускаю при запуске, использующем Приложения Запуска, показанные в этом ответе: https://unix.stackexchange.com/a/32616/21372, таким образом, в том сценарии я добавил:
# Start pulseaudio because something got broken in Ubuntu or Firefox
# or PulseAudio or or
# or... (https://askubuntu.com/questions/962920/how-do-i-get-pulseaudio-to-start-automatically-in-ubuntu-17-04-for-firefox):
if ! pulseaudio --check
then
# But not via the old way:
#
# nohup pulseaudio > /dev/null 2>&1 &
#
# Use the proper way to enable this at login time per https://askubuntu.com/a/989674/340383
systemctl --user enable pulseaudio && systemctl --user start pulseaudio
fi
Это проверяет, чтобы видеть, запускается ли процесс pulseaudio с --check
опция, и если это не работает, запустите его.
я изменил обходное решение немного для использования systemctl
команды, как обозначено в https://askubuntu.com/a/989674/340383
, Это - все еще обходное решение, поскольку Ubuntu нужно включить это по умолчанию для настольных пользователей.
я обосновываю, что, к сожалению, все еще должен иметь в распоряжении это обходное решение, потому что в следующий раз я обновляю или устанавливаю с нуля и выполняю свою новую учетную запись в первый раз, если у меня не будет вышеупомянутого в моем сценарии запуска, то я буду следовательно экранирован относительно того, почему звук прекратил работать.
контрдовод А: Так как вызовы systemctl обновят ~/.config файлы таким образом (это от вышеупомянутого systemctl...
командная строка):
Created symlink /home/drunkard/.config/systemd/user/default.target.wants/pulseaudio.service → /usr/lib/systemd/user/pulseaudio.service.
Created symlink /home/drunkard/.config/systemd/user/sockets.target.wants/pulseaudio.socket → /usr/lib/systemd/user/pulseaudio.socket.
затем после следующей переустановки Ubuntu, затем это должно просто работать правильно. Но это - то, только если я сохранил свой ~/.config файлами, который не является хорошим предположением: Я сохраняю все (за исключением файлов глубоко внутри ~/.config!) моих "пользовательских файлов" конфигурации под репозиторием Мерзавца по этой самой причине необходимости к проблемам удобства использования обходного решения, которые заканчиваются, точно так же, как этот, тратя впустую много моего времени в отладке его вниз к первопричине, которую я не хочу делать несколько раз.
Пару дней назад pulseaudio перестал загружаться на 18.04 - раньше все работало нормально. просмотрев все предложения без постоянных результатов, я просто добавил следующую строку в файл .profile
:
pulseaudio --start