Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

5 - Les serveurs son : JACK, PulseAudio et autres...

> Forums de discussion > 5 - Les serveurs son : JACK, PulseAudio et autres... > [RESOLU] Jackd (qjackctl) gelé sur raspberry pi 4
Dernier post

[RESOLU] Jackd (qjackctl) gelé sur raspberry pi 4

echevresm utilisateur non connecté
Bonjour,
Sur un Pi4 raccordé en USB au mixer Behringer 302USB, avec la toute dernière version de raspbian buster, lorsque je branche un synthé Yamaha Reface DX, au bout de quelques secondes, les applications utilisant Jack ne fonctionnent plus (qtractor et qsynth par exemple). Dans ce cas, jackd mobilise 2 cores entiers (50 % de CPU) et devient impossible à arrêter. Je pense qu'il boucle. Je parviens néanmoins à quitter qjackctl, mais il reste un processus Jackd qui prend un core entier (25 % du CPU).

Je n'ai jamais rencontré cette difficulté avec un Pi 3 B+, y compris avec la même micro-SD, qjackctl étant configuré avec entrée et sortie audio sur USB Codec. Le fichier /etc/security/limits.conf est modifié comme indiqué sur le site. Si je modifie l'entrée audio en l'affectant à "défaut", le phénomène n'apparaît plus. OK, mais c'est quand même gênant.

Je sais que les Yamaha reface envoient systématiquement des messages MIDI de synchronisation parfaitement inutiles et sans avoir le moyen de les arrêter. Perturbent-ils jackd ? Pourtant ce n'est pas de l'audio.

Dernière précision : branchement en USB3 ou en USB2 = même tarif.

Une piste ? D'avance merci.
Michel.

bda utilisateur non connecté France
Bonjour,

Quand tu branches le reface? Quel type de branchement? USB? MIDI DIN?

Y a t il des messages dans la fenêtre "messages" de qtractor ou qjackctl?

Si ça marche sur rpi3b+, ça doit marcher sur rpi4b. À moins d'un bug ou d'un soucis de configuration.

Il nous faut plus de détail sur la configuration et les divers branchements...

echevresm utilisateur non connecté
Bonjour Bda,

Le reface est branché en USB 2 ou en USB 3 avec la même problématique. Est également branché au pi 4 en USB le mixeur Behringer 302USB qui me sert de carte audio. Je n'ai pas besoin de démarrer qtractor ou toute autre appli cliente de jack pour que le problème se produise au bout de quelques secondes. A partir de là, les applis clientes n'arrivent plus à se connecter à Jack.

Dans la config de qjackctl, j'ai 2 choix pour USB Audio Codec, mais quelque soit celui retenu le problème persiste, avec les mêmes messages de qjackctl. En voici un exemplaire (avec tentative d'arrêt) :
20:08:14.815 Réinitialisation des statistiques.
20:08:14.858 Changement des connexions ALSA.
Cannot connect to server socket err = Aucun fichier ou dossier de ce type
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
20:10:21.290 JACK démarre...
20:10:21.292 /usr/bin/jackd -P70 -dalsa -r48000 -p1024 -n2 -D -Chw:CODEC,0 -Phw:CODEC,0
Cannot connect to server socket err = Aucun fichier ou dossier de ce type
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
20:10:21.454 JACK a été démarré avec le PID=770.
jackdmp 1.9.12
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2017 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 70
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
Acquire audio card Audio2
creating alsa driver ... hw:CODEC,0|hw:CODEC,0|1024|2|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 16bit little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 16bit little-endian
ALSA: use 2 periods for playback
20:10:23.586 Changement des connexions JACK.
20:10:23.590 Configuration du serveur enregistrée dans « /home/pi/.jackdrc ».
20:10:23.592 Réinitialisation des statistiques.
20:10:23.602 Client activé.
20:10:23.605 Baie de brassage désactivée.
20:10:23.648 Changement du graphique des connexions JACK.
20:10:53.886 Récupération désynchronisation (XRUN) (1).
ALSA: prepare error for playback on "hw:CODEC,0" (File descriptor in bad state)
JackAudioDriver::ProcessAsync: read error, stopping...
20:10:55.748 Récupération de désynchronisation (XRUN) (17 sauté).
20:10:59.333 Changement du graphique des connexions ALSA.
20:10:59.367 Changement des connexions ALSA.
20:10:59.454 Changement du graphique des connexions ALSA.
20:11:00.560 Changement du graphique des connexions ALSA.
20:11:00.579 Changement des connexions ALSA.
20:11:47.879 Client désactivé.
20:11:47.893 JACK s'arrête...
JackPosixProcessSync::LockedTimedWait error usec = 426660 err = Connection timed out
JackEngine::ClientDeactivate wait error ref = 2 name = qjackctl
JackPosixProcessSync::LockedTimedWait error usec = 85332 err = Connection timed out
JackEngine::ClientCloseAux wait error ref = 2
Jack main caught signal 15
ALSA: channel flush for playback failed (No such device)
Cannot stop driver
Released audio card Audio2
audio_reservation_finish
20:11:47.960 JACK a été arrêté


