Chargement...
 
Skip to main content

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


[RESOLU] debian lancement de pw-jack automatique

Bonjour,
sur ma debian testing en rolling release depuis des mois, je suis passé à pipewire. Tout va bien, sauf une chose.
Si par exemple je lance ardour de façon basique, il ne peux pas se connecter à jack.
Je suis obligé de préciser qu'il faut lancer pw-control au préalable.
Copy to clipboard
PIPEWIRE_LATENCY=“512/48000” pw-jack ardour &


le man pw-jack indique pourtant que cela devrait être automatique (ça fonctionne très bien sur une debian testing installée fraîchement en VM)
Copy to clipboard
pw-jack modifies the LD_LIBRARY_PATH environment variable so that applications will load PipeWire's reimplementation of the JACK client libraries instead of JACK's own libraries. This results in JACK clients being redirected to PipeWire. If PipeWire's reimplementation of the JACK client libraries has been installed as a system-wide replacement for JACK's own libraries, then the whole system already behaves in that way, in which case pw-jack has no practical effect.


Sur cette machine, la variable LD_LIBRARY_PATH n'existe pas (testé avec printenv | grep LD_LIB).
Une recherche internet ne ma pas donné de solution .
Est ce que je dois créer la variable LD_LIBRARY_PATH ? Quelle valeur lui donner ?
France
je n'ai pas de retour non plus en tapant 'printenv | grep LD_LIB' dans une console.

Que ce passe t'il si au lieu de ce que tu tapes pour lancer Ardour, tu utilises :
Copy to clipboard
$ PIPEWIRE_LATENCY=128/48000 ardour

Chez moi c'est ardour7 le nom du fichier binaire installé. tu adapteras simplement le nom ...
Comme je l'ai indiqué, ardour m'indique que le serveur jack n'est pas lancé.
Je dois préciser de lancer pw-jack en ligne de commande.
Je n'arrive pas à trouver comment cela doit étre fait pour éviter ça.
D'aprés la doc, ce serait dans la variable d'environnement LD_LIBRARY_PATH , mais si cette variable n'existe pas chez toi, et que tu n'as pas besoin de lancer pw-jack, ça ne doit pas étre ça.
France
Ce que j'ai lu, c'est que lorsque PipeWire est installé pour tous les utilisateurs au niveau système (system wide) et que WirePlumber (le gestionnaire de session) est lui aussi présent, il n'y a pas besoin de `pw-jack`.

Est ce que tu sais comment tu as installé ? en local ou system wide ? est ce que tu as aussi WirePlumber ?

De plus, ça aiderait peut être si tu lançais Ardour dans une console et que tu publiais les erreurs lorsque Ardour cherche JACK.
Salut juju,
j'ai installé pipewire, wireplumber, pipewire-jack avec le gestionnaire de paquet de ma distribution, donc normalement pour tout le monde.
La console me dit que le serveur jack n'est pas démarré.
Copy to clipboard
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 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 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 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 Found nothing along /home/didier/.config/ardour7/templates:/usr/share/ardour7/templates 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 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 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 JACK command line will be: -t 200 -p 2048 -R -T -d alsa -n 2 -r 44100 -p 1024 -d hw:HDMI,3 -X raw Cannot connect to server socket err = Aucun fichier ou dossier de ce type Cannot connect to server request channel exec of JACK server (command = "-t") failed: Aucun fichier ou dossier de ce type Cannot connect to server socket err = Aucun fichier ou dossier de ce type Cannot connect to server request channel Cannot connect to server socket err = Aucun fichier ou dossier de ce type Cannot connect to server request channel Cannot connect to server socket err = Aucun fichier ou dossier de ce type Cannot connect to server request channel Cannot connect to server socket err = Aucun fichier ou dossier de ce type Cannot connect to server request channel 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


si je lance pw-jack dans une autre console (sans quitter ardour), et que je refais une tentative de connaction à jack, idem, pas de serveur.

Jr relance ardour avec PIPEWIRE_LATENCY=128/48000 ardour , alors que pw-jack est lancé dans une autre console, pas mieux.
je lance pw-jack, puis je lance ardour (en é commande séparée), pas mieux.
Il faut que ja lance pw-jack et ardour dans la même ligne de commande.
C'est d'autant plus étrange que sur ma debian en vm fraichement installée, je n'ai pas ce problème.
France
En fait, quand tu utilises pw-jack, c'est pw-jack qui lance Ardour en envoyant les flux audio vers ou depuis la version PipeWire de JACK.

Apparemment c'est la librairie jack de pipewire qui remplace la librairie jack qui ne doit pas être installée correctement sur ton système.

Il dit quoi quand tu lances ardour dans une console avec :
Copy to clipboard
$ PIPEWIRE_LATENCY=128/48000 pw-jack ardour

Sinon c'est peut être un problème venant du fait qu'il cherche à se connecter au HDMI... mais là ... je n'en sais pas plus non plus.

