LINUX.ORG.RU

Самовольное поведение PulseAudio

 


0

1

Выражается оно в том, что старте системы, да и вообще просто в процессе реботы звуковой профиль самовольно перескакивает на
Digital Stereo (HDMI) выход + Аналоговый стерео вход.
Видимо потому, что выход компа подключен к монитору по HDMI.
Там их еще 27 (охренеть!) в основном цифровых профилей, но ни один у меня реально не работает, звука нет.
И эти шалости детища поцнера уже кокретно достали 😡

Нормально работает только один профиль под названием Аналоговый стерео дуплекс (unplugged) (unavailable).

Какими «гвоздями» надо его прибить, что он никуда больше не переключался?

★★★★★

Ответ на: комментарий от chukcha

с такими недоработками пока стремно ставить

Чувак по ссылке что-то не сумел, бывает. У меня всё работает в Debian. Не знаю, зачем мне этот Pipewire нужен, но попробовал, работает, оставил.

anonymous
()

Поведение Пулсы настраивается в его конфиг-файле /etc/pulse/default.pa
C ним нужно немного разобраться - там свой скриптовый язык. По умолчанию пулса грузит модуль авто-определения железа.
Я разбирался с этой фигней, когда у меня была материнка с цифровым выходом звука + обычный аналоговый. По умолчанию Пулса всегда выводила звук на цифровой канал! Пришлось закоментировать загрузку модуля авто-определения и раскоментарить загрузку модуля типа
#load-module module-alsa-source device=hw:1,0

sigurd ★★★★★
()
Последнее исправление: sigurd (всего исправлений: 2)
Ответ на: комментарий от vbcnthfkmnth123

Удалить pulseaudio и использовать alsa

Ну, если бы так просто было. Ведь с момента сотворения pulseaudio наплодилось столько приложений, которые увы, уже не умеют работать с alsa.

Ладно, а может быть можно где-то удалить или закомментить эти 27 профилей, чтобы остался один - рабочий?

по человечески сделать, чтобы было (plugged) (available) не вариант?

по человечески я готов хоть сейчас :=), как это сделать?

chukcha ★★★★★
() автор топика
Последнее исправление: chukcha (всего исправлений: 2)
Ответ на: комментарий от chukcha

На самом деле это довольно просто. Для таких приложений i-rinat написал apulse. Это позволяет запускать приложения которые работают только с pulseaudio через alsa.

https://github.com/i-rinat/apulse

Запускается в формате

apuse приложение 
в терминале.

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 1)
Ответ на: комментарий от chukcha

Ладно, а может быть можно где-то удалить или закомментить эти 27 профилей, чтобы остался один - рабочий?

Хочешь сделать хорошо - делай сам!
Нужно отключить модуль авто-определения железа и подключить модуль с твоим железом в конфиге Пульсы

sigurd ★★★★★
()
Ответ на: комментарий от sigurd

