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)
Ответ на: комментарий от James_Holden

Эти инструменты есть, но они не используются в обычном, старом десктопном линуксе. Группы когда-то использовались, года до 2010 если не путаю, но потом и это выкинули.

тебя жестоко обманули

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

Предлагаю топикстартеру прочитать собрание сочинений Таненбаума и «The Art of Unix Programming» Э. Реймонда.

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

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

Это отлично компенсируется ненужностью флатпака.

В целом да, он не нужен, точнее все надо переделать, но альтернатив пока нет. И любая альтернатива столкнется с теми же проблемами.

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

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

WAT. Это в каком микроядре?

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

Они есть как инструмент, но их никто не ставит там где следовало бы. В итоге в любом обычном линуксе всем доступно все

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

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

наличие двух альтернативных частот и позволяет отключить ресемплинг у пульсы

Да нет же, не позволяет. Это вообще никак не связано. При включении этой опции пульса использует частоту исходника независимо от этих двух параметров (если конечно это возможно технически, т.е. поддерживается картой).

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от kss

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

Да, вот это очень хорошее замечание. Там где не надо - все огорожено, там где надо огородить все доступно. Так дальше жить нельзя.

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

WAT. Это в каком микроядре?

Это в разыгравшимся воображении ТС. Он видимо попутал лицензии модулей и рантайм защиту. Защита лицензий модулей работает через юристов, а не через код.

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

Как у тебя твои атрибуты файлов запрещают приложениям читать и писать в любое место хомяка пользователя?

Приложения, запущенные от имени пользвателя, должны иметь право писать в хомяк этого же пользователя. Чтобы эффективно взаимодействовать и обмениваться файлами между разными приложениями.

Как они запрещают вообще любому приложению снести нахрен с диска мою диссертацию за день до защиты?

«Любое приложение» ставится из репозитория, а не неизвестного васянского флатпака. Это значит, что как минимум, у мэйнтейнера и других пользователей оно диссертацию из хомяка не удаляло.

Но никто тебе не запрещает завести отдельного пользователя со своим хомяком и редактировать диссертацию оттуда.

Как они в твоей системе разрешают, например, Kate видеть только те файлы которые ты открыл в редакторе?

Мне не нужны такие странные ограничения

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

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

GPL_ONLY flag

И какой существующий в суровой реальности процессор ограничивает выполнение кода на основе этого флага? :)

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

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

И сносить диссер за день до защиты. Занавес! И заметь - пока ты не опроверг мое «все могут все».

Это значит, что как минимум, у мэйнтейнера и других пользователей оно диссертацию из хомяка не удаляло.

Отлично, как это опровергает «все могут все»?

Но никто тебе не запрещает завести отдельного пользователя со своим хомяком и редактировать диссертацию оттуда.

Лол. Лол. Лол. Там будут такие приложения. Они снесут там все точно так же. Набор установленых приложений в обычном линуксе, сюрприз, не зависит от пользователя! А с флатпаком зависит. И тут обломамс?

Но ты начинал не про хомяк, а про корневую систему.

Да? А как ты это понял? Придумал?

Утверждал, что якобы чуть ли не все пакеты кидают в корень файлы

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

с полными правами доступа для всех желающих.

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

В корне всего-то лишь полные права на чтение.

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

Там будут такие приложения. Они снесут там все точно так же.

так ты их не запускай, если их боишся и они тебе методично диссеры удаляют

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

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

так ты их не запускай, если их боишся и они тебе методично диссеры удаляют

А комп не включать, я правильно понял?

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

А им кто-то мешает прописаться? В линуксе это как-то ограничено? Нет, никак.

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

Лол. Лол. Лол. Там будут такие приложения.

Название пакета, который удаляет диссертации, в студию. Может уже и криповымогатели в репозитории завезли?

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

И сносить диссер за день до защиты

Нет бэкапов? -> Нет состродания.

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

Ну вот nvidia что-то не могла обойти.

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

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

Название пакета, который удаляет диссертации, в студию

Любой пакет на выбор. Никаких гарантий нет.

Может уже и криповымогатели в репозитории завезли?

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

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

Если обойдут, то может быть иск.

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

Вы серьезно предлагаете варез пихать в ядро и это типа норма?

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

группы когда-то использовались, года до 2010 если не путаю, но потом и это выкинули.

$ ls -l /dev/video0 
crw-rw----+ 1 root video 81, 0 июл 31 10:16 /dev/video0
$ ls -l /dev/snd/
итого 0
drwxr-xr-x  2 root root       80 июл 31 10:16 by-path
crw-rw----+ 1 root audio 116,  7 июл 31 10:16 controlC0
crw-rw----+ 1 root audio 116,  9 июл 31 10:16 controlC1
crw-rw----+ 1 root audio 116,  6 июл 31 10:16 hwC0D0
crw-rw----+ 1 root audio 116,  3 июл 31 10:16 pcmC0D0c
crw-rw----+ 1 root audio 116,  2 июл 31 10:16 pcmC0D0p
crw-rw----+ 1 root audio 116,  4 июл 31 10:16 pcmC0D1p
crw-rw----+ 1 root audio 116,  5 июл 31 10:16 pcmC0D2c
crw-rw----+ 1 root audio 116,  8 июл 31 10:16 pcmC1D0c
crw-rw----+ 1 root audio 116,  1 июл 31 10:16 seq
crw-rw----+ 1 root audio 116, 33 июл 31 10:16 timer
$ groups
wheel audio cdrom video usb 1000

