LINUX.ORG.RU

Pipewire - неизбежная... победа!

 , ,


5

2

Есть snap, flatpak, wayland. Вроде хорошее дело, но - они добавляют изоляцию между приложениями, и такие штуки как jack, pulseaudio уже не могут работать как раньше. Надо что-то решать. И тут появляется надежда - pipewire. Но надежда ложная, потому что это катастрофа!

Нет, надежда все-таки есть.

Вот мои претензии (которые в итоге разрешились):

1. Обязательный ресемплинг. Как известно, pulseaudio поддерживало две частоты дискретизации микшера - основную и альтернативную. Это позволяло, в случае воспроизведения например только музыки со spotify переключать микшер на частоту дискретизации потока и УБРАТЬ ресемплинг! Если воспроизводит только одно приложение, ресемплинга быть НЕ ДОЛЖНО! Потому что он не нужен. Pipewire не позволяет, и похоже что реализовать это в той архитектуре, которую заложили, будет весьма непросто. На практике он всегда делает ресемплинг и всегда портит звук.

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

Переключение РАБОТАЕТ уже сейчас, на версии из Git! На релизе 0.3.33 у меня не работает.

КАК СДЕЛАТЬ:

В pipewire.conf пишем:

default.clock.rate          = 48000
default.clock.allowed-rates = [ 44100, 48000 ]

Можно перечислить в allowed-rates до 16 значений. Все!

ТЕПЕРЬ - если воспроизведения не было, и запустить на воспроизведение ОДНО приложение, pipewrire будет переводить себя и звуковую карту на частоту дискретизации этого приложения, и ресемплинга НЕ БУДЕТ.

2. При работе с jack клиентами может меняться размер буфера. Занавес! То есть я играю на гитаре, и тут мне меняют размер буфера? А ничего что это приведет к слышимому и чувствуемому изменению задержки звука? Как играть??? Так НЕЛЬЗЯ ДЕЛАТЬ, а надо делать ровно наоборот. Я уже молчу про то, что изменение на лету размера буфера может просто крашануть jack приложение, которое такого бреда не ожидало!

3. Для того, чтобы вообще хоть как-то задать размер буфера для jack клиентов, надо запускать приложение с переменной окружения PIPEWIRE_LATENCY. То есть мне теперь все приложения из консоли стартовать? Или все desktop файлы править? С настоящим jack это решается элементарно - программой управления типа qjackctl. Там просто выбирается какой буфер, и все приложения используют его. Должно быть ВОТ ТАК.

Решение:

pw-metadata -n settings 0 clock.force-quantum <size>

устанавливает фиксированный размер буфера.

Или в jack.conf:

node.lock-quantum = true

4. Нельзя нормальным образом поменять частоту дискретизации при работе с jack клиентом. Используется та, на которую настроен pipewire своим конфигом. С нормальным jack частота просто выбирается в qjackctl. А с pipewire что, мне править конфиг и перезапускать его, или как?

Решение, можно менять на лету:

pw-metadata -n settings 0 clock.force-rate <samplerate>

В итоге, имеем огромные практически нерешаемые проблемы на уровне архитектуры, из-за которых pipewire идет в противоположную от нужной сторону.

Последний релиз и коммиты, которые делаются прямо сейчас показывают, что развитие пошло именно в нужную сторону.

★★★★

Последнее исправление: James_Holden (всего исправлений: 4)
Ответ на: комментарий от ephecaff

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

А откуда они должны выкачиваться? С проверенного места? Проверенное место – это там, где пакет создан. Т.е. в половине интернета.

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

А ещё шара экрана в брпузере в вялом работает только с pipewire, как ни странно.

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

причём результат получается более надёжным и предсказуемым

Особенно когда какое-нибудь зависает на выключении. В шляпадэ его не грохнуть. И это бесит.

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

Вот хороший пример. Если что-то зависает на выключении, то systemd автоматом прибьёт процесс по таймауту, по крайней мере если ты не отключишь это поведение. А в скриптах 99% этого не делают, поэтому с systemd зависание на выключении практически исключено, а в sysv оно, можно сказать, by design.

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

Мне неинтересно, что там у тебя (даже если там совпало, что нет Qt софта). В общем ситуация не такая.

А ты там рантаймы чисто вывел… Ну тем более не интересно. Какую-то чушь постоянно пишешь.

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

А в скриптах 99% этого не делают, поэтому с systemd зависание на выключении практически исключено, а в sysv оно, можно сказать, by design.

SIGKILL ни один процесс игнорировать не может, о каких зависания х речь

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

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

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

Да, телеграм какого-то рожна использует freedesktop рантайм а не kde, и тянет Qt такой же как в KDE рантайме, но не факт что файлы точно такие же и будет дедупликация.