sub26nico utilisateur non connecté France
Note modération : merci d'utiliser la balise CODE lorsque tu copies/colles du code sur le site. Celles-ci permettent un meilleur affichage.
Image
Voir également cette page.

@echevresm, j'ai édité ton message pour qu'il s'affiche correctement, penses à utiliser la balise code s'il te plaît la prochaine fois pour les retours de terminal ou autres codes, ça permet aux lecteurs d'avoir une lecture plus facile et agréable, ils seront plus prompts à t'aider wink.

bda utilisateur non connecté France
je ne connais pas trop le reface, mais est-ce qu'il a une interface audio et MIDI en USB? Elle pourrait interférer avec la behringer. Tu peux le savoir avec les deux branchés et un:
aplay -l

Si elle n'en a pas et que ce n'est que du MIDI, essais ce qui suit:

L'erreur suivante semble indiquer un soucis avec le pilote alsa:
ALSA: prepare error for playback on "hw:CODEC,0" (File descriptor in bad state)

Tu peux regarder avec dmsg si il y a aussi des erreurs alsa ou libasound?

Ça peut se produire dans différentes circonstances. Comme, par exemple, si une autre application utilisait aussi alsa sans passer par jackd.

Essaie aussi, peut être, de lire simplement de la zic avec aplay en envoyant sur la behringer?
Idem en enregistrement avec arecord?

bda utilisateur non connecté France
Petite question toute bête, tu as l'alim officielle?
Tu passes par un hub alimenté?

Je n'ai pas encore rencontrer ce genre de soucis avec la pi4 et l'alim officielle mais avec la 3 ça arrivait souvent...

echevresm utilisateur non connecté
Merci bda pour cette réponse rapide.

Juste avant, j'avais essayé de mettre 44100 à la place de 48000 en fréquence d’échantillonnage dans la config de qjackctl...et le problème disparaît, alors que je suis en 48000 sur le Pi 3 B+ sans pb (j'ai revérifié, toutes choses égales par ailleurs). J'aimerais bien comprendre.

Pour répondre à tes questions : l'interface USB du reface n'est que MIDI, ce qui est confirmé par les commandes aplay -l et arecord -l (aplay trouve une carte 0 correspondant à la puce son du Pi et une carte 2 USB Audio CODEC et arecord ne trouve que la carte 2 USB Audio Codec correspondant au Behringer. Je peux lire de la musique avec n'importe quelle application avec sortie USB Audio CODEC.

J'ai fait aussi ce test:
arecord -d 10 -r 48000 -f S16_LE -c 2 toto.wav

puis
aplay toto.wav

et j'entends bien mon enregistrement.

Enfin dmesg n'affiche pas d'erreur alsa ou libasound.

echevresm utilisateur non connecté
bda, j'ai bien l'alim officielle.

bda utilisateur non connecté France
Là, je sèche un peu ;)
Ton __/etc/asound.conf et/ou ton ~/.asoundrc auraient subis des modifications? Sur la rpi3 ou 4?
As tu désactivés l'interface audio interne avec dtparam=audio=off sur l'une ou l'autre (dans le config.txt)?

Si la config est 100% identique sur les deux, ça peut être un bug.
J'ai un noyau basse latence pour rpi4b qui fonctionne bien chez moi. Si tu veux je peux te le passer en .deb (dans ce cas on se contact en MP). Au moins pour essayer si le problème persiste ou non.

echevresm utilisateur non connecté
Au départ j'avais cloné la micro-SD du Pi 3 B+ et quand je suis tombé sur le problème, j'ai refait une carte en repartant de zéro et en suivant la même procédure (je note tout ce que je fais (!). Aujourd'hui,si j'échange les cartes (celle du Pi 4 sur le Pi 3 B+, et celle du Pi 3 B+ sur le Pi4), le Pi 3 B+ fonctionne correctement et le Pi 4 conserve le pb. Les 2 cartes ont la toute dernière version de Raspbian Buster avec les mises à jour.
Je n'ai pas désactivé la bcm2835.

Je veux bien essayer ton noyau basse latence.

bda utilisateur non connecté France
Je prépare ça dans la foulée.
Il faudra modifier le config.txt:
dtparam=audio=off
kernel=vmlinuz-4.19.57-v7l-bda+

[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

Les lignes suivant pi4 sont probablement déjà activées, c'est juste au cas où.

Le noyau avec les modules (basé sur la config standard + ou - quelques bricoles) -> linux image 4.19.57 basse latence
Les en-têtes si besoin -> headers
Et le libc-dev -> linux-libc-dev

Seul le premier est important. Les deux autres ne sont là que pour les besoins de compilation.

Les fichiers seront disponibles 10 jours.

Je n'ai pas allumé ma rpi4 depuis 2 bonnes semaines mais elle fonctionnait très bien avec ce noyau. En particulier en MAO.

En espérant que ce soit mieux avec.

echevresm utilisateur non connecté
J'ai essayé ton kernel, il fallait le faire, mais ce n'est pas concluant. Au bout d'une minute environ, avec seulement qjackctl lancé, je me retrouve à 100 % de CPU, système bloqué nécessitant un arrêt par coupure de l'alimentation.

En attendant de poursuivre les recherches, je vais me contenter du 44100 Hz.

Merci encore pour cette aide précieuse.

bda utilisateur non connecté France
Étrange. Par curiosité j'ai ressorti ma pi4. Elle n'a aucun dysfonctionnement avec ce noyau.
À ta place, je tenterai bien un retour garantie...

Sinon pas de quoi pour l'aide. C'est un peu le but du jeu sur LinuxMAO :-)

echevresm utilisateur non connecté
Pas évident, le retour garantie car c'est seulement quand je branche le reface en USB-MIDI que le problème se manifeste...

Je ne suis pas chez moi actuellement. A mon retour, si je trouve un ami équipé d'un Pi4 à proximité, je ferais un test avec le sein.

bda utilisateur non connecté France
Tu as essayé un dmesg juste avant de brancher le reface et un second juste après?

echevresm utilisateur non connecté
J'ai fait le test suivant :
-1) démarrage de qjackctl, reface éteint
-2) 1 mn après, allumage du reface
-3) 22 s après cet allumage, les erreurs alsa arrivent et le CPU passe à 50%

