EEE PC 1005 PXD и pulseaudio

Может кому будет полезно. Немного предыстории. После очередного обновления пульсы опять пропал звук. При свежей установке Арча была такая проблема, начал копаться и докопался до конфигов /usr/share/pulseaudio/ Дело было в том, что дефолтный выбор пульсы был порт analog-output-speakers (который на самом деле обычный конфиг; подробнее, почему так, смотрите, например, здесь) и с ним звук не работал. Но в выводе команды pacmd list-sinks присутствовал ещё один — «обычный» порт — analog-output. Тогда — до очередного обновления — проблема решилась обычным изменением приоритетов конфигов (штатного способа нет, пришлось менять в конфигах). Почему работал обычный analog-output, и почему нет analog-output-speakers — я не стал разбираться. После очередного обновления изменился парсинг конфигов и «обычный» порт analog-audio пропал, остался только один порт analog-output-speakers. Понимая, что обычным перераспределением приоритетов мне на этот раз не отделаться, стал копать, почему на работает с данным конфигом...
Как-то раз я разбирал свой EEE PC :-) Динамик там очень дешёвый: один, да и тот подсоединён через маломощный операционник, который использует в качестве входа линейный выход на ушки; при всём при этом производитель оставил возможность определения подключены ли ушки или работает динамик. Т.е., выходит, что система знает (по-крайней мере Wind'а), что при отключении ушек звук на них отключать не нужно, т.к. оттуда подаётся звук на операционник. :-) Следуя этой логике пришлось распарсить и сравнить два конфига: analog-output и analog-output-speakers и найти отличия. Выяснилось, что в analog-output-speakers присутствует код, приказывающий при отключении ушек глушить звук на данном разъёме:
; This profile path is intended to control the speaker, let's mute headphones
; else there will be a spike when plugging in headphones
[Element Headphone]
switch = off
volume = off

[Element Headphone2]
switch = off
volume = off

[Element Headphone+LO]
switch = off
volume = off
В конфиге analog-output такого кода нет. Соответственно, закомментив данные строки и перезапустив пульс звук у меня таки появился. На этом моя заметка и предыстория кончается.
Теперь вопрос к знатокам: Вопрос снят. Как сделать так, чтобы при очередном обновлении мне не править/копировать снова данный конфиг? Про ~/.config/pulse я в курсе, но там, как я понял можно задавать настройки daemon.conf, client.conf и иже с ним. Я в курсе, что в данных конфигах можно задавать выбор профайла. Но вот загвоздка: при обновлении профайлы-то тоже обновляются.
root@vpupkin# cat /dev/ass > /dev/head
Т.к. спасение утопающих — дело рук самих утопающих, то отвечу сам себе (может кому пригодится). Оказывается, всё-таки возможно создать отдельный профиль, способ создания коего мало где встречается, ибо по задумке создавался он для отладки пульсы и для возможного добавления маппинга портов неподдерживаемых и забытых б-гом карт. Итак, имеется переменная окружения пульсы, которая говорит ей, откуда брать дефолтный конфиг, имярек ей — PULSE_PROFILE_SET. По умолчанию конфиг берётся из /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf. Для задания нашей переменной для нашей же звучки создадим правило udev'а, которое бы изменяло поиск дефолтного конфига в случае обнаружения нашей карточки:
$ sudo nano /etc/udev/rules.d/95-local-pulseaudio.rules

ATTRS{vendor}=="0x8086", ATTRS{device}=="0x1c20", ENV{PULSE_PROFILE_SET}="/etc/pulse/my-own-audio.conf"
Переменные vendor и device необходимо подставить свои; их можно узнать из вывода команды
lspci -nn
После создания правила перезагрузим правила для звуковой подсистемы:
$ sudo udevadm trigger -ssound
Убедимся, что наши правила применились и система поняла нас верно:
udevadm info --query=all --path /sys/class/sound/card0
где номер карты необходимо, опять таки, подставить свой. В выводе нам нужно найти строки вроде этой: E: PULSE_PROFILE_SET=/etc/pulse/my-own-audio.conf. Если её в выводе нет, дальше идти не имеет смысла, ибо где-то присутствует ошибка в написании правила и оно не срабатывает. Если же всё прошло успешно, идём дальше. Создадим свой собственный конфиг файл с шахматами и поэтессами:
$ sudo nano /etc/pulse/my-own-audio.conf
где заполним его строками переназначения входов и выходов вашей карточки (замечу, что переназначение каналов вещь весьма специфичная и зависит сугубо от вашей карточки, поэтому, возможно, придётся экспериментировать с количеством входов/выходов и т.д., но, в большинстве случаев можно обойтись копипастой из стандартного конфига с правкой нужных строк, т.к. различаются они в большинстве случаев лишь именем ( секция name), описанием (секция description), назначением каналов (секция channel map) и необязательной опцией приоритета (секция priority)):
[General]
auto-profiles = yes

[Mapping analog-stereo]
device-strings = front:%f hw:%f
channel-map = front-left,front-right
description = Analog Stereo Asus EEEPC
priority = 5
paths-output = analog-output-speaker-eeepc analog-output-headphones
paths-input = analog-input-internal-mic
Пояснения по каждой строке выходит за рамки данной заметки, придётся покурить маны :-) замечу лишь, что paths-output=analog-output-speaker-eeepc это созданный мною файл analog-output-speaker-eeepc.conf в директории /usr/share/pulseaudio/alsa-mixer/paths/. Сделано это из-за того, что при обновлении дефолтный файл analog-output-speaker.conf каждый раз перезаписывается. Да вообще, строго говоря, из-за перезаписи при каждом обновлении дефолтных файлов профилей и ремапа и сподвигло на данный оверхед, т.к. других способов я пока не нашёл. Теперь перезагрузим альсу командой
$pulseaudio -k
и т.к. по дефолту она autospawn=yes, то запускать вновь командой --start нам не треба.
Спасибо всем за внимание и ответы! :-)
Список источников:
unix.stackexchange.com (англ.)
документация на freedesktop.org (англ.)
дополнительное полезное чтиво в тему
root@vpupkin# cat /dev/ass > /dev/head
У меня тоже еешка, но 1015bx. Единственным приложением, которому нужен был пульс - был скайп. Раз и навсегда решил для себя проблемы с пульсой - установкой и использованием apulse. Чего и вам желаю. )
Спасибо :-) Но вечно бегать от неизбежного не получится. Яко же и от системды ;-) Да и опыт лишний не помешает, т.к. скоро, чувствую, придётся помогать многим пользователям именно с Линуксом, а не с Виндой. Пока годок-другой ещё есть времени для изучения подводных камней, чтобы можно было с уверенностью рекомендовать его своим знакомым и друзьям. Кстати, я надеялся, что, хотя бы в 6-й версии, они запилят штатную поддержку изменения приоритетов. С помощью них решается несколько принципиальных вопросов.
root@vpupkin# cat /dev/ass > /dev/head
Sheykhnur
Но вечно бегать от неизбежного не получится.
Так я бегать и не предлагаю. Если пульса нужна в познавательных целях - конечно есть смысл ставить. Если вместо громоздкого софта можно использовать маленькое - почему нет?
У меня на десктопе кеды с пульсом, не жалуюсь. Но там пульс к месту, а на нетбуке - я для себя весомых причин, держать эту гадость - не нашел. Но то такое - поговорить, решает уже каждый самостоятельно. )
Вы наверное примете меня за бестолочь, но у меня и на нетбуке кеды :-) Только вот на рабочей машине у меня были включены все плюшки, за исключением Балу, а на нетбуке мне удалось ужать их до размера 180-190 мб (поотключал всё, что только возможно) при 1 Гб ОЗУ работают вполне сносно. Хотя есть мыслишка через парочку недель попробовать крыску, но, боюсь, что удобство опять пересилит скорость :-) Да и, впрочем, я бы не сказал, что они уж прям так тормозят. У меня лиса больше тормозит при выключенном флеше. Но, думаю, что кеды можно ещё ужать, просто руки пока никак не дойдут. Ибо я заметил, что основную часть памяти кушает plasma-desktop, а более лёгкой альтернативы мне пока найти не удалось (может плохо ищу?). Пока, что успел нарыть, — так это то, что основную часть памяти (уже в самой плазме) кушают плазмоиды и разнообразные обработчики. Находятся они в отдельных т.н. .desktop-файлах в /usr/share. Я ещё пока не распарсил, что означает каждый файл, но, когда закончу, думаю, плазма у меня похудеет :-)
root@vpupkin# cat /dev/ass > /dev/head
Sheykhnur
Вы наверное примете меня за бестолочь, но у меня и на нетбуке кеды :-)
Нет, не приму. Тоже поначалу ставил кеды на бук. На скорость не жаловался, после долгого и вдумчивого напильнинга - работали вполне быстро. Только потом надоело. Легковесность среды - это не только быстродействие, это еще и простота обслуживания и настройки. Короче... Получилось что настроить и добавить все нужное для себя в опенбоксе - быстрее и проще, чем отключать лишнее в кедах. Ну и в целом, большинство используемого мной софта оказалось гтк-шным (файловый менеджер, браузер, текстовый редактор, оффисный пакет и т.д.). Поэтому кеды и были снесены без долгих раздумий. Хотя повторюсь - проблем с работоспособностью и отзывчивостью небыло.
 
Зарегистрироваться или войдите чтобы оставить сообщение.