Скажем так, с таким я пошёл бы сразу в рассылку комьюнити. Но более вероятно даже и в сизифную.
Написал. Мне там помочь не смогли, но я тем времем разобрался сам.
Ключевой момент: сервис
cgconfig в Альте на самом деле есть, в пакете
cgroup — просто этот пакет не ставится по умолчанию установщиком P9. После его установки получилось сделать всё почти так, как описано в документации на
jackd:
https://github.com/jackaudio/jackaudio.github.com/wiki/Cgroups#method-2В
/etc/cgconfig.conf надо дописать
group rtaudio {
perm {
task {
uid = root;
gid = audio;
}
admin {
uid = root;
gid = root;
}
}
cpu {
cpu.rt_runtime_us = 950000;
}
}
а в
/etc/cgrules.conf:
@audio cpu rtaudio/После чего сделать сервисы
cgred и
cgconfig стартующими при запуске системы и перезагрузиться:
$ sudo systemctl enable cgred
$ sudo systemctl enable cgconfig
$ systemctl reboot
Проверяем. Было:
$ chrt -f 80 echo "I'm chrt'ed!"
chrt: failed to set pid 0's policy: Операция не позволена
Стало:
$ chrt -f 80 echo "I'm chrt'ed!"
I'm chrt'ed!
Ну и JACK, понятно, запускается в RT-режиме без бубна и костылей.
Тему помечаю как решённую, однако неплохо бы что-то с этим сделать на уровне дистрибутива.
Я вижу два выхода:
- оторвать нафиг CONFIG_RT_GROUP_SCHED=y — если уж сам Поттеринг признал, что его поделие не работает и попросил отключить эту настройку в ядре Fedora;
- сделать jack-audio-connection-kit зависимым от cgroup и включить в его состав вышеприведённые или похожие конфиги.
Решение, как мне кажется, должны принимать создатели дистрибутива и зависеть оно должно от того, пользуется ли кто-то на самом деле ограничением доступа к RT-возможностям планировщика через cgroups.