Запуск процесса с планированием в реальном времени без рута в WSL2

Запуск процесса с планированием в реальном времени без рута в WSL2

Запустив Ubuntu 20.04 из WSL2, я хотел бы иметь возможность использовать планирование в реальном времени как обычный audioучастник группы. В конечном итоге это для JACK. Все работает как root, но это не идеально.

У меня есть

$ cat /etc/security/limits.d/audio.conf
# Provided by the jackd package.
#
# Changes to this file will be preserved.
#
# If you want to enable/disable realtime permissions, run
#
#    dpkg-reconfigure -p high jackd

@audio   -  rtprio     95
@audio   -  memlock    unlimited
#@audio   -  nice      -19

Использование средства проверки конфигурации наhttps://github.com/raboof/realtimeconfigquickscanЯ вижу, что не могу «приоритизировать процессы с помощью chrt». Поэтому для отладки проблемы я пробую что-то простое...

С моим обычным пользователем я пробую

$ chrt -f 80 echo success
chrt: failed to set pid 0's policy: Operation not permitted

Но как только rootя получаю

# chrt -f 80 echo success
success

Я задавался вопросом, связано ли это с расписанием групповых RT. У меня есть

$ cat /proc/sys/kernel/sched_rt_period_us
1000000
$ cat /proc/sys/kernel/sched_rt_runtime_us
950000

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

Тем не менее, я видел несколько мест, где предлагалось сделать

sysctl -w kernel.sched_rt_runtime_us=-1

чтобы эффективно отключить его. Но это не сработало.

Когда я впервые пошел по этому пути, я не ожидал, что JACK будет работать в WSL2, но тот факт, что планирование в реальном времени работает как root, вселяет в меня надежду, что это проблема конфигурации/разрешений, а не ограничение WSL2. Что мне попробовать дальше?

Связанный контент