в моём гнулинуксе с группами всё нормально, чтобы издавать звук, нужно быть в группе audio, чтобы читать с камеры, нужно быть в группе video

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

Вы серьезно предлагаете варез пихать в ядро и это типа норма?

Технически никто не мешает. И люди не скованные юридическими ограничениями (хакеры всякие) вполне могут это сделать.

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

Ну значит повезло. В следующий раз не повезет.

Я вот ни разу не видел как из калаша убивают человека. Значит калаш не оружие, я правильно понял?

James_Holden ★★★★
() автор топика

А вот Линус Торвальдс как-то по ошибке перепутал файл модема и диска, и случайно весь раздел с исходным кодом. Но он не плакал, какой Миникс плохой и вся концепция юникса

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

в моём гнулинуксе с группами всё нормально, чтобы издавать звук, нужно быть в группе audio, чтобы читать с камеры, нужно быть в группе video

Ты опять ничего не понял. Ты руками с камеры что-ли читаешь, лол? Это делает приложение. Ты от своего юзера запускаешь приложение для камеры. Для этого тебе надо войти в группу video. И тогда любое другое приложение, например Kate получает доступ к камере! Всем доступно все. Как я и говорю.

А надо как? Читать с камеры должны только те приложения, которые для этого предназначены. Как ты в своем десктопном гнулинуксе сейчас будешь запускать разные приложения от разных пользователей, входящих в разные группы? В андроиде например у каждого приложения свой пользователь и это возможно, за счет костылей поверх. В линуксе - нет.

Или может ты предложишь мне перелогиниваться чтобы с камерой поработать? Хорошо что не в ДОС перезагружаться, как в винде 98 для игр.

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

Технически никто не мешает.

Мы обсуждаем объективную реальность, а не сферических хакеров вакууме. Сферическим хакерам и линукс не нужен, они свою ось за вечер напишут потому что у них есть GCC. Так рассуждая можно до любого бреда договориться.

Я же не говорю что в ядре полный аналог dpkg. В целом, глобально принципы похожи. Там и там монолит. Частности реализации, конечно, разные. А вы к ним прицепились и не видите глобального.

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

Говно и шоколад тоже одно и то же. Из атомов и молекул состоят же.

И цвет похож. Вот, ты делаешь успехи.

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

Но он не плакал, какой Миникс плохой и вся концепция юникса

Да неужели? Так не плакал что потом разработал ядро «миникс наоборот»?

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

И тогда любое другое приложение, например Kate получает доступ к камере! Всем доступно все. Как я и говорю.

Никто не запрещает тебе написать правила apparmor или SELinux и ограничить доступ к камере для Kate

Или может ты предложишь мне перелогиниваться чтобы с камерой поработать?

Зачем перелогиниваться, иксы позволяют несколько параллельных сеансов, переключаешься по Alt + F7..F12. Насчёт вейландов не знаю, может и поломали это.

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

Да неужели? Так не плакал что потом разработал ядро «миникс наоборот»?

Концептуально линукс по поведению ничем от миникса не отличается, соответствует тому же POSIX и точно так же является Unix-системой, хоть и без официальной бумажки.

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

Насчёт вейландов не знаю, может и поломали это.

с этим всё хорошо, можешь хоть иксы и вэйланд одновременно запускать в разных tty.

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

Никто не запрещает тебе написать правила apparmor или SELinux и ограничить доступ к камере для Kate

О, ну вот и изоляцию подвезли. Так мы скоро придем к установке Snap, в котором изоляция как раз делается через AppArmor. Или «это другое»?

иксы позволяют несколько параллельных сеансов

Охренеть маразм.

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

Концептуально линукс по поведению ничем от миникса не отличается

Ядро отличается. Линус ядро делал, если ты не понял. Не юзерспейс.

James_Holden ★★★★
() автор топика

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

А если у тебя будет отдельный изолированный редактор для диссера, как ты его потом во внешний мир загружать собираешься?

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

Ну так что в итоге, выяснилось что без AppArmor в твоем «гнулинуксе» безопасности никакой нет, как я и говорил? А как же атрибуты файлов, группы? Скапустились?

И кому книжки надо почитать?

И почему ты считаешь, что если я вручную написал правила для AppArmor то это круто, а если ровно то же сделали при сборке Snap пакета то это ересь?

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

в котором изоляция как раз делается через AppArmor. Или «это другое»?

а что мешает поставлять правила AppArmor внутри пакетов из репозитория? убунта так и делала

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

И почему ты считаешь, что если я вручную написал правила для AppArmor то это круто, а если ровно то же сделали при сборке Snap пакета то это ересь?

ты не навязываешь их другим нормальным пользователям

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

и диссер твой читать и удалять может,

Каким образом он это может? Не может. Я же не открываю диссер в браузере.

А если у тебя будет отдельный изолированный редактор для диссера, как ты его потом во внешний мир загружать собираешься?

Это решают порталы. Редактор будет иметь доступ только к тем файлам, которые ты руками в нем открыл. Шариться рандомно по хомяку он не может. Конечно ты можешь открыть файл, а он его и снесет. Если разобраться то гарантии тут тоже не 100% и это тоже надо как-то решать. Но это уже на уровне паранойи.

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