Wenn ich Ubuntu 20.04 innerhalb von WSL2 ausführe, möchte ich die Echtzeitplanung als normales Gruppenmitglied verwenden können audio
. Letztendlich ist dies für JACK. Als Root funktioniert alles, aber das ist nicht ideal.
Ich habe
$ 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
Mit dem Konfigurations-Checker unterhttps://github.com/raboof/realtimeconfigquickscanIch sehe, dass ich mit chrt keine Prozesse priorisieren kann. Um das Problem zu beheben, versuche ich etwas Einfaches ...
Mit meinem normalen Benutzer versuche ich
$ chrt -f 80 echo success
chrt: failed to set pid 0's policy: Operation not permitted
Aber wie root
ich bekomme
# chrt -f 80 echo success
success
Ich habe mich gefragt, ob dies an der Gruppen-RT-Planung lag. Ich habe
$ cat /proc/sys/kernel/sched_rt_period_us
1000000
$ cat /proc/sys/kernel/sched_rt_runtime_us
950000
das sind meines Erachtens die Standardwerte. Dieselben Einstellungen funktionieren bei einer nativen Installation von Ubuntu 18.04, die ich auf einem anderen Rechner laufen habe, einwandfrei.
Dennoch habe ich an einigen Stellen gesehen, dass
sysctl -w kernel.sched_rt_runtime_us=-1
um es effektiv auszuschalten. Aber das hat nicht funktioniert.
Als ich diesen Weg zum ersten Mal einschlug, erwartete ich nicht wirklich, dass JACK in WSL2 funktioniert, aber die Tatsache, dass die Echtzeitplanung als Root funktioniert, lässt mich hoffen, dass es sich hier eher um ein Konfigurations-/Berechtigungsproblem als um eine Einschränkung von WSL2 handelt. Was sollte ich als Nächstes versuchen?