Mon ordinateur de bureau est sous SOLYDX (Debian stable) qui est une distribution avec environnement de bureau XFCE. J’ai toujours des problèmes de craquements après quelques heures mais seulement avec squeezelite, les autres applications ne reproduisent pas ce problème.
Il semble y avoir un problème de conversion lorsque l’on passe d’un fichier 24-192, 24-96, 24-88, 16-44 et MP3 à travers une sortie pulse. La combinaison de Pulse et Squeezelite génère des craquements au lieu de la musique. Lorsque je redémarre Squeezelite tout est à nouveau fonctionnel. Le problème survient régulièrement lorsque je démarre Firefox ou Thunderbird. Le seul lien que je vois pour le moment c’est les notifications.
Voici une tentative de solution que j’ai mis en place sur mon Asus N73:
Créer un script de démarrage de squeezelite:
sudo nano ~/squeezelite_start.sh
/home/lafontaj/Logiciels/squeezelite/squeezelite-x86-64 -r 44100 -a ::16 -o default
Je viens de changer cette commande pour la suivante puisque j’ai lu que parfois l’utilisation de l’option default amène des problèmes de ce genre
/home/lafontaj/Logiciels/squeezelite/squeezelite-x86-64 -r 44100 -a ::16 -o pulse
Pour un démarrage automatique sous Solydx, ajouter une entrée dans les paramètres « Session et démarrage » >> « Démarrage automatique » qui exécute le script de démarrage de squeezelite.
Finalement pour régler le problème, j’ai effectué les opérations suivantes:
sudo apt-get purge pulseaudio
sudo apt-get install pulseaudio
En réinstallant pulseaudio à neuf, cela a fait un bon ménage dans les fichiers de configuration mais sans régler le problème. J’ai ensuite téléchargé une nouvelle version de squeezelite du site de Ralph https://www.mediafire.com/folder/4q8dvq20iyz9e/Builds#j1336qrs7zffj
squeezelite-1.8.4-720-debian8-x86_64.tar.gz et j’ai modifié la ligne de commande pour lancer l’application
/home/lafontaj/Logiciels/squeezelite/squeezelite -z -r 44100 -a ::16 -o pulse
Mais sans régler le problème.
Ce que je note c’est qu’en déactivant la notification de l’applet pulseaudio les problèmes cessent.
Maintenant tout fonctionne bien depuis plusieurs jours… enfin
J’ai aussi essayé squeezelite-pa des dépôts, mais celui-ci ne retourne pas l’ensemble des carte de son disponible sur le système.
Ce qui suit est en référence mais aucune des propositions n’a réglé le problème.
La nouvelle implémentation du serveur audio PulseAudio utilise « timer-based audio scheduling » au lieu de l’approche traditionnelle, « interrupt-driven » et ainsi les paramètres « buffer_size/fragment_size » ne sont pas pris en compte .
Afin de mettre hors fonction le « timer-based scheduling » ajouter tsched=0 dans /etc/pulse/default.pa:
sudo nano /etc/pulse/default.pa
load-module module-udev-detect tsched=0
Le « Timer-based scheduling » peut mettre en évidence des problèmes avec certains pilotes ALSA. D’un autre coté, d’autre pilotes peuvent être « glitchy » sans celle-ci, donc vérifier ce qui fonctionne sur votre système.
Veuillez prendre en note les valeurs affectées aux paramètres « buffer_size » et « fragment_size » pour la carte ciblée par les ajustements.
Calculez vos valeurs de « fragment size » en msecs et « number of fragments » (2/4)
La valeur par défaut de la fréquence d’échantillonnage et de la résolution de PulseAudio sont 44100Hz @ 16 bits.
Avec cette configuration, le train de donnée requis est: 44100*16 = 705600 bits par seconde. Cela donne 1411200 bps pour la stéréo.
Reprenons les valeurs de nos paramètres relevés lors des étapes précédentes:
Modifier le fichier de configuration de PulseAudio (3/4)
sudo nano /etc/pulse/daemon.conf
; default-fragments = X
; default-fragment-size-msec = Y
À l’étape précédente, nous avons calculé le « fragment size ». Le nombre de fragments est simplement « buffer_size/fragment_size », ce qui nous donne dans ce cas-ci (544/272) donc 2:
Certaine carte de son Intel utilisent le module snd-hda-intel et nécessite les options: vid=8086 pid=8ca0 snoop=0. Afin de rendre l’utilisation de ces options permanentes, créer ou modifier le fichier suivant et ajouter la ligne de configuration.
sudo nano /etc/modprobe.d/sound.conf
options snd-hda-intel vid=8086 pid=8ca0 snoop=0
Redémarrer le serveur PulseAudio:
pulseaudio -k pulseaudio --start
Si on utilise une sortie ALSA directement autre que sysdefault:CARD=Audio alors là j’ai eu un problème de vitesse de lecture du fichier (tonal pitch) mais qui semble résolu avec le passage à Jessie (Debian)
De plus, comme ALSA prends le contrôle de la sortie audio, tous ce qui transite par PULSE ne passe plus jusqu’à ce que Squeezelite soit arrêté.
Problème avec BOSE Compagnion 5
De façon intermittente le son ne se rend plus à mes haut-parleurs BOSE. Je dois débrancher l’USB ou le câble électrique AC pour que le son revienne.
Le problème de déconnexion du kit de Bose est généralisé à tout le système et pas seulement à l’utilisation de Squeezelite.
Voici une solution que j’ai essayé face au problème de déconnexion du kit Bose sur un système Debian-Ubuntu mais finalement ça ne fonctionne pas. J’ai encore eu des déconnexions. Voir plus bas pour la mise en place d’une solution « Plaster »
Désactiver la fonction de mise en veille de l’USB
Afin de voir le mode actif (on recherche -1 pour la fonction desactivé)
sudo su cat /sys/module/usbcore/parameters/autosuspend
2
Si le résultat est n’est pas -1 alors on poursuit avec les commandes suivantes:
echo "options usbcore autosuspend=-1" | tee /etc/modprobe.d/disable-usb-autosuspend.conf > /dev/null
Pour connaître le noyau actif de votre système:
uname -r
dpkg-reconfigure linux-image-3.16.0-4-amd64
On redémarre l’ordinateur et on revérifie ensuite:
cat /sys/module/usbcore/parameters/autosuspend
-1
Script de reconnexion de l’USB (Plaster)
By roman10
Premièrement obtenir le chemin du périphérique USB à rebrancher. Lancer la commande lsusb dans un terminal, vous obtiendrez quelque chose de similaire à ceci,
Bus 004 Device 005: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 004 Device 004: ID 05a7:1020 Bose Corp.
Bus 004 Device 006: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 004 Device 003: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 05e3:0612 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 14cd:121c Super Top microSD card reader
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 004: ID 13d3:5205 IMC Networks
Bus 003 Device 003: ID 0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
L’élément Bose Corp. est la carte de son en question, le nœud du périphérique est /dev/bus/usb/004/004, le premier 004 est le numéro de BUS, et le second 004 est le numéro du périphérique.
Deuxièmement, appliquer ioctl pour réinitialiser le périphérique. Ceci est réalisé en code C,
Sauvegarder le fichier sous le nom: reset.c, compiler ensuite le code avec la commande:
gcc -o reset reset.c
Un programme nommé reset sera alors compilé.
Lancé la commande: sudo ./reset /dev/bus/usb/004/004
Comme la connexion usb peut changer lors du redémarrage de l’ordinateur, il est plus simple de faire un script qui trouvera le bon numéro de BUS et périphérique à partir de l’identification du périphérique Bose (05a7:1020) que l’on obtient lors de l’exécution de la commande lsusb.
Lancer alors le script reset_Bose.sh lorsque le Bose ne fonctionnera plus et hop le voici de retour.
merci à roman10 pour le code C, le reste pour le script je l’ai imaginé moi-même!
Pour contourner le problème de déconnexion, j’ai testé le DAC XMOS sur ma distribution SolydX.Le problème de craquements avec pulse est toujours présent, mais je n’ai pas eu de problème « pitch » lorsque j’utilisai directement ALSA (./squeezelite-x86-64 -o sysdefault:CARD=X20).
J’ai donc débranché l’USB du BOSE pour le brancher dans le XMOS, J’utilise ensuite la sortie analogique du XMOS pour alimenter l’entrée analogique du kit BOSE. Le son est correct et ainsi le problème de déconnexion intermittent du driver BOSE semble évité mais je n’aime pas vraiment cette solution. Je songe à ouvrir le kit bose à la fin de la garantie pour y installer le XMOS. J’ai démonté le Bose pour voir la possibilité d’y installer le XMOS, mais j’oublie ça il n’y a pas de place et je n’ai pas les schémas des circuits pour aller plus loin.
XMOS
DAC XMOS
XMOS PCM5102 Asynchronous DAC Decoder USB to Optical Coaxial SPDIF 384K 32Bit