Вот как раз смотрю этот default.pa - так тут столько всего нагородили!
Даже эвристику примандячили, а ведь это всего лишь звук, и во что превратили работу с ним :-(

Пока в этом конфиге мало что понимаю...

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

ну я отключал

load-module module-udev-detect
load-module module-detect

и наоборот включал
load-module module-alsa-source device=hw:0,0

Там у авто-детекта очень хреновый интеллект! При наличии 3 выходов - цифровой, через HDMI, аналоговый - он всегда ошибался! А еще эта хрень работает не только при включении компа, но и при каждом перезапуске сервера Пулсы, а он часто сам собой перегружается!
В общем - переход на pipewire действительно имеет смысл - у него встроенный интеллект мощнее!

sigurd ★★★★★
()
Ответ на: комментарий от chukcha

Ведь с момента сотворения pulseaudio наплодилось столько приложений, которые увы, уже не умеют работать с alsa

столько это сколько? в дебиане даже ФФ собран так, что не требует наличия пыш-пыш… а пыш-пыш надо закопать - оно никогда нормально не работало и, видимо, уже и не будет…

anonymous
()
Ответ на: комментарий от eternal_sorrow

по умолчанию клиенты для доступа к pulseaudio используют tcp 127.0.0.1:4713

Это полнейшая чушь. Что-то напортачил автор комментария. Он бы ещё сказал, что Xorg по умолчанию слушает TCP.

anonymous
()
Ответ на: комментарий от papin-aziat

https://github.com/i-rinat/apulse

Посмотрел этот проект. Может, он и хорош, но к сожалению, давно заброшен, и это не вдоховновляет.

Попробую разобраться в этом способе, он очень похож на мой случай -

https://unix.stackexchange.com/questions/462670/set-default-profile-for-pulse...

хотя в точности готового рецепта он не дает.

chukcha ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

papin-aziat
Жук не я, а тот, кто написал эту недо-шпаргалке выполнил следующее:

1. Закомментировал автодетекты (кстати, в шпаргалке об этом ни звука) -

# load-module module-udev-detect
# load-module module-detect

2. Определил index в выводе команды -
pacmd list-cards
он оказался равным 0

3. Определил работоспобный профиль в выводе команды -
pacmd list-cards | grep 'active profile'
output:analog-stereo+input:analog-stereo

4. Проверил работоспособность найденного профиля командой pactl
pactl set-card-profile 0 analog-stereo+input:analog-stereoprofilename
- профиль остался работспособным.

5. Затем в шпаргалке написано:

затем добавьте его в /etc/pulse/default.pa

- кого, блин, его, и куда??
Т.е. с командой pactl или без нее? И в какое место конфига?

В итоге добавил

set-card-profile 0 analog-stereo+input:analog-stereo
в конец конфига, ребут - и ни звук фига не работает.
И теперь вообще ни одна конфигурация вообще не видна.

Откатился на исходную конфигурацию....

chukcha ★★★★★
() автор топика
Последнее исправление: chukcha (всего исправлений: 6)
Ответ на: комментарий от chukcha

Закомментировал автодетекты (кстати, в шпаргалке об этом ни звука)

Зачем? Пусть работает конфиг, а ты просто в конце файла напиши чего тебе надо.

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

papin-aziat ★★★★★
()
Ответ на: комментарий от papin-aziat

Ну так я это и сделал и выше написал об этом.

(с) Чем больше узнаешь людей, тем больше нравятся собаки

и

Ах, как хочется вернуться,
Ах, как хочется ворваться в городок.
На нашу улицу в три дома,
Где все просто и знакомо, на денек.

Где без спроса ходят в гости,
Где нет зависти и злости.
Милый дом,
Где рождение справляют
И навеки провожают всем двором.


Это я про До-сыстемдэшные дистры, где еще не было поцнеровской нечисти.
До сих пор, если позволяют требования, использую на серверах CentOS-6.
И до сих ни разу ни один из них не взломали.
И не потому, что они никому не нужны - хитроуммных попыток подобрать ключики к нему сотни в день.

Может, в самом деле перейти на Devuan? Но что-то меня останавливает. Наверное, неизвестность.
Но это уже другая тема...

chukcha ★★★★★
() автор топика
Ответ на: комментарий от eternal_sorrow

Он говорит что у него никаких конфигов нет и клиенты подключаются по TCP

Ну очевидно же, что такое может быть только после какого-то ручного вмешательства.

А автору темы я бы предложил всё же открыть официальную wiki: https://wiki.debian.org/PipeWire#Debian_12 И перестать действовать как типичный пользователь Windows — лезть в системные конфиги вместо пользовательских и предпочитать информацию из форума нормальным источникам.

anonymous
()
Ответ на: комментарий от eternal_sorrow

Какого?

Я откуда знаю? Настраивал звук через сеть, например.

В стандартном дебиановском /etc/pulse/client.conf нет ни одной раскомментированной опции. PipeWire здесь ставится и настраивается для замены PulseAudio как и везде. Если у кого-то не так же, то это локальные модификации.

anonymous
()
Ответ на: комментарий от anonymous

Ладно, я с тобой за @griz спорить не буду. Более того, поддержу тебя в отношении «лезть в системные конфиги вместо пользовательских». Насчёт остального - не знаю и судить не берусь.

eternal_sorrow ★★★★★
()
Ответ на: комментарий от chukcha

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

Digital Stereo (HDMI) выход

А вообще непонятно, как этот «интеллект» определяет, кто подключен и кто из них главнее.
В моем случае подключен и HDMI, и обычная аналоговая гарнитура.
Но этот «интелект» почему-то ее не замечает и упорно цепляется за HDMI.
Ну и нафиг он такой умный нужен?

chukcha ★★★★★
() автор топика
Последнее исправление: chukcha (всего исправлений: 1)
Ответ на: комментарий от papin-aziat

А эти индексы не меняются в зависимости от загрузки системы? Просто у меня нужное иногда имеет индекс 0, а иногда 1, руками пока щелкаю, но хотелось бы выпилить ненужное

XMPP
()
Ответ на: комментарий от XMPP

Меняются. Вот что сказано в упомянутой шпаргалке -

Поскольку имя индекса является динамическим (оно может изменить индекс вашего устройства PCI, если вы загружаетесь с подключенным аудиоустройством USB), вы могли бы использовать <symbolic-name> вместо <index> (если вы запустите pacmd list-cards, символическое имя находится прямо под индексом). Кроме того, команда может завершиться ошибкой, если устройство отсутствует при запуске pulseaudio, поэтому, возможно, стоит обернуть команду предложением .ifexists:

.ifexists <symbolic-name>
pactl set-card-profile <symbolic-name> <profilename>
.endif

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

Система Linux это что - машина с однозначно предсказуемым поведением, заложеным разработчиками, или тот самый гребаный «интеллект», который ведет себя как ему хочетcя?? 😡
К чему мы вообще движемся - что мы будем управлять машинами, или машины нами?

chukcha ★★★★★
() автор топика
Последнее исправление: chukcha (всего исправлений: 1)
Ответ на: комментарий от chukcha

Система Linux это что - машина с однозначно предсказуемым поведением, заложеным разработчиками, или тот самый гребаный «интеллект», который ведет себя как ему хочетcя?? 😡

Какой ещё интеллект?! Ты навтыкал кучу всего и откуда компьютеру знать, что тебе надо по умолчанию? Вот тебе когфиг, да еще со встроенной логикой, чтобы не обмазываться скриптами, что ещё надо?

papin-aziat ★★★★★
()
Ответ на: комментарий от XMPP

Этим путём ходил?

If you have multiple audio devices whose ordering is not fixed, you can also use udev rules to configure a Pulseaudio profile for a device. This allows identifying the device by vendor/product IDs, serial number, or by other means. The rule element for setting the Pulseaudio profile is ENV{PULSE_PROFILE_SET}="<profilename>"
papin-aziat ★★★★★
()
Ответ на: комментарий от papin-aziat

Нет, не ходил. Но спасибо, попробую! Только вчера воткнул новую аудиокарту, и впервые столкнулся с таким, что по умолчанию что-то может не работать, думал такое давно в прошлом, а тут и тема образовалась как по заказу)

