Как предотвратить Pulseaudio при сбое при запуске виртуальной машины из VirtualBox?

/! \ Update 2 Ниже – Pulseaudio не является виновником, libpam-systemd делает /! \

Я заметил, что каждый раз, когда я запускаю виртуальную машину из VirtualBox, используя gksu virtualbox %U , Pulseaudio всегда терпит крах. Я сразу же получил эту ошибку от VirtualBox:

 No audio devices could be opened. Selecting the NULL audio backend with the consequence that no sound is audible. 

а также

 HostAudioNotResponding 

Кроме того, VMware Workstation заявляет, что он не может получить звук, так как эта ошибка породила:

Не удается найти / dev / dsp.

Это правда, поскольку я даже не могу найти этот файл.

Однако в syslog не сказано много о крахе:

 May 31 18:18:58 HostName pulseaudio[3466]: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Permission denied May 31 18:18:58 HostName pulseaudio[3466]: [autospawn] lock-autospawn.c: Cannot access autospawn lock. May 31 18:18:58 HostName pulseaudio[3466]: [pulseaudio] main.c: Failed to acquire autospawn lock May 31 18:18:59 HostName pulseaudio[3471]: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Permission denied May 31 18:18:59 HostName pulseaudio[3471]: [autospawn] lock-autospawn.c: Cannot access autospawn lock. May 31 18:18:59 HostName pulseaudio[3471]: [pulseaudio] main.c: Failed to acquire autospawn lock May 31 18:18:59 HostName pulseaudio[3473]: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Permission denied May 31 18:18:59 HostName pulseaudio[3473]: [autospawn] lock-autospawn.c: Cannot access autospawn lock. May 31 18:18:59 HostName pulseaudio[3473]: [pulseaudio] main.c: Failed to acquire autospawn lock May 31 18:18:59 HostName pulseaudio[3475]: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Permission denied May 31 18:18:59 HostName pulseaudio[3475]: [autospawn] lock-autospawn.c: Cannot access autospawn lock. May 31 18:18:59 HostName pulseaudio[3475]: [pulseaudio] main.c: Failed to acquire autospawn lock May 31 18:18:59 HostName pulseaudio[3478]: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Permission denied May 31 18:18:59 HostName pulseaudio[3478]: [autospawn] lock-autospawn.c: Cannot access autospawn lock. May 31 18:18:59 HostName pulseaudio[3478]: [pulseaudio] main.c: Failed to acquire autospawn lock May 31 18:19:00 HostName pulseaudio[3483]: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Permission denied May 31 18:19:00 HostName pulseaudio[3483]: [autospawn] lock-autospawn.c: Cannot access autospawn lock. May 31 18:19:00 HostName pulseaudio[3483]: [pulseaudio] main.c: Failed to acquire autospawn lock May 31 18:19:09 HostName pulseaudio[3488]: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Permission denied May 31 18:19:09 HostName pulseaudio[3488]: [autospawn] lock-autospawn.c: Cannot access autospawn lock. May 31 18:19:09 HostName pulseaudio[3488]: [pulseaudio] main.c: Failed to acquire autospawn lock May 31 18:19:09 HostName pulseaudio[3490]: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Permission denied May 31 18:19:09 HostName pulseaudio[3490]: [autospawn] lock-autospawn.c: Cannot access autospawn lock. May 31 18:19:09 HostName pulseaudio[3490]: [pulseaudio] main.c: Failed to acquire autospawn lock May 31 18:19:17 HostName pulseaudio[3496]: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Permission denied May 31 18:19:17 HostName pulseaudio[3496]: [autospawn] lock-autospawn.c: Cannot access autospawn lock. May 31 18:19:17 HostName pulseaudio[3496]: [pulseaudio] main.c: Failed to acquire autospawn lock May 31 18:19:18 HostName pulseaudio[3498]: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Permission denied May 31 18:19:18 HostName pulseaudio[3498]: [autospawn] lock-autospawn.c: Cannot access autospawn lock. May 31 18:19:18 HostName pulseaudio[3498]: [pulseaudio] main.c: Failed to acquire autospawn lock May 31 18:20:28 HostName pulseaudio[1847]: [pulseaudio] protocol-native.c: Denied access to client with invalid authorization data. 

Поскольку он говорит только о том, что Pulseaudio не может быть перезапущен с момента /run/user/1000/pulse/ получил печально известную ошибку, принадлежащую root. Я просто исправил:

 chown standardUser /run/user/1000/pulse/ && chgrp standardUser /run/user/1000/pulse/ 

Но, тем не менее, никаких признаков того, что могло бы произойти, был Pulseaudio.

Поэтому возникает вопрос: что делает Pulseaudio сбоем и как его предотвратить?

Все было сделано на обновленном Debian 8.7 с настольной средой KDE.


Обновление 1 :

После многих попыток и догадок я получил некоторые улучшения, отредактировав файл /etc/pluse/default.pa.

Включив эти модули Pulseaudio: – module-alsa-sink – module-oss device = "/ dev / dsp" sink_name = output source_name = input

Включение module-oss с помощью thses-параметров, включает / dev / dsp-файл; и не позволяет VMware Workstation запускать свою ошибку.

Выполнение modeprobe: snd-pcm-oss

И отключить эти модули:

  • Модуль-esound-протокол Unix
  • модуль приостанавливать-на-простаивает

Почти нет ошибки (все еще есть VirtualBox, а также печально известная папка импульсов, принадлежащая root), за исключением того, что я получил из syslog:

 May 31 22:09:11 HostName pulseaudio[3376]: Trying resume... May 31 22:09:11 HostName pulseaudio[3376]: open '/dev/snd/pcmC0D0p' failed (-16) May 31 22:09:11 HostName pulseaudio[3376]: Error opening PCM device front:0: Device or resource busy May 31 22:09:11 HostName pulseaudio[3376]: Using generic matrix remapping 

