WSL2 でルートなしでリアルタイム スケジューリングによる起動プロセス

WSL2 でルートなしでリアルタイム スケジューリングによる起動プロセス

WSL2 内から Ubuntu 20.04 を実行して、通常のグループ メンバーとしてリアルタイム スケジューリングを使用できるようにしたいと思いますaudio。最終的には、これは JACK 用です。すべてがルートとして機能しますが、これは理想的ではありません。

私は持っている

$ 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 で動作するとは思っていませんでしたが、リアルタイム スケジューリングがルートとして動作するという事実から、これは WSL2 の制限ではなく、構成/アクセス許可の問題であると期待しています。次に何を試せばよいでしょうか?

関連情報