Ну вот что ж у них руки то кривые.

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

У меня стоит несколько Qt приложений, Digikam, kdevelop например. Они свой Qt не тянут, только либы которых нет в рантайме.

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

Там честно говоря Qt софт еще отрыть надо. Из того что нашел:

1 Clementine - не тянет

2 kdenlive - не тянет

3 VMPK - не тянет

4 VLC - не тянет

5 kcachegrind - не тянет

6 KLayout - не тянет

7 Notepadqq - не тянет

8 FreeCAD - не тянет

9 - … Kalzium, Kanagram, KGeography и т. д. на букву K - не тянут.

10 - Digikam - не тянет

11 - KDevelop - не тянет

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

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

А что за огородники?

Это модное новое (уже нет) веяние, что-то изолировать (огораживать) для безопасности. При этом никто не в курсе как обойти изоляцию, чтобы штукой можно было пользоваться. Начиная с Wayland и заканчивая вот этим вот всем.

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

А речь не только про Qt шла. Да тебе хоть кол чеши/не чеши.

Все равно фанатику фанатикову.

Это не вина моего предмета обалдения и УМВР.

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

А речь не только про Qt шла

Что-то мне подсказывает что это «не только» закончится тем же - единичным примером, на который ты натыкаешься и все, истерика.

Из такого крупного что реально дублируется бросаются в глаза только модули питона. Но они в основном тянутся через pip и с большего должны быть одинаковыми файлами везде.

Максимальная тут проблема это что в рантайме питон 3.8 а некоторые приложения используют 3.9 и там реально дублирование тогда.

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

Вот хороший пример. Если что-то зависает на выключении, то systemd автоматом прибьёт процесс по таймауту, по крайней мере если ты не отключишь это поведение. А в скриптах 99% этого не делают, поэтому с systemd зависание на выключении практически исключено, а в sysv оно, можно сказать, by design.

И «с завода» таймаут там 1.5 минуты и форсировать это дело никак нельзя. Как будто бы мне не пофигу, что SSDM завершитья некорректно. И я точно знаю, что в любом случае 1.5 мин там делать нечего.

Ещё один systemd прикол – перезапуск при фейле. «Экран входа» крашитсья. Пытешься как-то отладить это дело. SystemD перезапускает его. Работать невозможно.

Т.е. как-то оперативно решить вопрос вообще нет варианта. Нужна systemd-консоль, чтобы можно было в неё выйти и порешать всё это дело. Ну или reboot, и вход без вот этого всегео вот. Хотя при желании можно настроить так, что ни войти ни выйти нормально будет нельзя.

Это конечно вообще не проблема systemd, но у меня пригорело ))

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

Тебя воообще тяжело понять.

VLC не на Qt написан? Clementine тоже Qt-шный и отошёл от KDE.

Или там все Qt приложения в ногу идут с одной Qt версией?

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

И «с завода» таймаут там 1.5 минуты и форсировать это дело никак нельзя.

DefaultTimeoutStopSec=SOMEVALUE в /etc/systemd/system.conf глобально, или см. ниже

Как будто бы мне не пофигу, что SSDM завершитья некорректно

Безопасный дефолт. Можешь сделать оверрайд для юнита со своим значением.

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

man 7 systemd.special, разделы emergency.target, rescue.target, помимо этого можно поинтересоваться debug-shell.

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

Ну да, лучше пожрать ****** и отказаться от изоляции: пароли сами себя не сольют.

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

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

Основная причина угона паролей – adnroid device и слабый пароль. И то, что он один и тот же везде. А не отсутствие изоляции непонятно чего, непонятно куда.

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

Изыди, ретроград.

Дискус не вывозишь? Не ругайся, а то прокляну.

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

VLC написан на Qt. Использует Qt из рантайма KDE, единого для всех. Clementine использует Qt из рантайма KDE, единого для всех.

И так все которые я перечислил.

То есть - идут в ногу. Telegram пакует свой Qt - вот он не идет в ногу.

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

Или там все Qt приложения в ногу идут с одной Qt версией?

Там или 4 или 5. Или уже 5 или 6. И всё. Тащить нужно только последнюю или последние две из реп. А изолированное приложение тащит свою по sha256 проверяет. Вероятно даже более старое и уязвимое. Просто это подход a’La Windows – всё ложиться целиком на автора приложения. И он решает это обычным путём – как Хром – тащит с собой.

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

Так минорные версии Qt ещё есть.

Плевать на минорщину. Отваливается что-то только если qt5quickcontrols not installed/found или типа того. Это когда пятёрка только появилась такие были ситуации. И какая там минорная версия никто не проверяет. Линкер на это не смотрит.

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

