Kernel/wks26/JackWithRealtime: различия между версиями
(пометка к викификации) |
Vt (обсуждение | вклад) м (Vt переименовал страницу Kernels/wks26/JackWithRealtime в Kernel/wks26/JackWithRealtime) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 19: | Строка 19: | ||
: 1. выгрузить, если есть модуль capabilities | : 1. выгрузить, если есть модуль capabilities | ||
: 2. modprobe realtime gid=81 | : 2. modprobe realtime gid=81 | ||
::::<small><div style="display: inline; background-color: red;">gid=81</div> - это группа audio, которой принадлежит /dev/dsp*. Где-то тут было (<div style="display: inline; color: red;">исправить</div>) о правах пользователей в ALTLinux на | ::::<small><div style="display: inline; background-color: red;">gid=81</div> - это группа audio, которой принадлежит /dev/dsp*. Где-то тут было (<div style="display: inline; color: red;">исправить</div>) о правах пользователей в ALTLinux на устройства. Естественно, добавить себя в эту группу, если каким-то образом получается выводить звук без этого :)</small> | ||
# собственно команда | # собственно команда | ||
: jack -R -d alsa | : jack -R -d alsa |
Текущая версия от 23:36, 26 октября 2022
Задача - запустить Jack в reatime режиме.
Для этого есть две команды:
- jack -R -d alsa
- jackstart -d alsa
> вот только не понимаю, чем отличается jackd -R от > jackstart. но это уже мелочи и просто для самообразования :)
дура jackstart (которая по-сути есть обертка для jackd) проверяет capabilities очень криво, поэтому и ругается, что _ей_ всего не хватает. Поэтому для 2.6 лучше вообще не использовать jackstart, а сразу запускать
jackd.
Для первого варианта:
- 1. выгрузить, если есть модуль capabilities
- 2. modprobe realtime gid=81
- gid=81- это группа audio, которой принадлежит /dev/dsp*. Где-то тут было (исправить) о правах пользователей в ALTLinux на устройства. Естественно, добавить себя в эту группу, если каким-то образом получается выводить звук без этого :)
- собственно команда
- jack -R -d alsa
Для второго
Как должно быть ясно из цитаты, запуск можно делать и так и эдак, только в данном случае проверяются дополнительные capabilities - CAP_SETPCAP, которые отсутсвуют в realtime.ko в ядрах wks26-up.alt{2,3,4} (остальное не проверял :). Зато присутсвуют в модуле на http://sourceforge.net/project/showfiles.php?group_id=106645&package_id=114949&release_id=237776. данный модуль необходимо загрузить с параметром allcaps=1. Собственно, описание как делал:
решается просто:
wget http://sourceforge.net/project/showfiles.php?group_id=106645&package_id=114949&release_id=237776
распаковывем, редактируем Makefile на предмет игнорирования commoncaps.c, так как сами ядро не собирали. make KERNEL_DIR=/usr/src/linux-2.6.11-wks26-up/ а там ручками install -m 644 realtime.ko /lib/modules/2.6.11-wks26-up-alt4/kernel/security/
предварительно забакапив старый realtime.ko - так на всякий случай depmod -a modprobe realtime allcaps=1 gid=81
и наконец-то jackstart -d alsa запускается!
- к сожалению, меня постигло одно разочарование:при запуске jackd -R на моей звуковой (Intel AC'97, модуль snd-intel8x0), доставшую меня постояннымми xrun, xmms конечно перестал замерзать по середине песни до полного его выключения/запуска, зато при игре в DiabloII под wine, звук стал поскрипывать и жутко тормозить эту самую дьяблу. jack -R -d alsa под нагрузкой в виде wine сьедал около 50% системного времени процессора. Так что всё равно для меня оптимальным оказалось запускать jack с ключиком -S - процессор не ест, звук дребезжит меньше, xmms работает как должен. Но все равно продолжаю искать варианты, чтобы убрать даже те "заикания", что ещё остались :)
при больших нагрузках на звук, jackd -R на моей звуковуже действительно начинает заикаться. При нагрузках на винт (постоянный swap например), jackd -R работает намного лучше jackd -d alsa -S
- второе но:как выводить wav файлы, что можно сказать исторически играются через play/sox, либо aplay, esdplay, etc через jackК сожалению, в дистрибутиве пока не нашёл аналога aplay. есть решение выводить согласно http://www.alsa-project.org/alsa-doc/doc-php/asoundrc.php?module=Generic, но это требует отдельного решения