Historique: FAQ Jack
Aperçu de cette version: 18
Table des matières
Jack ne se lance pas !
Voici les 5 raisons principales de problèmes au lancement de jackd :Je lance Jack alors que d'autres logiciels sont aussi lancés
Si vous lancez Jack alors que vous êtes en train d'écouter de la musique avec RhythmBox ou Amarok, ça peut provoquer des conflits. Dans ce cas, fermez toutes vos applications et relancez Jack. Si ça ne marche toujours, on aura au moins déjà éliminé cette cause ! 😀Vous, et donc Jack que vous lancez, n'avez pas les droits suffisants.
Essayer de le lancer en ligne de commande dans une console / un terminal en tant que root :Copy to clipboard
$ su root jackd -R -d alsa
Copy to clipboard
$ sudo jackd -R -d alsa
Jack se lance mais se détruit aussitôt
Une raison peut être que le watchdog timeout delay n'est pas assez long. Mettez-le au maximum possible (en général 5000ms).Avez vous spécifié le bon matériel ?
Le device Alsa (hw:x), dans la configuration de QJackCtrl correspond-il à votre carte son ? Essayez de vérifier ceci en tapant :Copy to clipboard
cat /proc/asound/cards
Un autre processus utilise la carte son.
Pensez en particulier aux serveurs de son 'ESD (pour Gnome, avec Ubuntu par exemple) ou aRts (pour KDE, avec Kubuntu ou Mandriva par exemple) ainsi que Pulseaudio. Vous pouvez inclure des commandes killall de ces processus dans la ligne startup de Qjackctl setup . Pour identifier quels sont les processus coupables voici une méthode qui fonctionne sous KDE4 - ce n'est probablement pas la seule, comme toujours sous GNU/Linux.En tant que root, tapez la commande suivante dans une console :
Copy to clipboard
root@localhost# service alsa restart
Copy to clipboard
Doing alsactl to store mixer settings... OK no. (sound is being used by pid 15341 15267 15267)) ÉCHEC ALSA driver is already running.Doing alsactl to restore mixer se OK
Copy to clipboard
root@localhost# ps ax | grep 15341 15341 ? S 0:01 /usr/bin/kmix 20960 pts/2 S+ 0:00 grep --color 15341
Copy to clipboard
root@localhost# ps ax | grep 15267 15267 ? SLl 103:39 /usr/bin/knotify4 20964 pts/2 R+ 0:00 grep --color 15267
Trois méthodes s'offrent à nous :
- soit on le tue purement et simplement avec :Copy to clipboardroot@localhost# kill 15267
- soit on le laisse tourner mais on l'empêche d'utiliser la carte son. Ça se paramètre dans le centre de configuration du bureau, qui sous toute distribution se lance avec la commande :Dans ce centre de configuration, il faut aller dans l'onglet "Général" > section "Apparence" > icône "Notifications". Là, dans l'option "Notifications du système" > onglet "Configuration du lecteur", il faut sélectionner "Aucune sortie audio" puis "Appliquer" et maintenant Jack accepte de démarrer. À noter que knotify4 n'est pas tué pour autant, mais il cesse de vouloir utiliser la carte son. Il y a probablement un temps de latence avant que ça marche, de l'ordre du temps de latence standard pour le déchargement des modules du noyau, ce qui dépend sans doute des distributions, des noyaux, des machines... (ou de rien du tout).Copy to clipboard/usr/bin/systemsettings
- Dernière solution plus élégante, on le désactive uniquement quand Jack tourne. On utilisera la commande pour tuer knotify4 et la commandeCopy to clipboardkillall /usr/bin/knotify4en quittant Jack pour restaurer knotify4. Si knotify4 est configuré pour ne pas utiliser la carte son il est inutile de le tuer, il renaitra de ses cendres, tel le phénix...Copy to clipboardkillall jackd & /usr/bin/knotify4
Avec le mode RT activé
J'arrive à lancer Jack, mais sans l'option RT. Est-ce grave ?
En principe, sans l'option RT, Jack fonctionne mais vous risquez d'avoir des Xrun, ce qui en enregistrement peut supprimer quelques centaines de milli-secondes d'enregistrement et créer un trou. Faire tourner Jack en mode RT ne nécessite pas de noyau RT, mais probablement juste une petite modification expliquée sur la page Accès temps réel pour les applications.Erreur : cannot use real-time scheduling
Le mode RT de Jack est activé mais celui-ci produit une erreur au démarrage de type :Copy to clipboard
cannot use real-time scheduling (FIFO at priority 10) [for thread 720017136, from thread 720017136] (1: Operation not permitted) cannot create engine
Dans QJackCtrl, le mode RT clignote.
Rassurez-vous cela signifie que le mode RT fonctionne correctement. Il s'agit d'un mode d'affichage sans incidence sur le fonctionnement de Jack. Il risque probablement de disparaître dans les futures versions.Pour laisser RT allumé en permanence, dans QJackCtrl aller dans Réglages, onglet "Affichage" et cocher la case qui se nomme "Blink server mode indicator".
Noyau temps-réel
A ne pas confondre avec le mode RT de Jack, il s'agit bien du noyau qui gère les ressources de l'ordinateur et qui permet aux logiciels de communiquer entre eux.Freeze
Votre ordinateur freeze c'est à dire qu'il se bloque totalement à des moments variables et selon différentes actions. En fait ce n'est pas forcément lié à Jack ou à la MAO. On parle dans ce cas généralement de modules mal supportés qui produit des freezes.Voici un cas :
- freeze lié à une mauvaise gestion de la carte graphique.
Une solution consiste à utiliser le driver propriétaire et de récupérer quelques paquets. Pour cela, il faut aller dans Système->Administration->Gestion des périphériques puis voir s'il est proposé d'activer un driver spécifique à votre carte graphique. Si oui, activez-le.
Il faut ensuite installer les paquets suivants : linux-rt-headers et linux-headers-x.xx.xx-rt où x.xx.xx est la version de votre noyau rt.
Et enfin redémarrer et booter sur le noyau rt.
Ca peut corriger le problème car maintenant tout les traitements d'affichage graphique seront gérés par la carte graphique libérant ainsi de la ressource pour le processeur principal.
S'il n'est pas proposé d'activer un driver, le problème ne vient à priori pas de là et il faudra chercher ailleurs. - freeze lié au WiFi.
Parfois le noyau rt freeze à cause de la gestion du WiFi. Il n'y a pas de solution toute prête dans ce cas. Il faut regarder au cas par cas.
Driver ALSA, OSS, etc...
Quelle différence entre ALSA et Jack ?
Alsa est un ensemble de pilotes permettant à Linux de contrôler de façon unifiée les cartes son, qu'elles soient mono voie ou multi-voix. Jack est un serveur de son, c'est à dire un logiciel capable d'organiser l'utilisation du son de manière à ce que plusieurs logiciels utilisent de façon concurrente les ressources sonores. Jack vit donc dans une couche "au dessus" d'Alsa, Alsa étant le "backend" de Jack.Les logiciels ALSA ne fonctionnent plus quand Jack tourne. Que se passe-t-il ?
C'est normal Jack fonctionne généralement sur la couche ALSA qu'il accapare en quelque sorte. À partir du moment où Jack est lancé, les logiciels de son qui pourront fonctionner seront les logiciels compatibles Jack. Si l'on lance par inadvertance un logiciel non compatible, son son ne fonctionnera pas. Pour rendre son son opérationnel, il faudra quitter Jack avant. Il est tout à fait possible d'utiliser 2 cartes sons (ou une carte + une interface audio Usb) permettant d'obtenir simultanément un flux audio passant par Alsa et l'autre par Jack.Peut on faire tourner Jack sur OSS ?
Oui et même sur portaudio, si vous êtes joueur, car ce n'est pas une utilisation fréquente. 😁Du coup vous risquez de rencontrer des difficultés si vous cherchez de l'aide. Vous pouvez quand même essayer sur notre forum, mais on ne vous garanti rien !
Comment faire tourner d'autres applications ALSA ou OSS alors que Jack tourne ?
Excellente question 😊 Cf. paragraphe précédent.Connecter
Comment adresser tous les canaux d'une carte Surround 5.1 avec Jack ?
Les cartes supportant le son surround 5.1 dans ALSA n'apparaissent par défaut qu'avec deux entrées et deux sorties dans Jack. Ceci est lié au fait que Jack a des problèmes quand le nombre d'entrées n'est pas égal au nombre de sorties. Pour pouvoir adresser et faire apparaître quand-même tous les canaux audio de sortie, il faut définir un PCM virtuel dansCopy to clipboard
$HOME/.asoundrc ou /etc/asoundrc
Copy to clipboard
ctl.jack51 { type hw card 0 } pcm.jack51 { type asym playback.pcm { type plug slave.pcm "surround51" slave.channels 6 route_policy duplicate } capture.pcm { type hw card 0 } }
Copy to clipboard
aplay -L
Copy to clipboard
jackd -d alsa --device jack51 --inchannels 2 --outchannels 6
Je n'arrive pas à activer mes entrées de carte-son intégrée dans Jack !
Ceci est plutôt un problème du mixer Alsa qui, par défaut, n'affiche pas tous les canaux disponibles :- Dans le mixer (Kmix, alsamixer ou autre ...), muter la(les) entrée(s) ligne(s)
- Aller dans le menu Édition, puis ,Préférences, et enfin activer les items requis ( dans mon cas "Line-in Capture" ) en cochant la (les) case(s) idoine(s)
- Dans la fenêtre Mixer est apparu (s'il n'y était pas déjà) un onglet intitulé Paramètres . Ouvrir cet onglet, et activer l'item requis ( Line-in Capture dans mon cas ) ...
- Et voilà, les connexions de Jack devraient maintenant être actives ...
Paramétrage
Est-ce qu'il est important de choisir une fréquence différente de 44100 Hz ?
Certains vous diront que 96000 est mieux, c'est vrai mais dans assez peu de cas, par contre si vous avez un enregistrement fait en 44100 Hz, il vous faudra activer Jack en 44100 Hz.Que signifie les 2 chiffres en rouge dans Qjacktcl ?
Ce sont les Xrun calculés selon deux moyens différents. Celui entre crochet est le compteur de Xrun qui est retournée par la bibliothèque libjack qui voit Qjackctl comme client. L'autre est le compteur de Xrun retournée par la méthode "force-brute" qui scrute les sorties en erreur en sortie du démon Jackd.Vous pouvez aussi consulter la FAQ sur les Xruns.
Réinstallation
Impossible de démarrer Jack après une réinstallation
Après avoir installé la dernière version de Jack, celui-ci ne veut plus démarrer et il produit des erreurs étranges comme par exemple :Copy to clipboard
jackd: symbol lookup error: jackd: undefined symbol: clock_source
Il faut savoir que Jack est incapable de se réinstaller tout seul proprement. Il ne fait pas de nettoyage avant de s'installer et ajoutera une nouvelle version à côté de l'ancienne. La présence de ces deux versions produit des erreurs.
Pour réinstaller Jack correctement :
- faire Copy to clipboardsudo rm /usr/lib/*jack* sudo rm /usr/local/lib/*jack*
- installer ou compiler votre nouvelle version de Jack selon cette procédure