Линкер на это не смотрит.

Или как там его правильнее назвать.

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

Потому что когда её делали, то думали

Ошибка где-то здесь.

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

Демагогия.

В Вялом изоляцию завезли, и всё.

В Wayland нет никакой изоляции в том смысле, в каком она есть в Flatpak. Есть максимально обобщенный протокол, к которому расширениями добавляется все, что угодно.

Основная причина угона паролей – adnroid device и слабый пароль.

А не основную можно проигнорировать? Сгорел сарай, гори и хата?

В свете подвезённых багов с clipboard,

Баги – значит будут исправлены.

Изоляция, как причина утечек.

Так баги, или изоляция?

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

Ошибка где-то здесь.

Демагогия.

Демагогия.

Демагогия.

В Wayland нет никакой изоляции. Есть максимально обобщенный протокол, к которому расширениями добавляется все, что угодно.

Чушь.

А не основную можно проигнорировать? Сгорел сарай, гори и хата?

Демагогия.

Баги – значит будут исправлены.

А пока бесполезное устройство будет подпирать сарай.

Так баги, или изоляция?

Демагогия.

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

Понятно, еще один клоун.

Что-то ты сразу слился. Попробую тебя ещё разок ткнуть в то, чем набита твоя напомаженная голова.

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

… шары нет.
Шары нет.
Шары нет.

И вся «изоляция» сделана именно так. Очевидно, чтобы пользователь почувствовал себя защищённым. Тебя подобный БДСМ судя по всему устраивает. А я просто говорю, что это не нормально. Вот и всё.

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

И вот ты получаешь изоляцию и утрачиваешь вариант шарить экран.

Уже 2 года есть возможность шарить экран через Pipewire, и еще дольше композитороспецифичными средствами, но какая разница фанатикам – в методичке об этом не написали.

Вот есть у тебя инструмент – шара экрана. И вот ты получаешь изоляцию и утрачиваешь вариант шарить экран. И как-то пофигу на изоляию.

Не вижу никакой логики в суждении.

Светить секреты в видео, которое летит через априори недоеренный среер куда-то там

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

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

возможность крохотным файликом заменить громадный баш скрипт

Эквивалентны по Эскобару. Почему бы вместо этого вороха не описывать всё в одном наглядном и подконтрольном пользователю конфиге? В который свежеустановленные пакеты сами не прописываются и не перепрописываются после обновлений? (ну ладно, от последнего mask вроде защищает) Ещё и в пользовательскую сессию лезут, совсем охренели; видимо, пора выкидывать DM и запускать иксы руками.

Есть хотя бы толковый инструментарий для просмотра графа зависимостей этого вороха? У Нас после кастомных правок юнитов и кучи обновлений сисямда стала на цикл при загрузке ругаться; даже не представляем, где его искать и с какой стороны подступаться.

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

одном наглядном и подконтрольном пользователю

Какие у вас тогда претензии? Все на месте.

Почему бы вместо этого вороха не описывать всё в одном […] конфиге

Например, потому что это масштабируется и автоматизируется, а переписывание конфига – нет.

В который свежеустановленные пакеты сами не прописываются и не перепрописываются после обновлений?

Вините мейнтейнеров. Простое копирование юнита в соответствующую директорию не активирует его.

Есть хотя бы толковый инструментарий для просмотра графа зависимостей этого вороха?

Ты даже не стараешься, первая ссылка в гугле https://www.freedesktop.org/software/systemd/man/systemd-analyze.html

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

См. указание на man выше.

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

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

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

Уже 2 года есть возможность шарить экран через Pipewire, и еще дольше композитороспецифичными средствами, но какая разница фанатикам – в методичке об этом не написали.

Ну да, воткнули костыль для того, чтобы обойти проблему изоляции спустя сто лет. Полусырая изоляция, полусырой костыль для её обхода. Из коробки не идёт. Настройка этой богодельни, чтоб работало – отдельная тема. А сразу понятно ведь не было, что фигня.

Странное отношение к пользователям. Столько вскукреков про изоляцию и безопасность и ни одного про то, что всё отвалится. Иначе бета-тестеров насильно не привлечь. Как итог – основатели идеи необходимости изоляции именно вот так – как минимум нечестные люди, которые просто кукрекают ради донатов. Вот и всё. Ничем не лучше цыган, продающих «золото» «настоящее». Это опен-сорц, по Столлману, когда люди платят за то «что им нужно». Фактически – очередная индуцированная извне «потребность», сровни Айфону. Как только все баги будут исправлены, через 100 лет, нужно будет всё переделывать потому что…

Вопрос простой – когда пользоваться устройством нормально, без фигни?

Не вижу никакой логики в суждении.

