Le prochain Apéro mensuel Aïolibre aura lieu vendredi 6 juin 2025 à partir de 19h à La Base Marseille.
Au programme, l’association Le Donut viendra présenter ses activités autour des données et de l’usage qui peut en être fait pour le bénéfice collectif.
La réunion rassemble des associations du collectif AïoLibre: Provence Linux User Group, OpenStreetMap Marseille, La Quadrature du Net, Technopolice, l’APRIL, Wikipedia Projet Les sans pagEs Méditerranée etc.
Les participant·e·s sont invité·e·s à apporter quelque chose à grignoter. Il est probable que des pizzas seront commandées au cours de la soirée.
Il n'est PAS possible d'apporter des boissons alcoolisées.
Des boissons (vins, bières, jus, etc.) seront en vente au bar à La Base.
Attention, c'est un bar associatif donc il faut adhérer à La Base pour consommer. Si vous ne l'avez pas encore fait, faites le en ligne avant de venir via:
https://www.helloasso.com/associations/la-base-marseille/adhesions/adhesion-a-la-base-marseille-2025-2
Voir aussi la page Mobilizon de la soirée
Venez nombreuses et nombreux et faites passer le mot, cet évènement est ouvert à tous et toutes.
Toutes les informations sont sur https://premier-samedi.org
Plan des salles : https://premier-samedi.org/IMG/png/plancarrnum.png
Venez aider ou vous faire aider à installer et paramétrer des logiciels libres et toute distribution GNU/Linux ou Android avec les associations d'utilisateurs de Fedora, Mageia, Ubuntu, Debian pour GNU/Linux ; et Replicant, LineageOS, f-droid pour Android, sur netbook, portable, tour, PC/Mac, ou smartphone, éventuellement à côté de votre système actuel. Idem si vous avez des difficultés avec GNU/Linux, un périphérique, un logiciel libre, ou avec des logiciels libres sous Android.
Installer ou configurer Linux, diagnostiquer mon ordinateur,
installer ou configurer un logiciel libre,
échanger sur GNU/Linux et les Logiciels Libres,
trouver des réponses à mes questions
L'Association Club Linux Nord Pas de Calais co-organise les petits déjeuners du libre à l'atelier numérique citoyen de Wimille tous les derniers samedis du mois.
Les petits déjeuners du libre consistent à un temps d’échange convivial autour du numérique, de l’informatique, dit libre et éthique. L'entrée est libre et gratuite. Et bien sûr le petit déjeuner est servi ;)
Au cours de ces séances, nous vous proposons d'installer le système d'exploitation libre Linux et/ou les logiciels libres que vous utilisez sur votre ordinateur.
Si votre ordinateur est récent et que vous vous voulez vous donner les moyens de maîtriser les informations qui y entrent et en sortent, ou si votre ordinateur devient poussif ...
Pensez à nous rendre visite, c'est gratuit et on vous donnera toutes les clés pour que vous puissiez faire le choix qui vous convient
Aujourd’hui, on va mettre en place un serveur musical pilotable à distance en utilisant MPD. Il sera notamment capable de jouer de la musique stockée dessus ou des radios Internet. Il sera aussi capable de se comporter comme une enceinte Bluetooth.
On va parler de récup de vieux matos, de Debian, MPD, PipeWire, Samba, d’agent Bluetooth, de systemd (-analyze, -logind), de Powertop et de vbetool.
Cet article au ton très « administration système » s’adresse à :
Il est probablement trop technique pour quelqu’un qui ne manipule pas la ligne de commande, qui pourra peut-être malgré tout, avec suffisamment de motivation, se laisser porter par la démarche.
Note de lecture : cette dépêche est très détaillée, je vous conseille de passer les sections qui vous intéressent moins.
MotivationDans mon salon, j’ai des petites enceintes toutes bêtes qui sonnent plutôt bien. Mettre de la musique implique de s’embêter à brancher un ordinateur, sur lequel je suis le seul avoir le contrôle. Ce serait bien d’avoir un système prêt à l’emploi et que tout le monde peut contrôler.
ObjectifsNous allons, ensemble, remplir ces objectifs. On va rentrer dans les détails, qui peuvent être utiles dans d’autres applications, et parce que je sais que certaines personnes ici aiment ça, bande de geeks :-)
Matériel à dispositionNote sur les interférences Wifi et Bluetooth. Le Wifi de cette tablette est en 2,4 GHz, pareil que le Bluetooth. Tout échange wifi cause des perturbations sur le Bluetooth et tout transfert intensif rend le Bluetooth inutilisable. Du grand classique. Un Wifi 5, 6 ou 7 aurait été appréciable. Il serait possible d’utiliser une carte Wifi USB, mais je n’en ai pas donc on fera sans.
Ce qu’on va faire dans les grandes lignesPar souci de concision, on ne va pas détailler l’installation de Debian, il existe d’autres ressources au besoin.
En résumé :
Note : sur cette tablette, l’installateur Debian n’arrive pas à se connecter en Wifi, j’ai donc utilisé la version DVD (le premier suffit).
Gains énergétiques potentiels Éteindre l’écranL’écran est potentiellement une des plus grosses sources de consommation électrique. On n’en a pas besoin, donc on va l’éteindre au démarrage et à la sortie de veille.
Pour cela, on va installer vbetool (sources : outils pour éteindre l’écran, lancer une commande au démarrage, lancer une commande après la veille):
sudo apt install vbetool cat << EOF | sudo tee /etc/systemd/system/screenoff.service [Unit] Description=Screen off After=suspend.target [Service] ExecStart=vbetool dpms off [Install] WantedBy=multi-user.target suspend.target EOFAttention : ça peut compliquer grandement l’usage de l’appareil, on peut vouloir appliquer un délai avant extinction pour se faciliter la vie.
Powertop pour améliorer la consommation électriquePowertop permet de voir ce qui utilise le CPU et les diverses ressources, et d’ajuster un peu les paramètres de mise en veille de différents périphériques.
On va l’installer :
sudo apt install powertopEnsuite, ça peut être cool de lancer l’outil pour constater un peu ce qui tourne et consomme des ressources, de se déplacer dans les onglets, et de tenter des trucs dans l’onglet « Tunables » :
sudo powertopSi passer tout à Good ne cause pas de problème d’instabilité évidente, alors on peut appliquer la configuration de Powertop à chaque démarrage (source) :
cat << EOF | sudo tee /etc/systemd/system/powertop.service [Unit] Description=PowerTOP auto tune [Service] Type=oneshot Environment="TERM=dumb" RemainAfterExit=true ExecStart=/usr/sbin/powertop --auto-tune [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable powertop.serviceSinon, il y a des solutions mentionnées dans la source pour désactiver certains changements (si vous observez des dysfonctionnements avec certains périphériques par exemple, et notamment si vous avez des problèmes de Wifi ou Bluetooth)
Perso, je sais que sur cette tablette, passer tout à Good fait (faisait il y a 10 ans en tout cas) qu’après un délai la première frappe sur le clavier ou le premier clic de la souris était ignoré, et aussi était nécessaire pour réveiller l’USB – clairement je m’en fiche ici, mais si votre wifi ou votre Bluetooth est en USB et que les paramètres causent une extinction après un délai, clairement ce n’est pas bon).
Bonus : Configurer le bouton power pour mettre en veilleSur ma tablette, un appui court sur le bouton power éteint la tablette (et ensuite on la rallume en appuyant 3 longues secondes). Si on souhaite qu’un appui court mette en veille l’appareil et un appui long l’éteigne, comme ça on fait un compromis énergétique supposément raisonnable pour rendre l’ensemble un poil plus pratique, c’est facile avec systemd.
Ajoutez ces deux lignes au fichier /etc/systemd/logind.conf :
HandlePowerKey=suspend HandlePowerKeyLongPress=poweroffRechargez les paramètres :
sudo systemctl restart systemd-logind MPD : Music Player DeamonOk, passons au cœur du sujet : mpd.
KésakoSimplement, c’est un lecteur de musique pilotable à distance qui est capable de :
Entre autres.
Certains clients MPD, comme Cantata (une application Qt5 plus ou moins abandonnée mais encore dans les dépôts), sont même capables de lire de la musique sur votre serveur MPD que vous avez localement sur votre ordinateur, ou de gérer les playlists. Ça rend d’ailleurs la constitution de playlists vaguement confortable. Vous n’avez pas besoin d’écrire des playlists M3U à la main, quoi.
Les avantages sont multiples :
On va modifier sa configuration :
sudo nano /etc/mpd.confOn peut laisser les paramètres par défaut suivants :
music_directory "/var/lib/mpd/music" playlist_directory "/var/lib/mpd/playlists"Vous l’aurez compris, c’est là où on stocke les musiques et les playlists. Dans la section suivante, on verra comment rendre le dépôt de morceaux simple et convivial.
On va laisser la plupart des autres paramètres par défaut.
On va changer bind_to_address, qui est par défaut à localhost, mais on veut que n’importe quel appareil sur le réseau soit capable de s'y connecter. On va aussi explicitement mettre le port à la valeur par défaut (ce n’est probablement pas nécessaire, mais c’est ce que j’ai fait) :
bind_to_address "0.0.0.0" port "6600"On veut aussi que quand des fichiers sont changés dans les dossiers music et playlists, mpd se mette à jour tout seul pour ne pas avoir à le baby-sitter :
auto_update "yes"J’ai tenté d’activer zeroconf pour que les clients MPD puissent le trouver tout seul :
zeroconf_enabled "yes" zeroconf_name "Music Player @ %h"Mais en vrai, je n’ai pas réussi à faire fonctionner ça. En tout cas, un prérequis est d’avoir installé et activé avahi-daemon, on verra ça plus tard dans la partie Samba du coup.
Vous aurez peut-être envie de mettre un mot de passe voire de changer les permissions par défaut en décommentant et adaptant les paramètres suivants, mais c’est optionnel :
#password "password@read,add,control,admin" #default_permissions "read,add,control,admin"Ensuite, la partie critique, la sortie audio. Pour l’instant, on va dire à mpd d’utiliser Alsa directement. C’est le plus direct et le plus léger (on passera à PipeWire plus tard, pour gérer l’aspect récepteur Bluetooth)
audio_output { type "alsa" name "My ALSA Device" device "hw:0,0" # optional mixer_type "hardware" # optional # mixer_device "default" # optional mixer_control "Master" # optional mixer_index "0" # optional }Pour une de mes installations, j’ai commenté mixer_device parce que ce n’est manifestement pas la bonne valeur chez moi, et que ça marche bien sans.
Vous pouvez vous passer des autres valeurs optionnelles, mais vous n’aurez pas le contrôle du volume sonore depuis les clients MPD si vous faites ça. Vous allez donc devoir trouver les bonnes valeurs pour les paramètres mixer_*, et pour device. ainsi que mixer_control et mixer_index.
Quelques indices :
Si vous galérez trop avec les valeurs de mixer-*, vous pouvez simplement utiliser mixer_type "software", c’est moins propre mais ça devrait faire le taf. Et sinon, vous pouvez toujours sortir l’artillerie lourde et passer directement à PipeWire.
Pour appliquer vos modifications :
systemctl enable --now mpd # À partir de Debian Trixie, mpd n’est plus activé par défaut au niveau du système systemctl restart mpd # Si MPD tournait déjàVous pouvez déboguer vos changements avec la commande suivante, qui suit les logs en temps réel :
journalctl -fu mpdVous avez plusieurs options pour essayer de lire des choses avec mpd :
Moi, j’ai testé avec une webradio dans une playlist (/var/lib/mpd/playlists/radio-paradise-main-mix.m3u avec le contenu http://stream.radioparadise.com/ogg-192m), mais on peut aussi évidemment placer un morceau dans /var/lib/mpd/music/.
ReplayGainLe niveau sonore de mes morceaux n’est pas homogène, donc il faut sans cesse adapter le volume d’un morceau à l’autre. C’est pénible, voire inutilisable en l’état. Une solution pour ça est replay gain : on analyse et on enregistre le niveau sonore d’une piste dans ses métadonnées.
Il existe plein d’outils pour faire ça, dont https://github.com/complexlogic/rsgain
On peut le faire avant d’envoyer les fichiers sur l’appareil. Pour ma part, je l’ai fait sur la tablette, et il n’existe pas de paquet Debian 32 bits, donc je l’ai compilé :
sudo apt install cmake build-essential pkd-config git libavcodec-dev libavformat-dev libtag1-dev libebur128 libinih-dev libfmt-dev git clone --depth=1 https://github.com/complexlogic/rsgain cd rsgain mkdir build cd build cmake .. make -j2 sudo make installIl faudra s'assurer que les morceaux au format Opus sont étiquetés avec le tag R128_TRACK_GAIN et pas REPLAYGAIN_TRACK_GAIN, parce que c'est ce que MPD s’attend à avoir. Pour ça, on va convaincre rsgain de suivre les standards (que certains lecteurs de musiques ne comprennent pas) en créant un preset qui contient :
[Opus] OpusMode=sMes morceaux ne sont pas organisés par albums, donc je désactive l’analyse par album. Je vais donc partir du preset no_album :
mkdir -p ~/.config/rsgain/presets; cat << EOF > ~/.config/rsgain/presets/no_album_standard_opus.ini [Global] TagMode=i Album=false TargetLoudness=-18 ClipMode=p MaxPeakLevel=0.0 TruePeak=false Lowercase=false ID3v2Version=keep PreserveMtimes=false DualMono=false OpusMode=s EOFEnsuite, on peut le rsgain sur le dossier de musiques avec ce preset. Mes morceaux ne sont pas organisés par albums, donc je désactive l’analyse par album.
rsgain easy -p no_album_standard_opus -m MAX /var/lib/mpd/musicNote : l'option --skip-existing permet d'ignorer les fichiers déjà taggés :
rsgain easy --skip-existing -p no_album_standard_opus -m MAX /var/lib/mpd/musicAvec cette option, on peut exécuter cette tâche régulièrement, par exemple dans un cron, pour calculer le ReplayGain pour les nouveaux fichiers. Pour la première exécution, il vaut certainement mieux ne pas l’utiliser, sinon, si vous aviez déjà des fichiers qui avaient l'information, il se peut que le résultat ne soit pas uniforme.
Il faut dire à MPD d’utiliser le ReplayGain dans /etc/mpd.conf :
replaygain "track"Vous aurez peut-être besoin de jouer avec les autres paramètres liés au volume et au ReplayGain.
Voici les miens :
# Ce paramètre définit la pré-amplification à appliquer pour les morceaux qui ont l'information du ReplayGain replaygain_preamp "0" # Ce paramètre définit la pré-amplification à appliquer pour les morceaux qui ne l'ont pas replaygain_missing_preamp "0" # Faut-il interdire à MPD de dépasser le niveau original d'amplification en appliquant le ReplayGain? replaygain_limit "no" # Faut-il permettre à MPD d'ajuster le volume pendant la lecture pour normaliser ? volume_normalization "no"Un autre paramètre qu’on peut régler, c'est la manière dont MPD règle le volume dynamiquement pour ReplayGain. Dans votre bloc audio_output, vous pouvez ajouter replay_gain_handler et la valeur "software" (c'est la valeur par défaut) ou "mixer". En théorique, les traitements software dégradent le son, mais en pratique, avec "mixer", je tombe sur ce bug qui met le volume à 100% après chaque changement de piste.
Note : je ne suis pas encore convaincu d’avoir réussi à trouver les réglages parfaits, n’hésitez pas à expérimenter.
Les clients MPDÀ ce stade, vous devriez avoir un serveur MPD fonctionnel et configuré. Si applicable, vous pouvez commencer à suggérer aux gens de votre foyer d’installer l’application M.A.L.P sur leur appareil Android ; elle est libre et disponible sur F-Droid et sur le Play Store. Avec un peu de chance, votre enthousiasme était communicatif et c’est eux qui vous demanderont :-)
Pour les autres types d’appareils, vous allez devoir faire vos recherches vous-même je n’ai pas étudié les options sous Windows, Mac ou iPhone, mais il y en a. Pour Linux, j’ai essayé Cantata. Il me convient, si ce n’est qu’il a l’air un peu abandonné, et il a une interface certes conviviale, mais quand même un peu brute. Il existe des widgets qui s’intègrent aux différents environnements de bureaux pour les différents systèmes d’exploitation, je n’ai pas exploré. Le site de MPD propose une liste de clients, et le wiki de Arch aussi.
Samba pour déposer les morceaux (et les playlists)
Déposer des morceaux, vous allez probablement le faire depuis un ordinateur, et à peu près n’importe quel système d’exploitation est capable d’aller chercher un dossier SMB en réseau, alors je vous propose de configurer un serveur Samba. Ça a le bon goût d’être très léger, très simple à faire et de fonctionner depuis n’importe quel OS. Allons-y, et tant qu’à faire, on va aussi installer Avahi, qui permettra aux ordinateurs sous Linux et Mac de découvrir les dossiers partagés tous seuls :
sudo apt install samba avahi-daemonOn va partager nos dossiers music et playlists au monde entier en lecture-écriture (YOLO). On édite /etc/samba/smb.conf:
[Musique] path=/var/lib/mpd/music read only=no writable=yes comment=Fichiers musique MPD guest ok = yes force group = audio force user = mpd browsable = yes public = yes create mask = 0644 directory mask = 0755 [Playlists] path=/var/lib/mpd/playlists read only=no writable=yes comment=Listes de lecture MPD guest ok = yes force group = audio force user = mpd browsable = yes public = yes create mask = 0644 directory mask = 0755Je ne maitrise pas particulièrement Samba et il y a peut-être des options superflues, mais globalement l’esprit c’est :
Bien sûr, on peut vouloir restreindre l’accès à certains utilisateurs et/ou avec un mot de passe. Je vous laisse creuser.
Après un redémarrage de Samba :
sudo systemctl restart sambaAvec un peu de chance, dans l’onglet « Réseau » de votre gestionnaire de fichier, dans la section « Partages SMB », votre appareil apparait. Sinon, vous devriez pouvoir y accéder avec smb://HOST/ avec Dolphin et probablement Nautilus, probablement \\HOST sous Windows.
Alternatives possibles à SambaCe n’est bien sûr pas nécessaire si vous êtes parfaitement satisfait·e avec MPD, mais si vous voulez que votre appareil soit en plus capable de se comporter comme une enceinte Bluetooth, vous êtes au bon endroit.
Les difficultés qu’on va résoudre sont les suivantes :
Lors de l’installation de Debian, on a défini un utilisateur. On peut utiliser cet utilisateur. Sinon, on peut aussi en créer un pour ça, pensez bien à l’ajouter aux groupes audio et bluetooth.
Garder une session utilisateur activeOn va démarrer une session utilisateur au boot :
sudo loginctl enable-linger user # remplacer user par le nom d’utilisateurOn va s’assurer que les processus de cette session ne sont pas tués au moment où on quitte une session (par exemple quand on quitte une session ssh) : dans le fichier /etc/systemd/logind.conf, décommentez la ligne KillExcludeUsers et ajouter le nom d’utilisateur après le =. Vous deviez avoir
KillExcludeUsers=useroù user est le nom d’utilisateur.
On peut maintenant recharger ces paramètres :
sudo systemctl restart systemd-logind Installer PipeWire et les choses nécessairesÀ ce stade, MPD bloque probablement l’utilisation du son parce qu’il s’y connecte via ALSA. On va le stopper.
sudo systemctl stop mpdPipeWire et WirePlumber vont dorénavant gérer le son, et libspa-0.2-bluetooth permet au démon qui gère le Bluetooth (Bluez) de s’inter-connecter à PipeWire pour le Bluetooth Audio.
sudo apt install wireplumber pipewire libspa-0.2-bluetoothEn tant que votre utilisateur (nommé user dans les commandes précédentes) (c’est important), activez PipeWire au démarrage et lancez-le :
systemctl --user enable --now pipewire wireplumberNotez que pipewire-pulse n’est pas nécessaire, d’ailleurs vous pouvez le supprimer ou le désactiver en toute sécurité s’il a été installé.
Installer un agent Bluetooth qui accepte toutes les connexions audio sans vérifications avec codeNormalement, accepter les connexions Bluetooth se fait à l’aide d’un agent Bluetooth :
Évidemment, on ne va pas se connecter en ssh pour lancer bluetoothctl à chaque fois qu’on veut se connecter en Bluetooth. On va mettre en place un agent qui démarre automatiquement et qui a un comportement similaire à un casque ou des enceintes Bluetooth : qui accepte toutes les connexions Bluetooth audio. Pour ça, on va utiliser un script Python partagé par Collabora sous Licence LGPL 2.1+ qui fait ça très bien et qu’on va lancer au démarrage.
Bien sûr, ça veut dire que vos voisins peuvent s’amuser à jouer des trucs chez vous, ou même se connecter fortuitement en choisissant la mauvaise entrée.
Ce script a une dépendance, qu’on va installer :
sudo apt install python3-dbusOn va placer ce script dans speaker-agent.py:
#!/usr/bin/python3 # SPDX-License-Identifier: LGPL-2.1-or-later import dbus import dbus.service import dbus.mainloop.glib from gi.repository import GLib BUS_NAME = 'org.bluez' AGENT_INTERFACE = 'org.bluez.Agent1' AGENT_PATH = "/speaker/agent" A2DP = '0000110d-0000-1000-8000-00805f9b34fb' AVRCP = '0000110e-0000-1000-8000-00805f9b34fb' bus = None class Rejected(dbus.DBusException): _dbus_error_name = "org.bluez.Error.Rejected" class Agent(dbus.service.Object): exit_on_release = True def set_exit_on_release(self, exit_on_release): self.exit_on_release = exit_on_release @dbus.service.method(AGENT_INTERFACE, in_signature="", out_signature="") def Release(self): print("Release") if self.exit_on_release: mainloop.quit() @dbus.service.method(AGENT_INTERFACE, in_signature="os", out_signature="") def AuthorizeService(self, device, uuid): # Always authorize A2DP and AVRCP connection if uuid in [A2DP, AVRCP]: print("AuthorizeService (%s, %s)" % (device, uuid)) return else: print("Service rejected (%s, %s)" % (device, uuid)) raise Rejected("Connection rejected by user") @dbus.service.method(AGENT_INTERFACE, in_signature="", out_signature="") def Cancel(self): print("Cancel") if __name__ == '__main__': dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SystemBus() agent = Agent(bus, AGENT_PATH) mainloop = GLib.MainLoop() # By default Bluetooth adapter is not discoverable and there's # a 3 min timeout # Set it as always discoverable adapter = dbus.Interface(bus.get_object(BUS_NAME, "/org/bluez/hci0"), "org.freedesktop.DBus.Properties") adapter.Set("org.bluez.Adapter1", "DiscoverableTimeout", dbus.UInt32(0)) adapter.Set("org.bluez.Adapter1", "Discoverable", True) print("RPi speaker discoverable") # As the RPi speaker will not have any interface, create a pairing # agent with NoInputNoOutput capability obj = bus.get_object(BUS_NAME, "/org/bluez") manager = dbus.Interface(obj, "org.bluez.AgentManager1") manager.RegisterAgent(AGENT_PATH, "NoInputNoOutput") print("Agent registered") manager.RequestDefaultAgent(AGENT_PATH) mainloop.run()Le script mentionne le Raspberry Pi, mais il n’y a absolument rien de spécifique au Raspberry dedans, il est suffisamment générique.
On va lancer ce script au démarrage en créant le fichier ~/.config/systemd/user/speaker-agent.service
[Unit] Description=Bluetooth speaker agent [Service] ExecStart=python3 speaker-agent.py [Install] WantedBy=default.targetEt en l’activant (--now le lance tout de suite) :
systemctl --user enable --now speaker-agent.serviceIl faudra aussi mettre JustWorksRepairing = always dans /etc/bluetooth/main.conf pour permettre le re-appairage sans interaction. Bon là j’avoue, je paraphrase largement ma source :-)
Ensuite, on va autoriser la connexion Bluetooth même sans session active (en SSH par exemple) (source). Si on ne fait pas ça, la connexion Bluetooth n’est pas possible si l’utilisateur n’a pas une session active (les symptômes : on arrive à se connecter en Bluetooth que quand on est loggué en SSH ou autre, et la connexion Bluetooth casse dès qu’on quitte la session).
mkdir -p ~/.config/wireplumber/bluetooth.lua.d cat > ~/.config/wireplumber/bluetooth.lua.d/80-disable-logind.lua << EOF -- Disable arbitration of user allowance of bluetooth via D-Bus user session bluez_monitor.properties["with-logind"] = false EOF systemctl --user restart wireplumber Adapter MPD (et Samba) pour utiliser PipeWirePour que MPD utilise PipeWire, il faut adapter :
Dans /etc/mpd.conf, changer la ligne user :
user "mpd"Elle doit maintenant utiliser votre utilisateur :
user "user"Commentez votre bloc audio_output, on va maintenant utiliser PipeWire (je suppose qu’on pourrait garder les deux et les clients MPD peuvent probablement permettre de choisir la sortie son, mais ça me parait complexifier l’utilisation pour un intérêt pas clair, ce qui va contre nos objectifs) :
audio_output { type "pipewire" name "PipeWire Sound Server" }Maintenant, il est temps d’adapter les permissions dans /var/lib/mpd. On va stopper Samba juste avant, et adapter sa configuration.
sudo systemctl stop mpd samba # si mpd tournait encore sudo chown -rv user /var/lib/mpd sudo systemctl start mpdNote : MPD peut aussi être démarré dans une session utilisateur et à ce stade, c’est ce qu’il serait probablement le plus logique de faire, en bougeant /etc/mpd.conf et le contenu de /var/lib/mpd dans le dossier de notre utilisateur. C’est d’ailleurs la manière privilégiée de démarrer MPD à partir de Debian Trixie. Par simplicité et cohérence, et parce que cette section « Récepteur Bluetooth » est optionnelle mais que les manipulations pour lancer une session utilisateur au démarrage décrites dans cette section seraient nécessaires pour lancer MPD en tant que service utilisateur au démarrage dans tous les cas et que ça apporte une réelle complexité, on fait le choix de garder MPD en tant que service système.
Modifiez /etc/samba/smb.conf. Dans les deux blocs de partages qu’on a ajouté précédemment, changez la ligne force user = mpd en:
force user = userPuis on peut redémarrer Samba :
sudo systemctl start samba Permettre à PipeWire de configurer sa prioritéSi vous voyez cela dans les logs de PipeWire :
user@tablette:~$ journalctl --user -fu pipewire avril 29 13:41:01 tablette systemd[514]: Started pipewire.service - PipeWire Multimedia Service. avril 29 13:41:01 tablette pipewire[531]: mod.rt: Can't find org.freedesktop.portal.Desktop. Is xdg-desktop-portal running? avril 29 13:41:01 tablette pipewire[531]: mod.rt: found session bus but no portal avril 29 13:41:02 tablette pipewire[531]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied avril 29 13:41:02 tablette pipewire[531]: mod.rt: could not set nice-level to -11: Permission non accordée avril 29 13:41:02 tablette pipewire[531]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied avril 29 13:41:02 tablette pipewire[531]: mod.rt: could not make thread 547 realtime using RTKit: Permission non accordéeÇa veut grosso modo dire que PipeWire cherche à se rendre plus prioritaire via un mécanisme fourni par les environnements de bureau (xdg-desktop-portal), n’y arrive pas parce qu’évidemment, aucun environnement de bureau ne tourne, alors il essaie de demander au service système rtkit, et se fait jeter.
Ce n’est pas très grave et on pourrait vivre sans, mais ça pourrait aider à limiter les saccades sonores, donc on va réparer ça (et je pense avoir vu une bonne amélioration grâce à ça).
Le fichier /usr/share/polkit-1/actions/org.freedesktop.RealtimeKit1.policy dicte qui a le droit ou non de configurer sa priorité (découvert ici, mais le conseil de modifier ce fichier système n’est pas bon, au moins parce qu’une mise à jour future risque d’écraser les modifications) :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> <policyconfig> <vendor>Lennart Poettering</vendor> <action id="org.freedesktop.RealtimeKit1.acquire-high-priority"> <description>Grant high priority scheduling to a user process</description> <description xml:lang="tr">Bir sürece yüksek öncelikli çalışabilme yetkisi ver</description> <message>Authentication is required to grant an application high priority scheduling</message> <message xml:lang="tr">Sürecin yüksek öncelikli çalıştırılabilmesi için yetki gerekiyor</message> <defaults> <allow_any>no</allow_any> <allow_inactive>yes</allow_inactive> <allow_active>yes</allow_active> </defaults> </action> <action id="org.freedesktop.RealtimeKit1.acquire-real-time"> <description>Grant realtime scheduling to a user process</description> <description xml:lang="tr">Bir sürece gerçek zamanlı çalışabilme yetkisi ver</description> <message>Authentication is required to grant an application realtime scheduling</message> <message xml:lang="tr">Sürecin gerçek zamanlı çalıştırılabilmesi için yetki gerekiyor</message> <defaults> <allow_any>no</allow_any> <allow_inactive>yes</allow_inactive> <allow_active>yes</allow_active> </defaults> </action> </policyconfig>Dans un système Unix, les paramètres systèmes sont dans /etc. Pour Polkit, il existe un mécanisme pour écrire des règles, qu’on va utiliser. On va créer une règle qui permet à n’importe quel utilisateur du groupe audio de modifier la priorité de ses processus. C’est probablement trop large, mais je ne connais pas bien Polkit et ça fera le taf pour notre application dédiée à l’audio. Si vous avez des meilleures idées, n’hésitez pas à partager en commentaire.
sudo cat > /etc/polkit-1/rules.d/rt.rules << EOF polkit.addRule(function(action, subject) { if (subject.isInGroup("audio") && ( action.id == "org.freedesktop.RealtimeKit1.acquire-high-priority" || action.id == "org.freedesktop.RealtimeKit1.acquire-real-time" )) { return polkit.Result.YES; } }) EOF sudo systemctl restart polkit.service systemctl --user restart pipewireOn pourra constater l’absence des échecs dans les journaux de PipeWire.
Bon, on sent bien que toute cette utilisation audio sans session utilisateur standard n’est pas un cas d’utilisation hyper bien prévu et on se retrouve à toucher des coins un peu sombres du système…
Évitez les flux Wifi 2,4 GHzSi vous avez un Wifi en 2,4 GHz, ça peut causer des soucis avec le Bluetooth, et le son peut saccader. Si vous observez cela, il faudra alors limiter au maximum les services et autres tâches de fond qui font des communications réseau. Évidemment, si vous pouvez utiliser un câble Ethernet, c’est encore mieux.
Sur ce plan, tous les codecs audio Bluetooth ne semblent pas se valoir. Pour tester ça, j’ai lancé un test iperf3 entre la tablette et mon ordinateur portable pour saturer le Wifi. Ça devenait immédiatement catastrophique avec le codec SBC-XQ, alors qu’avec le codec Opus 05, il y a initialement des saccades, puis ça s’améliore vite. J’imagine que le codec Opus dégrade très efficacement la qualité pour compenser. Bon, malheureusement, tous les systèmes ne permettent pas de choisir son codec donc ce n’est qu’une solution partielle au problème.
Note sur l’utilisation des ressourcesC'est léger :
load average: 0,12, 0,10, 0,05 $ free -mh total utilisé libre partagé tamp/cache disponible Mem: 986Mi 253Mi 324Mi 6,1Mi 550Mi 733Mi Échange: 974Mi 0B 974MiGlobalement, le CPU s’ennuie en pleine lecture, et à peine un tiers du Giga de mémoire vive est utilisé, la partition d’échange s’ennuie, donc il y a encore largement la place de faire tourner d’autres trucs sur cet appareil si jamais. On peut aussi constater qu’ajouter MPD et tout ce bazar à une installation existante ne la surchargerait pas plus que ça.
On a aussi un temps de démarrage autour des 20 secondes, ce qui est franchement pas mal.
Conclusion et améliorations possiblesOn est pas mal rentrés dans les détails, c’était l’occasion d’explorer plein de choses mine de rien. J’ai à la fois appris des choses, précisé des connaissances, et mis plein de choses que je savais ensemble pour obtenir un résultat très satisfaisant. On se retrouve à manipuler de la gestion de services, des configurations systemd un peu poussées, du bluetooth, du son avec ALSA et PipeWire, de la gestion de session utilisateur sur un système headless, et plein d’autres trucs et aller dans les détails comme le boot pour avoir quelque chose de rapide, comme l’écran éteint au bon moment, ou la personnalisation du comportement du bouton power (honnêtement, je n’étais pas très sûr que c’était possible, j’avais lancé la recherche au cas où !).
J’espère que l’aventure vous a plu aussi.
Bien sûr l’ensemble est perfectible, alors je vous laisse avec des idées, n’hésitez pas à partager les vôtres en commentaires :
Je vais probablement trouver d’autres choses à améliorer après publication de l’article. Je partagerai peut-être les choses intéressantes en commentaires ou dans des journaux, et je ferai peut-être vivre l’article sur mon site.
Télécharger ce contenu au format EPUBCommentaires : voir le flux Atom ouvrir dans le navigateur
Not so Common Desktop Environment reproduit fidèlement Common Desktop Environment dit CDE, classique des Unix des années 90. Mais pourquoi puisque CDE est libre ? Eh bien pour faire mieux ! NsCDE est plus léger, plus complet, plus souple.
NsCDE est sorti en version 2.3 le 20 juin 2023. C'est un petit projet qui s'appuie sur un thème pour FVWM et quelques utilitaires de son cru. Le reste, c'est un thème pour les applications GTK et Qt. Poussant le mimétisme jusqu'à reproduire le script shell du premier démarrage, NsCDE vous demande quels doivent être votre terminal, votre gestionnaire de fichier, votre éditeur, etc. Ce n'est pas mal de pouvoir choisir ! Comme c'est assez abouti il n'y a pas eu de nouveaux développements depuis.
J'ai trouvé l'ensemble agréable et cohérent, certes un peu brutal visuellement, mais on n'est pas devant un thème, c'est un paradigme de fonctionnement différent. Avec un peu d'habitude on peut bosser sans surprises.
Un exemple sur la gestion des fenêtres, différente du monde Win/Mac qui est le paradigme habituel sur la plupart des bureaux Linux :
Elles se déplacent encore par la barre de titre, mais pour le reste les trois clics de souris sont utilisés.
Le bouton de gauche est trois choses à la fois : un menu déroulé par un clic gauche, un menu étendu déroulé par un clic droit et une boite de dialogue affichée par un clic centre ; la fenêtre se ferme avec un deuxième-clic rapproché dans le temps (clic gauche ou droit) ou un double clic aussi.
À droite, un bouton agrandit la fenêtre avec beaucoup de possibilités selon le clic gauche, centre ou droit et selon la séquence de clics ; un deuxième bouton réduit la fenêtre : clic gauche pour l'icônifier, clic droit pour l'enrouler. Icônifiée, un clic droit l'agrandit, les clics gauche et centre ouvrent des menus.
NsCDE ne propose qu'un minimum d'utilitaires, il ne s'agit pas de tout intégrer façon KDE ou Gnome, mais plutôt de fournir un environnement de travail pour interagir avec vos programmes préférés. Testez-le pour découvrir autre chose que le fonctionnement habituel. Le libre vous permet de choisir, sortez des sentiers battus.
En tout cas ne l'installez pas pour sa légèreté, Liam Proven l'utilisant avec des composants XFCE l'a trouvé plus léger que les autres, mais il est plus lourd que KDE 3.
L'influence de CDE à travers des anecdotesC'est moche, hein ? Et pourtant le design de CDE a influencé d'autres environnements de bureau :
NsCDE propose quelques paquets tout prêt pour Fedora, Suse, Ubuntu, Debian et Slackware ainsi qu'un gros Tarball à décompresser dans /opt.
Je vous recommande de l'utiliser sous un compte de test, sinon NsCDE va pourrir votre bureau habituel avec ses boites de dialogue et ses thèmes Firefox, LibreOffice, etc. En plus, NsCDE n'a pas de script de désinstallation, il sauvegarde vos paramètres Gtk et Qt, mais seulement jusqu'aux versions 4 et 5.
Évitez d'y lancer des applications Gnome à cause des menus et fenêtres, sauf si vous installez gtk3-nocsd (no client side decoration). Préférer les applications légères et simples de LXDE/LXQt, Mate, XFCE, … Ou encore les applis Motifs/X11, le thème NsCDE leur ira comme un gant.
Tester CDESi vous tenez à essayer le vrai CDE pour voir comment c'était, il y a un CD Live sous Debian.
Télécharger ce contenu au format EPUBCommentaires : voir le flux Atom ouvrir dans le navigateur
PeaZip n'a jamais été abordé dans ces colonnes jusqu'à présent, alors qu'il fait partie des outils multi-plateformes permettant une transition en douceur vers le libre. Il a presque dix ans. Sortie le 14 avril, la version 10.4 continue la série 10.0 commencée en octobre 2024.
PeaZip affiché avec son thème sombre dans Wayland
Giogio Tani, le développeur de PeaZip publie plusieurs versions chaque année. Le logiciel évolue par petites touches largement testées via les fonctions "expérimentales" des versions précédentes.
Je trouve beaucoup d'atouts à PeaZipIl est libre, multi-plateformes, multi-architecture, portable (nomade), écrit en FreePascal avec Lazarus, ouvre et écrit plusieurs formats d'archives. Il est rapide et assez léger pour un tout-en-un (11,2 MB). Il est bien maintenu, l'auteur est transparent sur la sécurité, documentation et tutoriels sont conséquents et pédagogiques. L'interface est travaillée, sobre, ergonomique, thémable, configurable, jolie, … N'en jetez plus ! Ah si encore : il est dispo en Gtk et Qt sous X11 et Wayland, et l'auteur l'empaquête à tout va.
C'est un humble logiciel très bien foutu, très travaillé, utile pour installer des outils libres sur les systèmes proprios afin de les amener en douceur vers Linux ou *BSD (il ne fonctionne pas encore sous Haïku).
Architectures et systèmesCommentaires : voir le flux Atom ouvrir dans le navigateur
C’est la dernière soirée de notre cycle d’initiation douce à python. Pour finir, nous vous proposons divers compléments :
Accès libre et gratuit. Adhésion à la MPT facultative.
Salle : EPN
Aujourd’hui, les ordinateurs utilisés dans les entreprises et les services publics sont remplacés tous les 5 à 6 ans environ. Pourtant, ces matériels destinés à des professionnels, pourraient durer aisément 10 ans. De plus, équipés de logiciels libres, ces machines peuvent fonctionner jusqu’à 15 ans.
Les associations de l’économie sociale et solidaire peuvent être des acteurs importants dans le domaine de la sobriété numérique. Les ordinateurs mis à disposition proviennent de dons d’entreprises et de collectivités.
En partenariat avec la ville de Vandœuvre, l’association Vando’Libre vous invite à découvrir le projet de mise à disposition d’ordinateurs pour les associations avec 2 ateliers.
Au programme de l’atelier :
248e émission « Libre à vous ! » de l’April. Podcast et programme :
Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 MHz en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune. Vous pouvez nous laisser un message sur le répondeur de la radio : pour réagir à l’un des sujets de l’émission, pour partager un témoignage, vos idées, vos suggestions, vos encouragements ou pour nous poser une question. Le numéro du répondeur : +33 9 72 51 55 46. Pas d'émission inédite mardi 27 mai. La prochaine émission sera diffusée mardi 3 juin et le sujet principal sera « Parcours libriste avec Isabella Vanni ». L'occasion d'en savoir plus sur Isabella (qui est coordinatrice vie associative et responsable projets à l'April depuis 2014) :) N'hésitez pas à envoyer vos questions ou remarques à bonjour@libreavous.org, ou en commentaires de la dépêche.
Télécharger ce contenu au format EPUBCommentaires : voir le flux Atom ouvrir dans le navigateur
Aujourd’hui, les ordinateurs utilisés dans les entreprises et les services publics sont remplacés tous les 5 à 6 ans environ. Pourtant, ces matériels destinés à des professionnels, pourraient durer aisément 10 ans. De plus, équipés de logiciels libres, ces machines peuvent fonctionner jusqu’à 15 ans.
Les associations de l’économie sociale et solidaire peuvent être des acteurs importants dans le domaine de la sobriété numérique. Les ordinateurs mis à disposition proviennent de dons d’entreprises et de collectivités.
En partenariat avec la ville de Vandœuvre, l’association Vando’Libre vous invite à découvrir le projet de mise à disposition d’ordinateurs pour les associations avec 2 ateliers.
Au programme de l’atelier :
Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.
Dans cet épisode du podcast Tout est sous CTRL, nous explorons l'importance de l'open source dans la souveraineté numérique, les enjeux de 2025, et les opportunités qu'il offre aux entreprises et institutions.
Vincent Untz : Bonjour à toutes et à tous. Merci de nous rejoindre pour ce nouvel épisode de Tout est sous CTRL. Aujourd'hui, nous continuons notre petit cycle d'épisodes sur l'open source. Nous allons parler un petit peu d'open source en France, la façon dont c'est adopté par les (…)
Passionnés de RUST, bloquez de nouveau le 25 juin dans votre agenda ! La conférence Rust Paris revient pour sa deuxième édition, même jour, même heure, mais cette fois à l’Université de Jussieu. Cette journée est dédiée aux développeurs et utilisateurs de Rust, avec un mot d’ordre : REX — retour d’expérience. Les intervenants viendront partager leurs succès, mais aussi les défis rencontrés, dans des contextes variés : blockchain, automobile, WebAssembly, embarqué, certification…
Séance Raspberry PI 5 - Module 4 : Héberger ses propres services informatiques chez soi sur un Raspberry Pi avec pour application serveur YunoHost.
YunoHost est une distribution basée sur Debian GNU/Linux composée de logiciels libres et ayant pour objectif de faciliter la pratique de l’auto-hébergement au sens large.
Autrement dit, YunoHost permet d’installer et d’utiliser son propre serveur dans le but d’héberger, le plus souvent chez soi, des services tels que des boites de courriers électroniques, des sites web, des outils de synchronisation de fichiers et des messageries instantanées.
Programme :
- Gestion des sauvegardes de secours
- Création des comptes utilisateurs
- Installation en ligne d'une application
- Mise à jour de YunoHost
Breizh Tour Family Tree-Some
Soirée découverte autour des logiciels libres et de la création artistique.
Vous utilisez principalement des outils propriétaires Mac, Adobe, … ? Via notre conférence et nos interlocuteurs, nous vous ferons découvrir des alternatives libres et open-source,
Planning du 29 mai :
18h30 – 19h30 Conférence – Création artistique et logiciels libres
19h30 – 20h00 Projection du court métrage ZeMarmot
https://www.film.zemarmot.net/fr
21h00 – 22h15 Concert – Plagiat (Rap mainstream déconstruit au tractopelle)
22h30 – 00h00 Concert – Z’Yeux de poule crevée (synthés élevés en plein air)
Voix off : Libre à vous !, l'émission pour comprendre et agir avec l'April, l'association de promotion et de défense du logiciel libre.
Frédéric Couchet :Bonjour à toutes, bonjour à tous dans Libre à vous !. C'est le moment que vous avez choisi pour vous offrir une heure trente d'informations et d'échanges sur les libertés informatiques et également de la musique libre. Au programme aujourd'hui, les CRM libres ou comment gérer les relations avec la clientèle avec du logiciel libre, ce sera (…)
Deux-cent-quarante-septième « Libre à vous ! » de l’April. Podcast et programme :
Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 FM en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune.
Commentaires : voir le flux Atom ouvrir dans le navigateur
Basque (en français plus bas)
Sorgin Informatika Libre eta SELgarrekin (selgarrekin.com) elkarteek programa libreari buruzko gaualdi bat antolatu dute dokumentalaren proiekzioarekin
Lol - Le logiciel libre, une affaire sérieuse (sartzea urririk)
Dokumentalak teknologia digitalek egunerokotasunaren erabileretan dituzten apustu sozialak azaltzen ditu, gure askatasun, eskubide eta segurtasunaren aurrean.
Nola eragiten du programak zure bizitzan ?
Ba al zenekien alternatiba libro bat badela ?
Dena den, serios kontu bat da !
Français
Les associations Sorgin Informatique Libre et SELgarrekin (selgarrekin.com) vous convient, le vendredi 11 octobre à 19h, à une soirée Docu-Blabla autour du documentaire :
Lol - Le logiciel libre, une affaire sérieuse (entrée libre)
Le documentaire expose les enjeux sociétaux des technologies numériques dans les usages du quotidien, vis-à-vis de nos libertés, de nos droits et de notre sécurité.
Nos données informatiques sont-elles utilisées à notre insu ?
La réponse est-elle le logiciel libre: bio et collaboratif ?
En tout cas, c’est une affaire sérieuse !
Antoinix est un groupe d’utilisateurs de logiciels libres (G.U.L.L.) situé à Antoing, en Belgique.
Nous proposons des ateliers de niveau débutant et avancé un vendredi sur deux de 18 à 20h. Les participants peuvent amener des sujets à aborder pendant les ateliers.
Si vous souhaitez participer à nos activités, nous vous conseillons d’avoir une connaissance générale dans l’utilisation d’un ordinateur, notre vocation n’étant pas l’apprentissage des bases de l’informatique. Nous ne sommes pas non plus un atelier de support informatique Windows ou Mac.
Bon à savoir: notre atelier se déroule dans une salle au nombre de places limitées, au maximum nous pouvons accueillir 6 à 7 personnes. Si vous souhaitez participer à nos ateliers merci de nous envoyer un mail à l'adresse ci dessous.