Pour finir, si ça fonctionne sur une VM c'est soit que les réglage de ta distribution pose problème, soit tes réglages dans ton espace utilisateur posent problème, soit ton matériel pose problème et il passe par une couche d'abstraction dans la VM ...
Je pense a un problème de librairie, d'ou ma question initiale sur LD_LIBRARY_PATH.
Je regarde ce soir comment ça se comporte sur ma machine principale.
Si je lance ardour dans la VM, il m'indique que le serveur jack est déja lancé, et qu'il va s'y connecter en utilisant les paramètres de celui ci (48 kHz). C'est le comportement décrit dans la doc, mais ce n'est pas forcément mieux pour un utilisateur MAO (on ne choisit pas sa fréquence d’échantillonnage).
j'aimerai bien revenir au fonctionnement nominal sur ma machine principale, ça me permettrait de mieux comprendre le fonctionnement le pw-jack, et pipewire en général.
An MAO, on a besoin d'avoir le controle sur jack (ou son émulation)
Trouvé sur le wiki de ARCH, à tester
Copy to clipboard
Auto-switching is not working If auto-switching is not working it may be an issue with WirePlumber state. As suggested by this comment you can delete WirePlumber's local state and restart the daemon to see if that helps: $ rm -r ~/.local/state/wireplumber/ Then restart the wireplumber.service user unit.

lorsque je lance ardour en précisant pw-jack, il n'y a rien qui concerne jack dans la sortie du terminal. Juste le chargement des grffons et de la config.
Je connais le lien que tu indiques. Ca date un peu (vu l'avancée rapide de pw), mais ca reste pertinent.
France
Si ça fonctionne avec pw-jack et que ça ne fonctionne pas sans rien, c'est sûrement parceque WirePlumber ne fait pas son boulot.

En tant que gestionnaire de session, il doit voir ardour et faire en sorte qu'il se connecte à la version Jack de PipeWire.
J'ai réinstallé pulseaudio, puis j'ai réinstallé pewire et tous les paquets annexes. rien à faire , pw-jack ne se lance pas automatiquement.
Et je n'arrive pas à trouver de piste pour avancer. Par exemple, comment wireplumber détectele besoin de lancer jack, et le lance.
France
Oui c'est normal.

le gestionnaire de session inclus dans PipeWire ne s'occupe pas du tout de la partie JACK. donc quand un application JACK se présente, il ne fait rien. C'est en démarrant le logiciel avec la commande pw-jack que les connections avec le serveur JACK de PipeWire peuvent se faire et uniquement comme ça.

Ça c'est pour le fonctionnement de PipeWire seul.

Maintenant je ne sais pas non plus pourquoi, lorsque tu installes WirePlumber en plus de PipeWire, il ne crée pas ce qu'il faut en voyant une application JACK pointer le bout de son nez.
Désolé mais mes connaissances s’arrêtent là.

Tu avais bien détruit les fichiers d'êtat de WirePlumber dans ton espace personnel avec la commande dont tu parlais il y a quelques jours ?
Merci juju de t'interesser à mon probléme.
J'ai bien purgé le fichier local, mais j'ai fait plein d'autres choses avant de tout réinctaller.
Je vais essayer de refaire dans l'ordre (purge fichier local, purge paquets, réinstall)
Le service wireplumber ne démarre pas! Je vais creuser ça
Copy to clipboard
#systemctl start wireplumber.service Failed to start wireplumber.service: Unit wireplumber.service not found.

France
Euh, c'est pareil chez moi. je n'ai pas regardé si ça change quand il y a du son par contre ... 😊
A priori il faut lancer wireplumber en simple utilisateur, pas en root.
Mais je doute qu'il ne soit pas lancé, il fait bien le routage des client pulseaudio.
Je teste ce soir
édit: vu sur le wiki pipewire
Copy to clipboard
systemctl --user --now enable wireplumber


sur ma debian en VM qui fonctionne correctement:
Copy to clipboard
systemctl --user --now status wireplumber ● wireplumber.service - Multimedia Service Session Manager Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled) Active: active (running) since Thu 2023-09-21 10:46:32 CEST; 2h 58min ago Main PID: 1512 (wireplumber) Tasks: 6 (limit: 4555) Memory: 10.7M CPU: 79ms CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service └─1512 /usr/bin/wireplumber sept. 21 10:46:32 debian systemd[1491]: Started wireplumber.service - Multimedia Service Session Manager. sept. 21 10:46:32 debian wireplumber[1512]: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed? sept. 21 10:46:32 debian wireplumber[1512]: PipeWire's libcamera SPA missing or broken. libcamera not supported. sept. 21 10:46:32 debian wireplumber[1512]: Failed to get percentage from UPower: org.freedesktop.DBus.Error.NameHasNoOwner sept. 21 10:46:32 debian wireplumber[1512]: ofono running, but not configured as HFP/HSP backend: it may interfere with HFP/HSP functionality. sept. 21 10:46:32 debian wireplumber[1512]: listen(): Adresse déjà utilisée sept. 21 10:46:32 debian wireplumber[1512]: ofono running, but not configured as HFP/HSP backend: it may interfere with HFP/HSP functionality. sept. 21 10:46:32 debian wireplumber[1512]: RegisterProfile() failed: org.bluez.Error.NotPermitted sept. 21 10:46:32 debian wireplumber[1512]: <WpSiAudioAdapter:0x5598a4b25610> Object activation aborted: proxy destroyed sept. 21 10:46:32 debian wireplumber[1512]: <WpSiAudioAdapter:0x5598a4b25610> failed to activate item: Object activation aborted: proxy destroyed

