在 WSL2 中运行 Ubuntu 20.04,我希望能够以普通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 的限制。我下一步应该尝试什么?