И этот, так как я вручную запустил Pulseaudio, выполнив «pulseaudio -vvvv»:

 I: [pulseaudio] client.c: Created 1 "Native client (UNIX socket client)" D: [pulseaudio] protocol-native.c: Protocol version: remote 29, local 29 I: [pulseaudio] protocol-native.c: Got credentials: uid=0 gid=0 success=0 W: [pulseaudio] protocol-native.c: Denied access to client with invalid authorization data. I: [pulseaudio] client.c: Freed 1 "Native client (UNIX socket client)" I: [pulseaudio] protocol-native.c: Connection died. 

Тем не менее, я не могу понять, почему возникает ошибка «/ dev / snd / pcmC0D0p» и почему это, по-видимому, проблема разрешения.

Помимо syslog и запуска Pulseaudio с ультра-подробным режимом, я не знаю, как я могу отслеживать, что происходит с Pulseaudio.

Есть ли способ предоставить дополнительную информацию об этом сбое?


Обновление 2

В дополнение к тому, что я сделал в обновлении 1:

/etc/pulse/default.pa добавлен:

 module-native-protocol-unix auth-anonymous=1 module-native-protocol-tcp auth-anonymous=1 auth-ip-acl=127.0.0.1 

/etc/pulse/client.conf добавлен:

 default-server = 127.0.0.1 

modprobe snd-pcm-oss по-прежнему необходим.

Все, что связано с Pulseaudio, работало, даже vmware не жаловался на то, что не получил / dev / dsp (работает только с modprobe snd-pcm-oss ). Pulseaudio -vvvv или / var / log / syslog / не обнаружены ошибки.

К сожалению, звук все еще отсутствует, а Pulseaudio работает отлично.

Кроме того, я также пытался запустить Pulseaudio в системном режиме; но ситуация не улучшилась, и проблема была такой же.

Таким образом, казалось, что основная проблема заключалась в том, что / run / user / 1000 / pulse получает принадлежащий root, и означает, что реальной проблемой является эта печально известная ошибка.

После некоторых исследований я узнал, что libpam-systemd вызывает это. Это известная ошибка, которую Debian получил от Systemd, о котором сообщалось для тестирования Debian (Stretch) и Experimental; но не стабильно:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=732209

http://forums.debian.net/viewtopic.php?f=10&t=110035

https://bugs.debian.org/cgi-bin/pkgreport.cgi?dist=unstable;package=libpam-systemd

Что касается 2-й ссылки, я также подтверждаю проблему «gksu gedit», в которой я также применил тот же обходной путь.

Проблема кажется нерешенной, по крайней мере до тех пор, пока поддерживающие Debian Stable не обновят libpam-systemd.

С другой стороны, я отправил им отчет об ошибках. Кроме того, я рекомендую людям, сталкивающимся с этой ошибкой, еще раз сообщить об этой ошибке, чтобы они могли получить истинное подтверждение.

Более того, если кто-нибудь знает, как исправить эту ошибку, я с удовольствием прислушаюсь к любому решению. Это также включает в себя перекомпиляцию libpam-systemd как deb (поскольку я не знаю, как это сделать правильно, на Debian), любой намек приветствуется.

  • Как сохранить работу службы sshd все время и установить постоянное имя домена FQDN в CentOS7?
  • Узнайте, работает ли ОС в виртуальной среде
  • Fedora 20 Установка VMware Ошибка «C заголовков»?
  • Мышь VMware иногда удерживается (не может «unclick», левая кнопка мыши перестает работать, хватайте ungrab)
  • VMwarePlayer на debian. Отсутствующие модули ядра
  • Проблема с Mint 18 и инструментами VMware
  • «Без групп томов найдено» после запуска vgdisplay
  • Невозможно изменить размер раздела с помощью resize2fs
  • One Solution collect form web for “Как предотвратить Pulseaudio при сбое при запуске виртуальной машины из VirtualBox?”

    Я могу объяснить ошибку /dev/snd/pcmC0D0p : Это устройство ALSA. Когда Pulseaudio запускается, он открывает все устройства ALSA, которые он может найти, и поскольку аппаратные устройства ALSA не могут быть разделены и могут быть открыты только один раз, устройство в следующий раз попробует открыть «занятую» ошибку.

    Поэтому, если вы запускаете Pulseaudio в своей основной среде, и вы настроили виртуальный бокс только для «прохода» звуковых устройств, основной Pulseaudio использует это устройство, поэтому виртуального бокса нельзя.

    Если virtualbux эмулирует звуковое устройство, у вас есть что-то еще в виртуальном боксе, который его открывает, например, второй экземпляр Pulseaudio. Используйте lsof и ps чтобы узнать, какой.

    Modprobing snd-pcm-oss самом деле не помогает: это уровень эмуляции OSS в ALSA, povides /dev/dsp и т. Д., Который является просто псевдонимом /dev/snd/pcmC0D0p с другим API. И если вы включите как module-alsa-sink и module-oss в Pulseaudio, Pulseaudio с радостью откроет оба, что, конечно же, нонсенс. Поэтому отключите материал OSS снова, это не решение.

    По моему опыту, pulseaudio -vvvv достаточно, чтобы дать вам представление о том, что на самом деле происходит не так. Если вы действительно получаете сбой, как в случае нарушения «сегрегации» и т. Д., Используя strace или запускать его с помощью gdb , если это возможно, в версии с отладочными символами, вы должны снова дать вам представление о том, что на самом деле происходит не так.

    Я подозреваю, что у вашей конфигурации есть что-то, но у меня недостаточно информации, чтобы понять это.

    Linux и Unix - лучшая ОС в мире.