А логика тут элементарная – огородникам стоит поливать огурцы.

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

Это не так. Ты можешь выбрать только из ограниченного набора вариантов + гемор, которого не было. Кстати, как отключить бесячее окно «разрешить шарить?» Которое выскакивает аж два раза (даже sudo себе такого не позволяет). Наверное через патч.

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

одном

Именно в этом и претензия. Юниты немногим менее многословны, чем скрипты на каждый сервис. В скрипте, который иксовую сессию запускает, у Нас по строчке на программу, этого вполне достаточно.

потому что это масштабируется и автоматизируется

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

Простое копирование юнита в соответствующую директорию не активирует его.

И что делать? deb-systemd-helper заглушкой заменять?

первая ссылка в гугле

Мы не пользуемся гуглом без крайней необходимости.

systemd-analyze

Давно с ним трахаемся, но на

толковый инструментарий

это никак не тянет.

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

В скрипте, который иксовую сессию запускает, у Нас по строчке на программу, этого вполне достаточно.

Для этого есть xdg-autostart.

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

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

И что делать? deb-systemd-helper заглушкой заменять?

Без понятия, не мои заботы.

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

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

Нет, это не чтобы «обойти», а чтобы решить. Нет никакой «проблемы» изоляции, есть изоляция.

Полусырая изоляция, полусырой костыль для её обхода.

Лучше, чем отсутствие любой изоляции.

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

Это ваши проблемы – вы сами решили настраивать все сами. Желающие просто пользоваться работающим могут просто поставить Gnome.

Ты можешь выбрать только из ограниченного набора вариантов

Вот это да, а как должно быть? Это проблемы реализации.

Фактически – очередная индуцированная извне «потребность»

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

  • гемор, которого не было.

Ну да, изоляция подразумевает, что придется прокликать «разрешить».

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

Почему бы вместо этого вороха не описывать всё в одном наглядном и подконтрольном пользователю конфиге?

systemd unit именно и есть такой наглядный и подконтрольный пользователю конфиг.

В который свежеустановленные пакеты сами не прописываются и не перепрописываются после обновлений?

Ты предлагаешь после установки апача юзеру лезть на stackoverflow и копировать оттуда юнит в /etc? Ну systemd тут вообще не при чём, это уже больше к дистрибутивам. Но мне сложно представить такой дистрибутив, разве что LFS.

Ещё и в пользовательскую сессию лезут, совсем охренели

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

видимо, пора выкидывать DM и запускать иксы руками.

Там вроде интеграция не на уровне DM. Хотя точно не знаю. Но вроде бы даже при логине с tty он уже должен запустить нужные сервисы (если они не зависят от иксов).

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

А много ль проектов тащило автоматически зависимости из Maven Central в начале 00-х?

Ну с началом я погорячился, наверное, но уже в районе 2005-2006 он использовался очень многими проектами.

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

Нет никакой «проблемы» изоляции, есть изоляция.

Вы так весело тут расписываете. Давай я слегка тебя на землю, поближе к людям. А то лозунгами всё забрызал:

Давай прикрутим Wayland не к Gnome.
Давай использовать только native wayland.

Давай теперь уберём рекламные лозунги и спросим, что дают нововведения: systemd и его экосистема, Pipeware, Wayland. Давай спросим «почему»? Почему на Linux?

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

Давай прикрутим Wayland не к Gnome.

Опять этот бред про завязку Wayland на Gnome.

Давай использовать только native wayland.

native wayland не существует, это протокол, который создан для расширений к нему. Он не должен быть «native». Должен быть сформирован набор расширений, на основе которых должны реализовываться DE/WM, потому что сам по себе Wayland минималистичен и спроектирован для широкого круга целей, а не только лишь реализации классического десктопа. Так это и происходит, и только фанатики на лоре бегают с претензиями «у вас Wayland не native».

Давай теперь уберём рекламные лозунги и спросим, что дают нововведения: systemd и его экосистема, Pipeware, Wayland. Давай спросим «почему»? Почему на Linux?

Позволю себе ответить вопросом на вопрос: вы уже прекратили пить коньяк по утрам?

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

Для этого есть xdg-autostart

Мы умышленно отказались от него в пользу одного самописного и подконтрольного Bash-скрипта по всё тем же причинам: 1) ворох из файлов; 2) многие программы лезут прописываться туда сами.

Потому что конфигурируется одно решение

Отнюдь: одно решение может взаимодействовать с массой других, и даже быть для них «родителем».

не мои заботы

«У МИНЯ ВСЁ РАБОТАЕТ А ВЫ ТУПЫЕ ПАТАМУША У ВАС НЕ РАБОТАЕТ»? :3

mertvoprog
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.