Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème avec pulseaudio

19 réponses
Avatar
steve
Bonjour,

Sur une testing Í  jour.

Des logs:

Jun 19 07:39:00 box pulseaudio[831974]: Failed to create secure directory (/nonexistent/.config/pulse): Aucun fichier ou dossier de ce type
Jun 19 07:39:00 box systemd[831936]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 19 07:39:00 box systemd[831936]: pulseaudio.service: Failed with result 'exit-code'.
Jun 19 07:39:00 box systemd[831936]: Failed to start Sound Service.
Jun 19 07:39:00 box systemd[831936]: Startup finished in 347ms.
Jun 19 07:39:00 box systemd[831936]: pulseaudio.service: Scheduled restart job, restart counter is at 1.
Jun 19 07:39:00 box pulseaudio[831984]: Failed to create secure directory (/nonexistent/.config/pulse): Aucun fichier ou dossier de ce type
Jun 19 07:39:00 box systemd[831936]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 19 07:39:00 box systemd[831936]: pulseaudio.service: Failed with result 'exit-code'.
Jun 19 07:39:00 box systemd[831936]: Failed to start Sound Service.
Jun 19 07:39:00 box systemd[831936]: pulseaudio.service: Scheduled restart job, restart counter is at 2.
Jun 19 07:39:00 box pulseaudio[831985]: Failed to create secure directory (/nonexistent/.config/pulse): Aucun fichier ou dossier de ce type
Jun 19 07:39:00 box systemd[831936]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 19 07:39:00 box systemd[831936]: pulseaudio.service: Failed with result 'exit-code'.
Jun 19 07:39:00 box systemd[831936]: Failed to start Sound Service.
Jun 19 07:39:01 box systemd[831936]: pulseaudio.service: Scheduled restart job, restart counter is at 3.
Jun 19 07:39:01 box pulseaudio[831986]: Failed to create secure directory (/nonexistent/.config/pulse): Aucun fichier ou dossier de ce type
Jun 19 07:39:01 box systemd[831936]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 19 07:39:01 box systemd[831936]: pulseaudio.service: Failed with result 'exit-code'.
Jun 19 07:39:01 box systemd[831936]: Failed to start Sound Service.
Jun 19 07:39:01 box systemd[831936]: pulseaudio.service: Scheduled restart job, restart counter is at 4.
Jun 19 07:39:01 box pulseaudio[832000]: Failed to create secure directory (/nonexistent/.config/pulse): Aucun fichier ou dossier de ce type
Jun 19 07:39:01 box systemd[831936]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 19 07:39:01 box systemd[831936]: pulseaudio.service: Failed with result 'exit-code'.
Jun 19 07:39:01 box systemd[831936]: Failed to start Sound Service.
Jun 19 07:39:01 box systemd[831936]: pulseaudio.service: Scheduled restart job, restart counter is at 5.
Jun 19 07:39:01 box systemd[831936]: pulseaudio.service: Start request repeated too quickly.
Jun 19 07:39:01 box systemd[831936]: pulseaudio.service: Failed with result 'exit-code'.
Jun 19 07:39:01 box systemd[831936]: Failed to start Sound Service.
Jun 19 07:39:01 box systemd[831936]: pulseaudio.socket: Failed with result 'service-start-limit-hit'.


Et pourtant j'ai du son !

Ces messages d'erreur existent depuis des mois déjÍ . J'ai désinstallé puis
réinstallé pulseaudio plusieurs fois, effacé ~/.config/pulse et aussi
probablement d'autres trucs dont je ne me souviens plus, mais rien y fait
toujours ces mêmes messages d'erreur.

