Автор Тема: Автоматично стартиране на pulseaudio след събуждане (resume)  (Прочетена 916 пъти)

Recku

  • Участник
  • *****
  • Публикации: 206
  • Distribution: Debian Stable
  • Window Manager: KDE
    • Профил
Понеже не видях отговор на запитването си, нищо чудно и просто да не е станало ясно, защото малко набързо го „надрасках“, та сега ще споделя как реших проблема. :)

Да припомня накратко, този път ще се постарая да опиша проблема по-ясно:
принуден съм да използвам готово ядро само едно единствено 3.1.10 за да заработи без проблеми модула на nvidia tegra, машината на която се случва това е смартбук Toshiba AC100. Дистрибуцията, която използвам е Ubuntu 12.04.
Като всяко друго лаптопо-подобно се предполага, че активно ще се използва функцията приспиване (suspend или както е модерно в новите преводи Суспендиране :D), но нещеш ли има бъг в това ядро и след събуждане няма звук.
Решението на този проблем е с изпълнението на следната последователност от действия:
Код
GeSHi (Bash):
  1. echo "autospawn = no" > ~/.pulse/client.conf
това ще ограничи автоматичното стартиране на pulseaudio, чието забавяне  на стартирането е от значение по-нататък, което пък от своя страна налага въвеждане на стартовата команда
Код
GeSHi (Bash):
  1. pulseaudio --start
още с началото на сесията. С други думи изпълняваме:
1. В случай, че нямаме папка autostart в ~/.config
Код
GeSHi (Bash):
  1. mkdir ~/.config/autostart

2. Създаваме файл за автоматично стартиране на pulseaudio --start с началото на сесията
Код
GeSHi (Bash):
  1. cat <<END > ~/.config/autostart/pulseaudio.desktop
  2. [Desktop Entry]
  3. Type=Application
  4. Exec=pulseaudio --start
  5. Hidden=false
  6. NoDisplay=false
  7. X-GNOME-Autostart-enabled=true
  8. END
Дотук добре! Остава да се справим със самото събуждане, при което се налага спирането на действащия процес на pulseaudio с командата:
Код
GeSHi (Bash):
  1. pulseaudio --kill
(да „убием“ копелето :D)
след това нареждаме на alsa да си презареди модулите:
Код
GeSHi (Bash):
  1. sudo alsa force-reload
приключването на този процес изисква известно време (около 10 секунди), затова спряхме автоматичното стартиране на pulseaudio с
autospawn = no
и след като приключи въпросното презареждане на модули, вече сме готови да заредим пулса:
Код
GeSHi (Bash):
  1. pulseaudio --start

Целият този процес, разбира се, може да бъде автоматизиран, чиято автоматизация аз изпълних по следния начин:
1. Създадох файл 30_alsa_reload в /etc/pm/sleep.d/:
Код
GeSHi (Bash):
  1. sudo nano /etc/pm/sleep.d/30_alsa_reload
2. Въведох съдържанието:
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. PATH=/sbin:/usr/sbin:/bin:/usr/bin
  4. USER=personal #името на потребителя
  5.  
  6. case "${1}" in
  7.    suspend)
  8.        # executed on suspend
  9.        #      killall pulseaudio
  10.        ;;
  11.    resume)
  12.                killall pulseaudio
  13.                alsa force-reload
  14.                pulseaudio --start    #стартира пулсаудиото за root, не че е необходимо
  15.                su $USER -c "pulseaudio --start" &
  16.        # executed on resume
  17.        ;;
  18. esac
  19.  

!!!NB: Тук новото е командата

Код
GeSHi (Bash):
  1. su $USER -c "pulseaudio --start"
която изпълнява стартирането на pulseaudio от наше име в нашата среда, така след спирането на pulseaudio отново ще имаме работещ интерфейс, ще можем да управляваме звука от предназначената икона за това, понеже, ако си спомняте, бяхме деактивирали автоматичното стартиране (рестартиране) на pulseaudio в нашата среда. За да упоменем за кой потребител се отнася, записваме името му след
USER=
# в началото на скрипта

3. Правим файла изпълним:
Код
GeSHi (Bash):
  1. sudo chmod +x /etc/pm/sleep.d/30_alsa_reload

4. Приспиваме, за да проверим резултата и...
Воаля, звук имаме и интерфейсът си работи, само бутоните за управление на звука от клавиатурата не работят, но това не е толкова голям проблем, поне иконата може да се използва. :)  [_]3 [_]3 [_]3

ПП: За да станат ясни разликите преди и след добавянето на
Код
GeSHi (Bash):
  1. su $USER -c "pulseaudio --start" &
прикачам 2 снимки за сравнение :) Всъщност това е и проблема, за който търсих решение. :)
« Последна редакция: Фев 14, 2016, 12:54 от Recku »
Активен

This aptitude does not have Super Cow Powers.

Recku

  • Участник
  • *****
  • Публикации: 206
  • Distribution: Debian Stable
  • Window Manager: KDE
    • Профил
Re: Автоматично стартиране на pulseaudio
« Отговор #1 -: Фев 14, 2016, 11:32 »
Понеже си намерих решение на проблема и от запитване се превърна в статия за справянето с проблем за хора, които ги мързи да си прекомпилират ядро, предлагам модератор да заключи темата. :) Освен ако, разбира се, няма някой, който да допълни с нещо или да ме поправи в това, което съм сътворил. :D  [_]3
Активен

This aptitude does not have Super Cow Powers.

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Hibernate - resume problem
Настройка на програми
Bashev 0 796 Последна публикация Фев 12, 2006, 19:19
от Bashev
Pulseaudio ?!?
Настройка на програми
Oxy 2 2405 Последна публикация Фев 08, 2009, 22:44
от BULFON
PulseAudio
Настройка на програми
elfenlied 6 4040 Последна публикация Май 05, 2010, 10:41
от elfenlied
Проблем с тъчпад при suspend->resume asus x455l
Настройка на хардуер
tuseto 11 3684 Последна публикация Май 18, 2016, 14:21
от tuseto
ПРЕМЕСТЕНО: Проблем с тъчпад при suspend->resume asus x455l
Хардуерни и софтуерни проблеми
neter 0 1003 Последна публикация Май 14, 2016, 23:49
от neter