Sur le debian qui pose probleme:

Copy to clipboard
systemctl --user --now status wireplumber ● wireplumber.service - Multimedia Service Session Manager Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled) Active: active (running) since Thu 2023-09-21 21:32:26 CEST; 13s ago Main PID: 141665 (wireplumber) Tasks: 7 (limit: 14281) Memory: 10.3M CPU: 230ms CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service └─141665 /usr/bin/wireplumber sept. 21 21:32:26 ordi1 systemd[1959]: Started wireplumber.service - Multimedia Service Session Manager. sept. 21 21:32:26 ordi1 wireplumber[141665]: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed? sept. 21 21:32:26 ordi1 wireplumber[141665]: PipeWire's libcamera SPA missing or broken. libcamera not supported. sept. 21 21:32:27 ordi1 wireplumber[141665]: GetManagedObjects() failed: org.freedesktop.DBus.Error.NameHasNoOwner sept. 21 21:32:27 ordi1 wireplumber[141665]: [string "restore-stream.lua"]:344: attempt to compare number with table stack traceback: [string "restore-stream.lua"]:344: in global 'build_default_channel_volumes' [string "restore-stream.lua"]:371: in global 'restoreStream' [string "restore-stream.lua"]:497: in function <[string "restore-stream.lua"]:495> sept. 21 21:32:27 ordi1 wireplumber[141665]: [string "restore-stream.lua"]:344: attempt to compare number with table stack traceback: [string "restore-stream.lua"]:344: in global 'build_default_channel_volumes' [string "restore-stream.lua"]:371: in global 'restoreStream' [string "restore-stream.lua"]:497: in function <[string "restore-stream.lua"]:495> sept. 21 21:32:27 ordi1 wireplumber[141665]: [string "restore-stream.lua"]:344: attempt to compare number with table stack traceback: [string "restore-stream.lua"]:344: in global 'build_default_channel_volumes' [string "restore-stream.lua"]:371: in global 'restoreStream' [string "restore-stream.lua"]:497: in function <[string "restore-stream.lua"]:495> sept. 21 21:32:27 ordi1 wireplumber[141665]: <WpSiAudioAdapter:0x55840f9bc650> Object activation aborted: proxy destroyed sept. 21 21:32:27 ordi1 wireplumber[141665]: <WpSiAudioAdapter:0x55840f9bc650> failed to activate item: Object activation aborted: proxy destroyed


Je vais creuser ça
France
Chez moi :
Copy to clipboard
$ systemctl --user --now status wireplumber ● wireplumber.service - Multimedia Service Session Manager Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled) Active: active (running) since Fri 2023-09-22 17:23:58 CEST; 37min ago Main PID: 614 (wireplumber) Tasks: 6 (limit: 18983) Memory: 17.4M CPU: 361ms CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service └─614 /usr/bin/wireplumber sept. 22 17:23:58 GMC systemd[519]: Started Multimedia Service Session Manager. sept. 22 17:23:59 GMC wireplumber[614]: Failed to get percentage from UPower: org.freedesktop.DBus.Error.NameHasNoOwner sept. 22 17:23:59 GMC wireplumber[614]: [0:00:14.943800659] [614] ERROR IPAModule ipa_module.cpp:172 Symbol ipaModuleInfo not found sept. 22 17:23:59 GMC wireplumber[614]: [0:00:14.943820523] [614] ERROR IPAModule ipa_module.cpp:292 v4l2-compat.so: IPA module has no valid info sept. 22 17:23:59 GMC wireplumber[614]: [0:00:14.943867903] [614] INFO Camera camera_manager.cpp:284 libcamera v0.1.0 sept. 22 17:23:59 GMC wireplumber[614]: GetManagedObjects() failed: org.freedesktop.DBus.Error.NameHasNoOwner sept. 22 17:23:59 GMC wireplumber[614]: <WpSiAudioAdapter:0x55dff3040050> Object activation aborted: proxy destroyed sept. 22 17:23:59 GMC wireplumber[614]: <WpSiAudioAdapter:0x55dff3040050> failed to activate item: Object activation aborted: proxy destroyed

Après avoir nettoyer les fichiers de conf, réinstallé, il ne me reste plus que cette erreur
Copy to clipboard
GetManagedObjects() failed: org.freedesktop.DBus.Error.NameHasNoOwner

Si pas de connexion à DBus, wireplumber ne doit pas avoir l'info qu'un client JACK est lancé.
Je continu les recherches.
France
Du coup tu as tout qui fonctionne ?
Page: 1/2  [Suivant]
1  2