[FERMÉ] Lancer jackd en mod RT quand on utilise Slim
Salut à tous,
Comme je viens de passer un bout de temps à résoudre un problème, je me dis que ce serait bien de le partager, mais je ne sais pas trop sur quelle page le mettre (sans doute PAM mais bon, je préfère demander quand même).
Donc je vous explique, j'avais suivi la procédure sur applis RT à la lettre, jackd se lançait, le voyant RT sur Qjackctl était allumé, mais j'avais quand même ces deux messages d'erreur :
Et effectivement, si j'exécute la commande "ulimit -a" (qui permet de connaître les limites imposés à l'utilisateur, j'avais le memlock à 64 et le rtprio à 0.
En fait, si j'ai bien compris, pour que les limites soient modifiées par /etc/limits.d/audio.conf, il faut que PAM ait chargé pam_limits.so, chargement qui s'effectue à l'ouverture de session, grâce au fichier /etc/pam.d/votreLoginManager. J'utilise Slim sous Debian, et celui-ci ne créé pas de fichier /etc/pam.d/slim, donc pam_limits.so n'est pas chargé, donc je ne peux pas modifier le rtprio et le memlock.
Pour résoudre ça, il suffit de créer (en root) le fichier /etc/pam.d/slim avec le contenu suivant :
On se déconnecte/reconnecte, un petit "ulimit -a" pour vérifier, et normalement, jackd devrait se lancer avec la bonne priorité !
Comme je l'ai dit, j'ai rencontré ce problème sous Debian avec Slim, normalement les login manager gdm, kdm (et xdm aussi je crois) n'ont pas ce soucis, mais il est possible que ça arrive pour d'autres configurations...
Sources :
http://www.linuxmusicians.com/viewtopic.php?f=27&t=2607
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=476248
Donc voilà, dans quelle page wiki je mets ça ?
Comme je viens de passer un bout de temps à résoudre un problème, je me dis que ce serait bien de le partager, mais je ne sais pas trop sur quelle page le mettre (sans doute PAM mais bon, je préfère demander quand même).
Donc je vous explique, j'avais suivi la procédure sur applis RT à la lettre, jackd se lançait, le voyant RT sur Qjackctl était allumé, mais j'avais quand même ces deux messages d'erreur :
Cannot use real-time scheduling (RR/70)(1. Operation not permitted) [...] Cannot lock down memory area
Et effectivement, si j'exécute la commande "ulimit -a" (qui permet de connaître les limites imposés à l'utilisateur, j'avais le memlock à 64 et le rtprio à 0.
En fait, si j'ai bien compris, pour que les limites soient modifiées par /etc/limits.d/audio.conf, il faut que PAM ait chargé pam_limits.so, chargement qui s'effectue à l'ouverture de session, grâce au fichier /etc/pam.d/votreLoginManager. J'utilise Slim sous Debian, et celui-ci ne créé pas de fichier /etc/pam.d/slim, donc pam_limits.so n'est pas chargé, donc je ne peux pas modifier le rtprio et le memlock.
Pour résoudre ça, il suffit de créer (en root) le fichier /etc/pam.d/slim avec le contenu suivant :
# # The PAM configuration file for the SLiM graphical login manager # # Disallows other than root logins when /etc/nologin exists # (Replaces the `NOLOGINS_FILE' option from login.defs) auth requisite pam_nologin.so # This module parses environment configuration file(s) # and also allows you to use an extended config # file /etc/security/pam_env.conf. # # parsing /etc/environment needs "readenv=1" session required pam_env.so readenv=1 # locale variables are also kept into /etc/default/locale in etch # reading this file *in addition to /etc/environment* does not hurt session required pam_env.so readenv=1 envfile=/etc/default/locale # Standard Un*x authentication. @include common-auth # This allows certain extra groups to be granted to a user # based on things like time of day, tty, service, and user. # Please edit /etc/security/group.conf to fit your needs # (Replaces the `CONSOLE_GROUPS' option in login.defs) auth optional pam_group.so # Uncomment and edit /etc/security/time.conf if you need to set # time restrainst on logins. # (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs # as well as /etc/porttime) # account requisite pam_time.so # Uncomment and edit /etc/security/access.conf if you need to # set access limits. # (Replaces /etc/login.access file) # account required pam_access.so # Sets up user limits according to /etc/security/limits.conf # (Replaces the use of /etc/limits in old login) session required pam_limits.so # SELinux needs to intervene at login time to ensure that the process # starts in the proper default security context. # Uncomment the following line to enable SELinux # session required pam_selinux.so multiple # Standard Un*x account and session @include common-account @include common-session @include common-password
On se déconnecte/reconnecte, un petit "ulimit -a" pour vérifier, et normalement, jackd devrait se lancer avec la bonne priorité !
Comme je l'ai dit, j'ai rencontré ce problème sous Debian avec Slim, normalement les login manager gdm, kdm (et xdm aussi je crois) n'ont pas ce soucis, mais il est possible que ça arrive pour d'autres configurations...
Sources :
http://www.linuxmusicians.com/viewtopic.php?f=27&t=2607
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=476248
Donc voilà, dans quelle page wiki je mets ça ?