Запустите поддельное/минимальное X сессий для Pulseaudio/dbus

Любезно изучите эти две ссылки, какие люди часто раньше решали их связанные с аудио проблемы после установки Ubuntu 12.04 PP (включая меня). Здесь они:

http://ubuntuforums.org/showthread.php?t=1042840

http://yourenotabowler.blogspot.in/2009/01/sound-warz.html

Посмотрите на вторую ссылку для этого, помог мне много для фиксации подобного вида проблемы в моем ноутбуке HP.

12
20.12.2013, 02:29
3 ответа

Можно использовать Xvfb, который является X-сервером с виртуальным кадровым буфером, т.е. X-сервером, который отображается только в памяти и не соединяется ни с какими аппаратными средствами. Вы не должны выполнять клиент, который Вы не хотите на том сервере, и в особенности никакой настольной среде или менеджере окон.

Xvfb :1 -screen 0 1x1x8 &

После этого:

DISPLAY=:1 dbus-launch
DISPLAY=:1 pulseaudio --start

Необходимо ожидать немного после запуска Xvfb чтобы дисплей был доступен. Можно использовать xinit запустить X-сервер и затем запустить клиенты, когда это готово. Поместите команды, которые Вы хотите выполнить в сценарии (обратите внимание на это, когда сценарий выходит, выходы X-сервера):

#!/bin/sh
dbus-launch
pulseaudio --start
sleep 99999999

Запустите виртуальный X-сервер с

xinit /path/to/client.script -- /usr/bin/Xvfb :1 -screen 0 1x1x8

Если Вы хотите выполнить его во время начальной загрузки, можно запустить его с крона. Выполненный crontab -e (как Ваш пользователь, не как корень), и добавляют строку

@reboot xinit /path/to/client.script -- Xvfb :1 -screen 0 1x1x8

Если Вы хотите уничтожить эту сессию, уничтожьте xinit процесс.

11
27.01.2020, 19:56
  • 1
    Извините, что обеспокоился, я изо всех сил пытаюсь автоматически выполниться, pulseaudio запускают команду (4-я строка Вашего примера) при начальной загрузке. Интересно, является ли это свойство DISPLAY. Я попробовал rc.local,/etc/init.d, rcS, но сценарий никогда не запускает pulseaudio. Когда я запускаю свой скрипт через SSH, он работает отлично. Я радовался бы, могли ли Вы совет. –  kursus 20.12.2013, 08:30
  • 2
    Xvfb должен сделать некоторую установку, прежде чем это будет готово принять X соединений, поэтому если более поздние команды работают слишком скоро, можно найти, что им не удается соединиться с X-сервером. Можно хотеть изучить использование xinit, чтобы запустить Xvfb и поместить те команды в .xinitrc так, чтобы xinit запустил их только, после того как Xvfb готов к ним. –  alanc 20.12.2013, 08:33
  • 3
    я сожалею, что я не получал Вас хорошо. Я должен запустить Xvfb с .xinitrc? Прямо сейчас это запускается с rc.local. Раз так, где я помещаю команду PA? Я пытался запустить команду PA в .xinitrc, но никакая удача, я пропускаю что-то. –  kursus 20.12.2013, 08:48
  • 4
    @kursus необходимо выполнить все эти команды как пользователь. Можно сделать это от crontab с @reboot. Также alanc является правильным, должна быть задержка после запуска Xvfb, и xinit решает эту проблему. Посмотрите мое редактирование. –  Gilles 'SO- stop being evil' 20.12.2013, 11:55
  • 5
    Спасибо за редактирование это более ясно теперь. Однако я получаю опцию Unrecognized: Xvfb при запуске команды xinit, с или без вызова сценария. –  kursus 20.12.2013, 20:07

Есть более элегантный способ предотвратить попадание скрипта в EOF, чем использование сна 99999999 !

Вместо этого используйте бесконечность сна . Он делает то, что говорит ...

0
27.01.2020, 19:56

Вчера у меня была та же проблема, когда я использовал Pulse audio для raspberrypi 0 Вт с DBus в безголовой среде, созданной с помощью yocto без x11 и без systemd, вам нужно запустить и экспортировать dbus перед запуском pulseaudio.

if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
     echo "Starting dbus" 
     export $(dbus-launch)
fi

В etc/pulse/client.conf включите разрешение -autospawn -для -root = yes

Запустите pulseaudio -v, чтобы проверить, нет ли другой проблемы в вашей конфигурации. Не используйте переключатель --system, так как это будет неправильно.

pulseaudio -D --disallow-exit
2
27.01.2020, 19:56

Теги

Похожие вопросы