- 4) je fais dmesg : il me montre que le reface est sur le port USB N°2, que l'Audio CODEC est sur le port N°3 et que l'émetteur du clavier logiteck K400 est sur le N°4 pour l'étape 2 du test.

Au moment où arrive le pb (étape 3) je trouve des erreurs USB -71 (cannot reset, cannot enable, cannot disable) sur le port n°4 (le clavier K400), puis les mêmes sur le port N°3 (la Behringer) mais pas sur le port où est connecté le reface...Very strange indeed !

A la fermeture de qjackctl, la déconnection puis reconnection des 3 ports peut se faire et est faite automatiquement mais le CPU reste bloqué à 25% alors qu'aucune appli n'est lancée.

echevresm utilisateur non connecté
En tâtonnant, j'ai réussi à endiguer le problème : dans la config de qjackctl, j'avais bien les périphériques d'entrée et de sortie assignés à hw:CONNECT, mais les canaux d'entrée et sortie étaient sur défaut, en leur assignant la valeur 1, le fonctionnement correct est rétabli. Sur le Pi3 B+, ils sont toujours à défaut sans que ça pose problème !

Finalement, il me semble que la différence de comportement vient d'une différence principale entre les 2 modèles de Pi : la gestion des hubs USB. À ce propos, la commande lsusb sur le pi4 indique :
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 005: ID 0499:1624 Yamaha Corp. 
Bus 001 Device 003: ID 08bb:2902 Texas Instruments PCM2902 Audio Codec
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Enfin, puisque ça fonctionne, je passe le fil en résolu.

bda utilisateur non connecté France
C'est toujours bon à savoir :-)
Mais je pense qu'il y a un soucis d'alimentation. Je pense qu'un HUB USB alimenté serait judicieux ici.

echevresm utilisateur non connecté
Juste et judicieux conseil ! J'ai branché le reface et la Behringer sur un petit Hub alimenté et je peux repasser le nombre de canaux d'entrée et de sortie à 2 dans qjackctl.

Moralité : ça fonctionnait sans histoire avec un Pi 3 B+, soit parce qu'il consomme moins que le Pi 4, soit parce que mon alim (non officielle) du Pi 3 B+ est plus costaude que celle du PI 4 en dépit d'une spécification à 3 A identique... mais impossible de faire le test de départage de ces hypothèses en raison du changement de format de la prise USB du Pi 4 (Grrr...).

Afficher les articles :
Aller au forum :

Documentation [Afficher / Cacher]

Faire un don
[Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

calixtus06, 14:33, jeu. 28 mars 2024: Bonjour et bienvenue à b.vl :-)
calixtus06, 09:30, mer. 27 mars 2024: Bonjour et bienvenue à Noar :-)
olinuxx, 18:50, lun. 25 mars 2024: Bonjour et bienvenue à Ted Demore cool
olinuxx, 17:52, dim. 24 mars 2024: Bonjour et bienvenue à Noitavon cool
calixtus06, 11:07, jeu. 21 mars 2024: Bonjour et bienvenue à obds, ceric :-)
obds, 16:12, mar. 19 mars 2024: Cet édito est juste parfait. Trop beau !
olinuxx, 11:48, ven. 15 mars 2024: Bonjour et bienvenue à Jerry cool
calixtus06, 18:03, mer. 13 mars 2024: Bonjour et bienvenue à tanguero :-)
olinuxx, 11:01, dim. 10 mars 2024: Bonjour et bienvenue à lolo cool
bda, 16:59, sam. 09 mars 2024: Chapeau pour l'édito. Vous êtes au top les gars :-)
allany, 07:20, jeu. 07 mars 2024: Ça ne fait jamais de mal, c'est l'éditorial ! [Lien]
olinuxx, 19:52, mer. 06 mars 2024: Bonjour et bienvenue à TrkNrk cool