Et pourtant elle tourne (ah non ça c'est quelqu'un d'autre… :))

Je ne vois pas d'o͹ vient ce répertoire /nonexistant/.

Un peu perdu sur ce coup-lÍ .

Une idée?

Bon week-end.

S

9 réponses

1 2
Avatar
Hugues Larrive
Le jeudi 24 juin 2021 Í  11:26, steve a écrit :
Bonjour Hugues,
Merci pour toutes ces explications mais il y a une chose que je ne
comprends pas vraiment. Qu'est que pulseaudio et updatedb ont Í  voir
ensemble. updatedb sert Í  créer un index des fichiers afin d'accélérer
la recherche avec locate ou mlocate. Qu'est-ce que ça a voir avec
pulseaudio ?

Je ne suis pas un expert en ce qui concerne systemd alors qu'on me corrige si je me trompe.
D'après ce que j'ai compris systemd gère aussi les services utilisateurs donc lorsqu'un utilisateur se connecte, systemd crée une instance utilisateur et lance un certain nombre de service dont pulseaudio.
Je ne sais pas pourquoi mais le script updatedb.findutils de locate provoque la création d'une telle instance lorsqu'il fait un `su nobody`. Pourtant ça ne le fait pas quand j'utilise la commande `su` depuis le shell... par exemple :
:~$ ssh
's password:
Linux pbp 5.7.0-2-pinebookpro-arm64 #1 SMP PREEMPT Thu May 20 03:47:11 UTC 2021 aarch64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jun 24 15:19:55 2021 from ::1
provoque les messages suivant dans syslog :
Jun 24 15:21:39 pbp systemd[1]: Created slice User Slice of UID 1001.
Jun 24 15:21:39 pbp systemd[1]: Starting User Runtime Directory /run/user/1001...
Jun 24 15:21:39 pbp systemd[1]: Finished User Runtime Directory /run/user/1001.
Jun 24 15:21:39 pbp systemd[1]: Starting User Manager for UID 1001...
Jun 24 15:21:39 pbp systemd[3080]: gpgconf: erreur d'exécution de «Â /usr/lib/gnupg/scdaemon »Â : il n'est sans doute pas installé
Jun 24 15:21:39 pbp systemd-xdg-autostart-generator[3094]: Exec binary 'system-config-printer-applet' does not exist: No such file or directory
Jun 24 15:21:39 pbp systemd-xdg-autostart-generator[3094]: Not generating service for XDG autostart app-printx2dapplet-autostart.service, error parsing Exec= line: No such file or directory
Jun 24 15:21:39 pbp systemd[3072]: Queued start job for default target Main User Target.
Jun 24 15:21:39 pbp systemd[3072]: Created slice User Application Slice.
Jun 24 15:21:39 pbp systemd[3072]: Reached target Paths.
Jun 24 15:21:39 pbp systemd[3072]: Reached target Timers.
Jun 24 15:21:39 pbp systemd[3072]: Starting D-Bus User Message Bus Socket.
Jun 24 15:21:39 pbp systemd[3072]: Listening on GnuPG network certificate management daemon.
Jun 24 15:21:39 pbp systemd[3072]: Listening on GnuPG cryptographic agent and passphrase cache (access for web browsers).
Jun 24 15:21:39 pbp systemd[3072]: Listening on GnuPG cryptographic agent and passphrase cache (restricted).
Jun 24 15:21:39 pbp systemd[3072]: Listening on GnuPG cryptographic agent (ssh-agent emulation).
Jun 24 15:21:39 pbp systemd[3072]: Listening on GnuPG cryptographic agent and passphrase cache.
Jun 24 15:21:39 pbp systemd[3072]: Listening on Sound System.
Jun 24 15:21:39 pbp systemd[3072]: Listening on D-Bus User Message Bus Socket.
Jun 24 15:21:39 pbp systemd[3072]: Reached target Sockets.
Jun 24 15:21:39 pbp systemd[3072]: Reached target Basic System.
Jun 24 15:21:39 pbp systemd[1]: Started User Manager for UID 1001.
Jun 24 15:21:39 pbp systemd[3072]: Starting Sound Service...
Jun 24 15:21:39 pbp systemd[1]: Started Session c9 of user test.
Jun 24 15:21:39 pbp rtkit-daemon[1387]: Supervising 0 threads of 0 processes of 1 users.
Jun 24 15:21:39 pbp rtkit-daemon[1387]: Supervising 0 threads of 0 processes of 1 users.
Jun 24 15:21:39 pbp rtkit-daemon[1387]: Supervising 0 threads of 0 processes of 1 users.
Jun 24 15:21:39 pbp rtkit-daemon[1387]: Supervising 0 threads of 0 processes of 1 users.
Jun 24 15:21:39 pbp rtkit-daemon[1387]: Supervising 0 threads of 0 processes of 1 users.
Jun 24 15:21:39 pbp systemd[3072]: Started D-Bus User Message Bus.
Jun 24 15:21:40 pbp systemd[3072]: Started Sound Service.
Jun 24 15:21:40 pbp systemd[3072]: Reached target Main User Target.
Jun 24 15:21:40 pbp systemd[3072]: Startup finished in 774ms.
Jun 24 15:21:40 pbp bluetoothd[691]: Endpoint registered: sender=:1.139 path=/MediaEndpoint/A2DPSink/sbc
Jun 24 15:21:40 pbp bluetoothd[691]: Endpoint registered: sender=:1.139 path=/MediaEndpoint/A2DPSource/sbc
Jun 24 15:21:40 pbp bluetoothd[691]: src/profile.c:ext_start_servers() RFCOMM server failed for Headset Voice gateway: rfcomm_bind: Address already in use (98)
Jun 24 15:21:40 pbp bluetoothd[691]: src/profile.c:ext_start_servers() RFCOMM server failed for Headset unit: rfcomm_bind: Address already in use (98)
et Í  la déconnexion :
Jun 24 15:24:51 pbp systemd[1]: session-c9.scope: Succeeded.
Jun 24 15:24:51 pbp bluetoothd[691]: Endpoint unregistered: sender=:1.139 path=/MediaEndpoint/A2DPSink/sbc
Jun 24 15:24:51 pbp bluetoothd[691]: Endpoint unregistered: sender=:1.139 path=/MediaEndpoint/A2DPSource/sbc
Jun 24 15:24:51 pbp systemd[3072]: pulseaudio.service: Succeeded.
Jun 24 15:25:01 pbp CRON[3122]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Jun 24 15:25:02 pbp systemd[1]: Stopping User Manager for UID 1001...
Jun 24 15:25:02 pbp systemd[3072]: Stopped target Main User Target.
Jun 24 15:25:02 pbp systemd[3072]: Stopping D-Bus User Message Bus...
Jun 24 15:25:02 pbp systemd[3072]: dbus.service: Succeeded.
Jun 24 15:25:02 pbp systemd[3072]: Stopped D-Bus User Message Bus.
Jun 24 15:25:02 pbp systemd[3072]: Stopped target Basic System.
Jun 24 15:25:02 pbp systemd[3072]: Stopped target Paths.
Jun 24 15:25:02 pbp systemd[3072]: Stopped target Sockets.
Jun 24 15:25:02 pbp systemd[3072]: Stopped target Timers.
Jun 24 15:25:02 pbp systemd[3072]: dbus.socket: Succeeded.
Jun 24 15:25:02 pbp systemd[3072]: Closed D-Bus User Message Bus Socket.
Jun 24 15:25:02 pbp systemd[3072]: dirmngr.socket: Succeeded.
Jun 24 15:25:02 pbp systemd[3072]: Closed GnuPG network certificate management daemon.
Jun 24 15:25:02 pbp systemd[3072]: gpg-agent-browser.socket: Succeeded.
Jun 24 15:25:02 pbp systemd[3072]: Closed GnuPG cryptographic agent and passphrase cache (access for web browsers).
Jun 24 15:25:02 pbp systemd[3072]: gpg-agent-extra.socket: Succeeded.
Jun 24 15:25:02 pbp systemd[3072]: Closed GnuPG cryptographic agent and passphrase cache (restricted).
Jun 24 15:25:02 pbp systemd[3072]: gpg-agent-ssh.socket: Succeeded.
Jun 24 15:25:02 pbp systemd[3072]: Closed GnuPG cryptographic agent (ssh-agent emulation).
Jun 24 15:25:02 pbp systemd[3072]: gpg-agent.socket: Succeeded.
Jun 24 15:25:02 pbp systemd[3072]: Closed GnuPG cryptographic agent and passphrase cache.
Jun 24 15:25:02 pbp systemd[3072]: pulseaudio.socket: Succeeded.
Jun 24 15:25:02 pbp systemd[3072]: Closed Sound System.
Jun 24 15:25:02 pbp systemd[3072]: Removed slice User Application Slice.
Jun 24 15:25:02 pbp systemd[3072]: Reached target Shutdown.
Jun 24 15:25:02 pbp systemd[3072]: systemd-exit.service: Succeeded.
Jun 24 15:25:02 pbp systemd[3072]: Finished Exit the Session.
Jun 24 15:25:02 pbp systemd[3072]: Reached target Exit the Session.
Jun 24 15:25:02 pbp systemd[1]: : Succeeded.
Jun 24 15:25:02 pbp systemd[1]: Stopped User Manager for UID 1001.
Jun 24 15:25:02 pbp systemd[1]: Stopping User Runtime Directory /run/user/1001...
Jun 24 15:25:02 pbp systemd[1356]: run-user-1001.mount: Succeeded.
Jun 24 15:25:02 pbp systemd[1]: run-user-1001.mount: Succeeded.
Jun 24 15:25:02 pbp systemd[1097]: run-user-1001.mount: Succeeded.
Jun 24 15:25:02 pbp systemd[1]: : Succeeded.
Jun 24 15:25:02 pbp systemd[1]: Stopped User Runtime Directory /run/user/1001.
Jun 24 15:25:02 pbp systemd[1]: Removed slice User Slice of UID 1001.
mais `su test` ne provoque pas la création d'une instance utilisateur, `su nobody -s /bin/sh` non plus.
Donc il y a toujours quelque chose qui m'échape...
@+
Avatar
Vincent Lefevre
On 2021-06-24 13:52:17 +0000, Hugues Larrive wrote:
mais `su test` ne provoque pas la création d'une instance utilisateur,
`su nobody -s /bin/sh` non plus.

Pas depuis un shell (je pense que la raison est qu'on est déjÍ  dans
une instance utilisateur), mais depuis un service comme cron, il y
a bien une création d'une instance utilisateur.
--
Vincent Lefèvre - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
Avatar
Vincent Lefevre
On 2021-06-24 08:55:25 +0000, Hugues Larrive wrote:
Le mercredi 23 juin 2021 Í  06:39, Haricophile a écrit :
Chez moi il semble être lancé par systemd lors de l'exécution des tÍ¢ches cron.daily, et plus particulièrement du script /etc/cron.daily/locate qui contient :
# run find as this user
LOCALUSER="nobody"
Ça lance le script /usr/bin/updatedb.findutils qui fait un `su nobody` ... ce qui provoque :
Jun 23 06:55:12 pbp systemd[1]: Created slice User Slice of UID 65534.
Jun 23 06:55:12 pbp systemd[1]: Starting User Runtime Directory /run/user/65534...
Jun 23 06:55:12 pbp systemd[1]: Finished User Runtime Directory /run/user/65534.
Jun 23 06:55:12 pbp systemd[1]: Starting User Manager for UID 65534...
et une tentative de lancement de pulseaudio.service pour cet utilisateur.

C'est parce qu'avec systemd et son utilisation des CGroup, il ne
faut pas utiliser "su" dans un fichier crontab.
Si je comprends bien, le problème est que le service cron est dans
le system.slice, et que le su va alors créer un user.slice pour
l'utilisateur en question (ici, nobody). Et c'est ça qui va activer
divers trucs, dont une tentative de lancement de pulseaudio.
Par exemple, si j'ajoute un fichier dans /etc/cron.d avec une
ligne du genre
40 * * * * root su nobody -c true
alors quand la commande est lancée, j'obtiens:
Jun 24 15:40:01 zira CRON[186136]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Jun 24 15:40:01 zira CRON[186137]: (root) CMD (su nobody -c true)
Jun 24 15:40:01 zira systemd[1]: Created slice User Slice of UID 65534.
Jun 24 15:40:01 zira su[186138]: (to nobody) root on none
Jun 24 15:40:01 zira systemd[1]: Starting User Runtime Directory /run/user/65534...
Jun 24 15:40:01 zira su[186138]: pam_unix(su:session): session opened for user nobody(uide534) by (uid=0)
Jun 24 15:40:01 zira systemd[1]: Finished User Runtime Directory /run/user/65534.
Jun 24 15:40:01 zira systemd[186140]: pam_unix(systemd-user:session): session opened for user nobody(uide534) by (uid=0)
Jun 24 15:40:01 zira systemd[1]: Starting User Manager for UID 65534...
[...]
Jun 24 15:40:01 zira systemd[186140]: Starting Sound Service...
Jun 24 15:40:01 zira nologin[186163]: Attempted login by root (UID: 65534) on UNKNOWN
Jun 24 15:40:01 zira su[186138]: pam_unix(su:session): session closed for user nobody
Jun 24 15:40:01 zira pipewire[186161]: could not set nice-level to -11: Permission denied
Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
Jun 24 15:40:01 zira systemd[186140]: Started D-Bus User Message Bus.
Jun 24 15:40:01 zira pipewire[186161]: could not make thread realtime: Permission denied
Jun 24 15:40:01 zira systemd[1]: session-799.scope: Succeeded.
Jun 24 15:40:01 zira pipewire[186161]: Failed to receive portal pid: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get PID of name 'org.freedesktop.portal.Desktop': no such name
Jun 24 15:40:01 zira pipewire-media-session[186168]: could not set nice-level to -11: Permission denied
Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
Jun 24 15:40:01 zira pipewire-media-session[186168]: could not make thread realtime: Permission denied
Jun 24 15:40:01 zira CRON[186136]: pam_unix(cron:session): session closed for user root
Jun 24 15:40:01 zira pulseaudio[186162]: Failed to create secure directory (/nonexistent/.config/pulse): No such file or directory
Jun 24 15:40:01 zira postfix/pickup[183192]: A54ACC23C25: uid=0 from=<root>
Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Failed with result 'exit-code'.
Jun 24 15:40:01 zira systemd[186140]: Failed to start Sound Service.
[...]
Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Scheduled restart job, restart counter is at 1.
Jun 24 15:40:01 zira systemd[186140]: Stopped Sound Service.
Jun 24 15:40:01 zira systemd[186140]: Starting Sound Service...
Jun 24 15:40:01 zira pulseaudio[186178]: Failed to create secure directory (/nonexistent/.config/pulse): No such file or directory
Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Failed with result 'exit-code'.
Jun 24 15:40:01 zira systemd[186140]: Failed to start Sound Service.
Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Scheduled restart job, restart counter is at 2.
Jun 24 15:40:02 zira systemd[186140]: Stopped Sound Service.
Jun 24 15:40:02 zira systemd[186140]: Starting Sound Service...
Jun 24 15:40:02 zira pulseaudio[186179]: Failed to create secure directory (/nonexistent/.config/pulse): No such file or directory
Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Failed with result 'exit-code'.
Jun 24 15:40:02 zira systemd[186140]: Failed to start Sound Service.
Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Scheduled restart job, restart counter is at 3.
Jun 24 15:40:02 zira systemd[186140]: Stopped Sound Service.
[...]
Je ne sais pas si ça vient aussi de la config de pam...
Pour l'UID 1000 pulseaudio se lance normalement.
Pour l'UID 0 ça donne :
Jun 23 07:09:28 pbp systemd[1951]: Condition check resulted in Sound System being skipped.
C'est dÍ» Í  une ligne dans /usr/lib/systemd/user/pulseaudio.service :
ConditionUser=!root
On peut obtenir la même chose pour nobody en ajoutant :
ConditionUser=!nobody
juste en dessous.

Sauf que ça va juste régler le problème avec pulseaudio, et pas
les autres erreurs éventuelles dues Í  l'utilisation du "su".
Préalablement, pour éviter que ce soit écrasé par une mise Í  jour de pulseaudio :
# dpkg-divert --rename /usr/lib/systemd/user/pulseaudio.service
# cp /usr/lib/systemd/user/pulseaudio.service.distrib /usr/lib/systemd/user/pulseaudio.service

Il est probablement préférable de remplacer le lien symbolique
/etc/systemd/user/default.target.wants/pulseaudio.service -> /usr/lib/systemd/user/pulseaudio.service
par un fichier avec la config voulue (je n'ai pas testé).
Après je ne sais pas trop Í  qui attribuer ce bug, est-ce que pulseaudio devrait intégrer une condition pour nobody comme pour root ? est-ce que systemd ne devrait pas lancer de "User Manager" pour nobody ? est-ce que c'est le script updatedb.findutils qui fait quelque chose d'incorrect ?

Comme il peut aussi y avoir des problèmes avec d'autres utilisateurs
que nobody, je dirais que c'est surtout le "su" Í  éviter. Désactiver
les trucs pour nobody pourrait toujours être utile, mais ne réglerait
pas le problème général.
Peut-être que le fonctionnement du "su" pourrait être corrigé?
Au passage, "sudo" n'est-il maintenant pas recommendé Í  la place
de "su"? Et règle-t-il ce problème? (Pas testé...)
Maintenant que j'ai identifié /etc/cron.daily/locate comme source du
problème, je me suis aperçu que locate n'est pas installé sur ma
buster, c'est mlocate Í  la place...
Du coup ma solution finale :
# apt-get install mlocate locate-

C'est ce que j'utilise depuis plusieurs années (avant, c'était
slocate, je crois).
--
Vincent Lefèvre - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
Avatar
Hugues Larrive
a écrit :
Sous Buster et Bullseye, Pipewire est disponible mais ne remplace pas
Alsa, Jack et Pulseaudio. On peut contraindre ce fonctionnement mais
c'est déconseillé
https://wiki.debian.org/PipeWire#Using_as_a_substitute_for_PulseAudio.2FJACK.2FALSA

Bonjour,
Je viens juste d'installer 2 chroot pour tester :
# debootstrap --foreign buster buster http://deb.debian.org/debian
# debootstrap --foreign bullseye bullseye http://deb.debian.org/debian
Pour la t͢che "environnement de bureau Debian" ;
sous buster pipewire n'est pas installé :
:~$ schroot -c buster -u root
-bash-5.0# echo n | apt-get install task-desktop | grep -e pulseaudio -e pipewire
gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio gstreamer1.0-x
libphodav-2.0-common libphonenumber7 libpipeline1 libpipewire-0.2-1
psmisc publicsuffix pulseaudio pulseaudio-module-bluetooth pulseaudio-utils
sous bullseye pipewire est installé :
-bash-5.1# echo n | apt-get install task-desktop | grep -e pulseaudio -e pipewire
gstreamer1.0-libav gstreamer1.0-packagekit gstreamer1.0-pipewire
gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio gstreamer1.0-x
libphonenumber8 libpipeline1 libpipewire-0.3-0 libpipewire-0.3-modules
pipewire pipewire-bin pkg-config plymouth plymouth-label pocketsphinx-en-us
policykit-1 poppler-data ppp procps psmisc publicsuffix pulseaudio
pulseaudio-module-bluetooth pulseaudio-utils python-apt-common python3
Ce n'est pas une dépendance mais juste une recommandation car quand on le supprime ça n'enlève rien d'autre. Je pense que debian-installer installe la même chose Í  moins de mettre l'option install-recommends Í  false.
Soit c'est une erreur soit la page de wiki a besoin d'une mise Í  jour, parce qu'actuellement on se retrouve avec pipewire installé et pulseaudio désactivé par défaut.
Avatar
Hugues Larrive
Le jeudi 24 juin 2021 Í  15:59, Vincent Lefevre a écrit :
C'est parce qu'avec systemd et son utilisation des CGroup, il ne
faut pas utiliser "su" dans un fichier crontab.

Oui, en fait su n'est pas utilisé directement dans le fichier crontab mais par /usr/bin/updatedb.findutils qui est un script sh, mais bon ça revient au même vu que cet utilitaire est destiné Í  être utilisé dans un fichier crontab.
Si je comprends bien, le problème est que le service cron est dans
le system.slice, et que le su va alors créer un user.slice pour
l'utilisateur en question (ici, nobody). Et c'est ça qui va activer
divers trucs, dont une tentative de lancement de pulseaudio.
Par exemple, si j'ajoute un fichier dans /etc/cron.d avec une
ligne du genre
40 * * * * root su nobody -c true
alors quand la commande est lancée, j'obtiens:
Jun 24 15:40:01 zira CRON[186136]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Jun 24 15:40:01 zira CRON[186137]: (root) CMD (su nobody -c true)
Jun 24 15:40:01 zira systemd[1]: Created slice User Slice of UID 65534.
Jun 24 15:40:01 zira su[186138]: (to nobody) root on none
Jun 24 15:40:01 zira systemd[1]: Starting User Runtime Directory /run/user/65534...
Jun 24 15:40:01 zira su[186138]: pam_unix(su:session): session opened for user nobody(uide534) by (uid=0)
Jun 24 15:40:01 zira systemd[1]: Finished User Runtime Directory /run/user/65534.
Jun 24 15:40:01 zira systemd[186140]: pam_unix(systemd-user:session): session opened for user nobody(uide534) by (uid=0)
Jun 24 15:40:01 zira systemd[1]: Starting User Manager for UID 65534...
[...]
Jun 24 15:40:01 zira systemd[186140]: Starting Sound Service...
Jun 24 15:40:01 zira nologin[186163]: Attempted login by root (UID: 65534) on UNKNOWN
Jun 24 15:40:01 zira su[186138]: pam_unix(su:session): session closed for user nobody
Jun 24 15:40:01 zira pipewire[186161]: could not set nice-level to -11: Permission denied
Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
Jun 24 15:40:01 zira systemd[186140]: Started D-Bus User Message Bus.
Jun 24 15:40:01 zira pipewire[186161]: could not make thread realtime: Permission denied
Jun 24 15:40:01 zira systemd[1]: session-799.scope: Succeeded.
Jun 24 15:40:01 zira pipewire[186161]: Failed to receive portal pid: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get PID of name 'org.freedesktop.portal.Desktop': no such name
Jun 24 15:40:01 zira pipewire-media-session[186168]: could not set nice-level to -11: Permission denied
Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
Jun 24 15:40:01 zira pipewire-media-session[186168]: could not make thread realtime: Permission denied
Jun 24 15:40:01 zira CRON[186136]: pam_unix(cron:session): session closed for user root
Jun 24 15:40:01 zira pulseaudio[186162]: Failed to create secure directory (/nonexistent/.config/pulse): No such file or directory
Jun 24 15:40:01 zira postfix/pickup[183192]: A54ACC23C25: uid=0 from=<root>
Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Failed with result 'exit-code'.
Jun 24 15:40:01 zira systemd[186140]: Failed to start Sound Service.
[...]
Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Scheduled restart job, restart counter is at 1.
Jun 24 15:40:01 zira systemd[186140]: Stopped Sound Service.
Jun 24 15:40:01 zira systemd[186140]: Starting Sound Service...
Jun 24 15:40:01 zira pulseaudio[186178]: Failed to create secure directory (/nonexistent/.config/pulse): No such file or directory
Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Failed with result 'exit-code'.
Jun 24 15:40:01 zira systemd[186140]: Failed to start Sound Service.
Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Scheduled restart job, restart counter is at 2.
Jun 24 15:40:02 zira systemd[186140]: Stopped Sound Service.
Jun 24 15:40:02 zira systemd[186140]: Starting Sound Service...
Jun 24 15:40:02 zira pulseaudio[186179]: Failed to create secure directory (/nonexistent/.config/pulse): No such file or directory
Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Failed with result 'exit-code'.
Jun 24 15:40:02 zira systemd[186140]: Failed to start Sound Service.
Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Scheduled restart job, restart counter is at 3.
Jun 24 15:40:02 zira systemd[186140]: Stopped Sound Service.
[...]
Je ne sais pas si ça vient aussi de la config de pam...

J'y ai pensé aussi...
Sauf que ça va juste régler le problème avec pulseaudio, et pas
les autres erreurs éventuelles dues Í  l'utilisation du "su".
Préalablement, pour éviter que ce soit écrasé par une mise Í  jour de pulseaudio :
dpkg-divert --rename /usr/lib/systemd/user/pulseaudio.service
============================================================ > >
cp /usr/lib/systemd/user/pulseaudio.service.distrib /usr/lib/systemd/user/pulseaudio.service
=========================================================================================== >
Il est probablement préférable de remplacer le lien symbolique
/etc/systemd/user/default.target.wants/pulseaudio.service -> /usr/lib/systemd/user/pulseaudio.service
par un fichier avec la config voulue (je n'ai pas testé).

Oui, c'est probablement mieux si dpkg traite les liens symboliques de /etc de la même façon que les fichiers de configuration modifiés.
Après je ne sais pas trop Í  qui attribuer ce bug, est-ce que pulseaudio devrait intégrer une condition pour nobody comme pour root ? est-ce que systemd ne devrait pas lancer de "User Manager" pour nobody ? est-ce que c'est le script updatedb.findutils qui fait quelque chose d'incorrect ?


Du coup il y a peut-être quelque chose Í  faire avec libpam-runtime aussi ;)
Comme il peut aussi y avoir des problèmes avec d'autres utilisateurs
que nobody, je dirais que c'est surtout le "su" Í  éviter. Désactiver
les trucs pour nobody pourrait toujours être utile, mais ne réglerait
pas le problème général.
Peut-être que le fonctionnement du "su" pourrait être corrigé?
Au passage, "sudo" n'est-il maintenant pas recommendé Í  la place
de "su"? Et règle-t-il ce problème? (Pas testé...)

sudo n'est pas dans le système de base, donc ça fait des dépendances en plus... peut être qu'il faudrait simplement ajouter un conflit entre locate et systemd, comme ça on garde un locate léger pour les systèmes embarqués avec sysvinit, et il y a mlocate en remplacement pour les systèmes normaux.
C'est ce que j'utilise depuis plusieurs années (avant, c'était
slocate, je crois).

Je confirme, je n'avais aucun souvenir de mlocate mais avant (au moins jusqu'Í  jessie) j'installais slocate explicitement.
Merci pour ces explication supplémentaires.
Avatar
didier gaumet
Le jeudi 24 juin 2021 Í  15:06 +0000, Hugues Larrive a écrit :
Bonjour,
Je viens juste d'installer 2 chroot pour tester :

[...]
sous buster pipewire n'est pas installé :

[...]
sous bullseye pipewire est installé :

[...]
Soit c'est une erreur soit la page de wiki a besoin d'une mise Í 
jour, parce qu'actuellement on se retrouve avec pipewire installé et
pulseaudio désactivé par défaut.

Tu as vérifié que le service user Pulseaudio est désactivé sous
Bullseye? Parce que de ce que je comprends, jusqu'Í  Debian 11 inclus,
l'installation de Pipewire installe les bibliothèques nécessaires Í 
l'utilisation de paquets qui en dépendent (et si j'ai bien saisi ce
serait d'une aide appréciable pour les flatpaks), alors qu'Í  partir de
Debian 12 il y aura en plus un nouveau paquet pipewire-pulse qui, lui,
permettra de remplacer Pulseaudio. Remplacer Pulseaudio serait déjÍ 
possible mais déconseillé sous Debian 11 en suivant les instructions
données et ce ne serait donc pas le comportement par défaut.
J'ai récemment dÍ» anticiper sur mon laptop ma migration vers Bullseye Í 
partir de Buster (je suis sous Gnome classique):
:~$ systemctl --user | grep -i pulse
pulseaudio.service
loaded active running Sound Service
pulseaudio.socket
loaded active running Sound System
:~$ systemctl --user | grep -i pipe
pipewire.service
loaded active running Multimedia Service
pipewire.socket
loaded active running Multimedia System
la liste actuelle des fichiers du paquet pipewire de Bullseye
suggèrerait donc que le wiki est Í  jour car un exemple de service
pipewire-pulse est fournu dans /usr/share/doc/pipewire/examples mais le
service lui-même n'existe toujours pas dans /usr/lib/systemd/user
https://packages.debian.org/bullseye/amd64/pipewire/filelist
Avatar
Hugues Larrive
Bonjour,
Tu as vérifié que le service user Pulseaudio est désactivé sous
Bullseye? Parce que de ce que je comprends, jusqu'Í  Debian 11 inclus,
l'installation de Pipewire installe les bibliothèques nécessaires Í 
l'utilisation de paquets qui en dépendent (et si j'ai bien saisi ce
serait d'une aide appréciable pour les flatpaks), alors qu'Í  partir de
Debian 12 il y aura en plus un nouveau paquet pipewire-pulse qui, lui,
permettra de remplacer Pulseaudio. Remplacer Pulseaudio serait déjÍ 
possible mais déconseillé sous Debian 11 en suivant les instructions
données et ce ne serait donc pas le comportement par défaut.
J'ai récemment dÍ» anticiper sur mon laptop ma migration vers Bullseye Í 
partir de Buster (je suis sous Gnome classique):

Non je n'ai pas vérifié. Je suis sous mate desktop. J'ai eu un message
d'erreur dans blueman en tentant de connecter un casque bluetooth qui ma
aiguillé sur https://wiki.debian.org/PipeWire#Bluetooth. J'ai fais un
`ps aux | grep pipe` qui m'a montré que pipewire était actif et il me
semble avoir aussi fais un `ps aux | grep pulse` qui n'a rien retourné
mais je ne peux pas l'affirmer avec certitude.
J'ai alors tenté d'installer libspa-0.2-bluetooth ce qui n'a pas résolu
le problème.
Finalement j'ai désinstallé tout ce qui concerne pipewire et fait un
`apt-get install pulseaudio pulseaudio-module-bluetooth` qui a tout résolu.
blueman et pulseaudio-module-bluetooth ne sont pas installé par défaut
pour task-mate-desktop. Donc il se peut très bien que j'ai cru installer
pulseaudio en même temps que pulseaudio-module-bluetooth alors qu'il était
déjÍ  installé (apt-get ne s'arrête pas dans ce cas lÍ ).
Maintenant si je réinstalle pipewire, les deux sont actif mais l'audio
bluetooth ne fonctionne plus. Donc si la seule utilité d'avoir pipewire
en plus de pulseaudio concerne les flatpacks ça ne m'intéresse pas.
Je remplacerait pulseaudio par pipewire le jour o͹ pipewire sera
complètement stable et fonctionnel.
Concernant mon point de vue sur les flatpacks, je trouve ça anti-debian
dans le principe...
Cordialement
Avatar
steve
Le jeudi 24 juin 2021, Hugues Larrive a écrit :
Le mercredi 23 juin 2021 Í  11:45, steve a écrit :
Il semble qu'avec la création du répertoire /nonexistent, le message
d'erreur ait disparu. Mais maintenant, le système se plaint que ce
pipewire ne soit pas installé:
Jun 23 10:10:34 box xdg-desktop-portal[3121]: could not open /usr/lib/x86_64-linux-gnu/pipewire-0.3: Aucun fichier ou dossier de ce type
Jun 23 10:10:34 box xdg-desktop-portal[3121]: No module "libpipewire-module-session-manager" was found
Je vais l'installer pour voir si ça fait disparaitre le message d'erreur.

Oui, j'ai vu ça aussi quand j'ai désinstallé pipewire, c'est sans
rapport avec l'utilisateur nobody et /nonexistent.
Personnellement j'ai désinstallé aussi xdg-desktop-portal dont je n'ai
pas l'utilité.

"desktop integration portal for Flatpak and Snap"
Aucune utilité pour moi => apt purge xdg-desktop-portal
Merci de l'avoir signalé.
Avatar
didier gaumet
De mon point de vue (pas très informé Í  ce sujet, que ceux qui s'y
connaissent n'hésitent pas Í  corriger mes propos) il ne faut pas
considérer Pipewire comme un remplaçant de Pulseaudio, mais comme une
couche logicielle de routage et transmission de flux audio/vidéo créée
pour solutionner des problèmes apparus en même temps que l'émergence
d'autres technologies (bacs Í  sable, Wayland, concurrence et différence
entre Pulseaudio et Jack, etc...). Du coup, non seulement Pipewire
couvre un champ d'application plus large que Pulseaudio mais ne
remplace pas obligatoirement celui-ci même si il en est capable lorsque
configuré de manière adéquate.
https://en.wikipedia.org/wiki/PipeWire
Concernant Bluetooth sur mon laptop en Debian Testing sous Gnome avec
du Pulseaudio et du Pipewire: je ne l'utilise pas et je ne sais pas si
il est fonctionnel ou non actuellement dans cette configuration.
1 2