XMPP
()
Ответ на: комментарий от XMPP

думал такое давно в прошлом

Так и есть. Нестабильные индексы устройств используют разве что любители ALSA, которые не разобрались с настройками.

anonymous
()
Ответ на: комментарий от chukcha

Я думаю, ты интелектом назвал рандомное назначение имён девайсам. Это проблема – есть результат оптимизаций в пятом ядре: теперь ядро делает так – какое устройство увидело первым, того и тапки.

Если вариант с ifexist в конфиге не катит из-за динамики, то придётся писать правило udevd.

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

papin-aziat ★★★★★
()
Ответ на: комментарий от papin-aziat

В этом интресно разобраться и очень полезно для линуксоида

Извини, дружище, но я не линуксоид в том смысле, как вы, настоящие линуксоиды, специалисты высокого класса, считаете себя, а просто пользователь, любитель линукса.
Да, работаю в нем очень давно, мне нравится в нем работать и его философия, но рассматриваю его так, как изначально рассматривалось много лет тому назад, а потом подзабыли.
А именно: Linux - это ОС. А ОС - это просто прослойка между железом и прикладным софтом, и чем меньше требуется уделять внимание ее внутренностям, тем лучше.
Потому что Linux как у меня, как у многих обычных пользователей, не самоцель, не развлечение, а инструмент для работы, и главное мое внимание и время привлекает прикладной софт.
И наоборот, необходимость разбираться в дебрях Линукса оталкивает от него много виндузятников.
Много раз уже говорил об этом, но вам, специалистам, это трудно понять из-за того, что вы специалисты 😃

Что до скачков PulseAudio по профилям. В конце концов прибил его к нужному профилю по той самой шпаргалке.
Почему так сразу не получилось - не знаю, может, где-то запятую пропустил.

papin-aziat, и всем-всем, кто принимал участие в решении проблемы - огромное спасибо за помощь! 🍺 🍺

chukcha ★★★★★
() автор топика
Последнее исправление: chukcha (всего исправлений: 1)
Ответ на: комментарий от chukcha

настоящие линуксоиды, специалисты высокого класса

Нет такой профессии – линуксоид. Линуксоид – это пользователь Линукс, кем бы он ни был. А как глубоко этот пользователь упал в кроличью нору – никого не касается, это широкое понятие.

papin-aziat ★★★★★
()

Выражается оно в том, что старте системы, да и вообще просто в процессе реботы звуковой профиль самовольно перескакивает на Digital Stereo (HDMI) выход + Аналоговый стерео вход.

Если тебе нужен этот выход, то я бы лучше поставил Pipewire и там настроил приоритет звуковух, где это делается легко. Помогу, но только когда поставишь.

Если не нужен вообще, то можно отключить вот так.

Добавь это в /etc/modprobe.d/alsa-base.conf

options snd-hda-intel enable=1,0

Надеюсь я угадал модуль. Нужно ребутнуться.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 1)
Ответ на: комментарий от Skullnet

Спасибо за предложение, оно актуально, поскольку сегодня выяснилось, что я рано обрадовался.
Оказалось, что теперь при старте системы хотя и устанавливается правильный, т.е. аналоговый профиль, но стоит, например запустить Firefox и зайти на Ютуп, как он снова перескакивает на нерабочий цифровой профиль.

Может, все же стоит отключить эти автодетекты?

По поводу Pipewire.
Была ALSA, и я не помню существенных проблем ней.
Появилась Пульса от недогения - пошли проблемы.
Теперь еще и Pipewire.
Не хотелось бы, как сейчас любят выражаться, плодить сущности и усложнять и без того замусоренную сыстэмдэ систему.

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

Может, все же стоит отключить эти автодетекты?

А как? В пайпе у меня похожее железо и нет никаких автодетектов.

Теперь еще и Pipewire.

Удаляешь PulseAudio и ставишь pipewire

apt install pipewire wireplumber
Skullnet ★★★★★
()
Ответ на: комментарий от Skullnet

Спасибо! Я не знаю как это сработало, надеюсь не случайно, но удалив пульс и поставим пайпвайр оно почему-то подхватило нужный дефолт и больше не роняет при перезапусках

XMPP
()