Blog de Jesus Forain Blog de Jesus Forain
Blog personnel de Jesus Forain où les principaux sujets sont l'informatique, la technologie, le spatial mais aussi divers sujets.
Rechercher & filtrer
Filtrer par année / mois
Derniers commentaires
Demander une adresse IP full stack chez Free pour avoir tous les ports
mecamic (non inscrit)
jeudi 28 novembre 2024 16:54

Bonsoir, Merci pour votre réponse. Effectivement mon serveur avec nom de domaine écoute les ports standards http et https. Je vais donc utiliser et paramétrer le port utilisé pour l'interface freebox.

Demander une adresse IP full stack chez Free pour avoir tous les ports
avatar de Jesus Forain
Jesus Forain
jeudi 28 novembre 2024 14:06

Salut, Oui c'est possible tant que tu n'utilises pas des ports affectés à ton serveur. Par exemple si tu as un serveur web il faut qu'il écoute sur les ports standards 80 et 443 pour qu'il soit accessible au monde entier simplement en mettant le nom de domaine dans le navigateur[...]

Demander une adresse IP full stack chez Free pour avoir tous les ports
mecamic (non inscrit)
jeudi 28 novembre 2024 11:13

Bonjour, En ayant un pc qui héberge un serveur avec un nom de domaine derrière une freebox est-il quand même possible d'atteindre sa box de l'extérieur ? En suivant cette procédure par exemple ? https://assistance.free.fr/articles/463 En vous remerciant pour vos con[...]

Demander une adresse IP full stack chez Free pour avoir tous les ports
Toph3r (non inscrit)
mardi 26 novembre 2024 08:47

Merci pour l'explication , j'avais un soucis pour ouvrir les PORT pour avoir un NAT ouvert pour la Xbox Serie X ( pas acces a certain port et j'etais en Nat modéré ) je suis donc passé en Ip Full Stack et depuis plus aucun soucis , Nat Ouvert et plus aucun soucis . Merci a toi

Demander une adresse IP full stack chez Free pour avoir tous les ports
B0r1sback (non inscrit)
lundi 25 novembre 2024 14:53

Merci pour ta réponse rapide. Je vais redémarrer cette nuit tant que je vois que rien ne bloque …  Ça me semble un bon compromis 😁

Demander une adresse IP full stack chez Free pour avoir tous les ports
avatar de Jesus Forain
Jesus Forain
lundi 25 novembre 2024 14:02

La mise à jour du DNS a du se faire lors de la demande de l'IP fixe si le système est bien conçu. Dans tous les cas il y aura une période de perturbations de 24 h maximum le temps que la propagation DNS se fasse et ça tu ne peux pas y échapper. Ces 24 h corr[...]

Demander une adresse IP full stack chez Free pour avoir tous les ports
b0r1sback (non inscrit)
lundi 25 novembre 2024 12:58

Bonjour, Je viens de demander mon passage sur une ip full stack J'avais déjà créé un enregistrement DNS en xxx.hd.free.fr Je suis en train de me demander si je redémarre ma freebox tout de suite pour passer sur ma nouvelle IP fullstack. Ou s'il vaut mieux attendre [...]

Réparation d'une VMC: condensateur HS
Piefon (non inscrit)
samedi 23 novembre 2024 12:00

Bonjour et merci pour le contenu de ce blog riche en informations un peu pointues. Je viens d'installer une nouvelle VMC monovitesse hygroréglable (Aldes) que je trouve très (trop ?) efficace, d'autant que je n'utilise que 2 bouches sur les 5 disponibles. Du coup, j'ai un peu cherch&ea[...]

Starship flight 6 prévu ce mardi 19 novembre 23h00
avatar de Jesus Forain
Jesus Forain
mercredi 20 novembre 2024 18:02

Les images des équipes de NASA Spaceflight   ▶  

Starship flight 6 prévu ce mardi 19 novembre 23h00
avatar de Jesus Forain
Jesus Forain
mercredi 20 novembre 2024 00:24

Le rattrapage du booster, décidé manuellement après étude des données de vol, a été annulé car les conditions n'étaient pas correctes. Il a atterri dans l'océan au large de Boca Chica. Le test de rallumage d'un raptor atmosph&eacu[...]

Raspberry Pi en récepteur audio Bluetooth (A2DP audio sink)

- 6355 vues

EDIT 01/09/2022: procédure modifiée pour fonctionner avec Raspberry OS 2022-04-07 basé sur Debian 11

Je vais t'expliquer comment utiliser un Raspberry PI en tant que récepteur audio Bluetooth et ainsi pouvoir transformer n'importe quelle chaîne HI-FI ou ampli en enceinte Bluetooth. Ce dispositif utilise le protocole A2DP utilisé par toutes les enceintes Bluetooth du commerce.

Il est possible de connecter plusieurs appareils en même temps et la latence est imperceptible (astuce de TPM-28 en commentaire).

Ceci n'est pas spécifique au Raspberry, ça fonctionne aussi sur tout PC Linux en adaptant les commandes à ta distribution.

Pour les anciens modèles datant d'avant le PI3 et dépourvus de connections sans fil, il faudra utiliser une clé USB Bluetooth.

Ce tuto est d'abord à but éducatif, si c'est juste pour envoyer le son en Bluetooth sur ta chaîne HIFI, un Raspberry est surdimensionné pour cet usage, il faudra considérer la consommation d'énergie, le coût et la complexité. En revanche ça peut être utile pour divers projets ou alors recycler du matériel que tu possèdes déjà.
Si c'est juste pour envoyer le son en Bluetooth sur ta chaîne HIFI, saches que ce genre de dispositif existe tout fait dans le commerce à des prix allant de quelques euros à plusieurs centaines d'euros selon la qualité sonore. L'utilisation est très simple puisqu'il n'y a aucun paramétrage à faire et qu'il suffit juste de l'appairer comme n'importe quelle enceinte Bluetooth. De plus la plupart intègrent une batterie et un micro permettant de l'utiliser comme kit mains libres pour téléphoner. Exemples ici.

La qualité du son ne dépend pas du Bluetooth qui transporte juste un signal numérique ne subissant aucune modification mais du convertisseur numérique vers analogique appelé DAC (Digital to Analogue Converter = Convertisseur Numérique vers Analogique) ou “interface audio” dans le monde de la musique. C'est ce convertisseur qui transforme le signal numérique en signal analogique qui est envoyé sur les hauts-parleurs. Tu peux brancher à ton Raspberry une carte son USB pour avoir un son de meilleure qualité.

Pour y parvenir j'ai beaucoup galéré car la plupart des tutos que l'on trouve sur internet sont trop vieux et les commandes ne fonctionnent plus avec les nouvelles versions des systèmes Linux. Ce tuto peut donc devenir en partie obsolète à la prochaine version de l'OS.
La difficulté est que la configuration repose sur plusieurs éléments: radio Bluetooth, authentification, paramètres audio. La recherche d'erreurs s'en trouve compliquée.

Cette procédure a été testée sur un Raspberry PI 4 sous raspios_lite_arm64-2022-04-07

Toutes les commandes se font avec l'utilisateur root.

 

Installation des paquets

On aura besoin des paquets bluez-tools et bluez-alsa-utils. Avec un Raspberry OS basé sur Debian 11 on est dans un cas particulier de "transition" car il n'y a plus de paquet ALSA pour le Bluetooth. Le paquet bluealsa n'est plus disponible mais le sera dans la prochaine version sous le nom de bluez-alsa-utils. On va donc utiliser le paquet de Debian 12 Bookworm.

Avant d'installer les paquets, on va ajouter les dépôts Debian Bookworm

echo "deb http://archive.raspbian.org/raspbian/ bookworm main" | sudo tee /etc/apt/sources.list.d/armbian.list
printf 'Package: *\nPin: release n=bookworm\nPin-Priority: 100\n' | sudo tee --append /etc/apt/preferences.d/limit-bookw

Mets à jour les dépôts

apt update

Tu obtiens ce résultat avec une erreur de signature avec NO_PUBKEY; copie cette clé, ici 9165938D90FDDD2E

Atteint :1 http://archive.raspberrypi.org/debian bullseye InRelease
Atteint :2 http://deb.debian.org/debian bullseye InRelease
Réception de :3 http://deb.debian.org/debian bullseye-updates InRelease [44,1 kB]
Atteint :4 http://security.debian.org/debian-security bullseye-security InRelease
Réception de :5 http://archive.raspbian.org/raspbian bookworm InRelease [15,0 kB]
Err :5 http://archive.raspbian.org/raspbian bookworm InRelease
 Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 9165938D90FDDD2E
Lecture des listes de paquets... Fait
W: Erreur de GPG : http://archive.raspbian.org/raspbian bookworm InRelease : Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 9165938D90FDDD2E
E: Le dépôt http://archive.raspbian.org/raspbian bookworm InRelease n'est pas signé.
N: Les mises à jour depuis un tel dépôt ne peuvent s'effectuer de manière sécurisée, et sont donc désactivées par défaut.
N: Voir les pages de manuel d'apt-secure(8) pour la création des dépôts et les détails de configuration d'un utilisateur.

Ajoute la clé en laissant l'adresse keyserver.ubuntu.com, on est sur Debian mais n'est pas une erreur.

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E

Tu obtiens ce résultat, si tu as 1 dans importées c'est bon.

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
Executing: /tmp/apt-key-gpghome.fX5MYkXxGv/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
gpg: clef 9165938D90FDDD2E : clef publique « Mike Thompson (Raspberry Pi Debian armhf ARMv6+VFP) <mpthompson@gmail.com> » importée
gpg:       Quantité totale traitée : 1
gpg:                     importées : 1

Refais une mise à jour des dépôts, tu ne dois plus avoir d'erreur de signature.

apt update

On peut maintenant installer les paquets dont on aura besoin.

apt install bluez-tools bluez-alsa-utils

Une fois l'installation terminée je te conseille de commenter les lignes du fichier /etc/apt/sources.list.d/armbian.list ça t'éviteras de mettre à jour ton système avec les paquets de prochaine version et de te retrouver avec un système bancal. Normalement grâce aux règles de priorité des dépôts ça ne devrait pas arriver mais on ne sait jamais.

 

Activer la sortie jack par défaut

La sortie audio par défaut est le HDMI et s'il n'y a pas d'écran branché sur le PI ça pose problème pour la suite. Auparavant cela se configurait via le fichier /boot/config.txt mais depuis la version Buster de Raspberry PI OS cette méthode ne fonctionne plus.

Liste les cartes son disponibles

cat /proc/asound/cards

Tu obtiens un résultat de ce type. Il y a 2 cartes son numérotés 0 et 1, celle qui nous intéresse ici est la N°1 Headphones correspondant à la sortie jack 3,5mm. La N°0 est la sortie audio HDMI.

0 [b1             ]: bcm2835_hdmi - bcm2835 HDMI 1
                     bcm2835 HDMI 1
1 [Headphones     ]: bcm2835_headphonbcm2835 Headphones - bcm2835 Headphones
                     bcm2835 Headphones

Crée le fichier de configuration indiquant la carte son par défaut à utiliser

vim /etc/asound.conf

Mets-y ces 2 lignes

defaults.pcm.card <NUMERO_CARTE_SON>
defaults.ctl.card <NUMERO_CARTE_SON>

Dans cet exemple on utilise la carte son N°1 par défaut

defaults.pcm.card 1
defaults.ctl.card 1

Redémarre le Raspberry

reboot

Et fais un test pour vérifier que ça fonctionne.

Branche quelque chose sur la prise jack (casque, enceinte, etc…) et exécute cette commande pour lire un fichier wav quelconque.

aplay <FICHIER_WAV>

Tu as peut-être des fichiers wav dans /usr/share/sounds/alsa/, dans ce cas tu peux exécuter par exemple

aplay /usr/share/sounds/alsa/Front_Left.wav

Tu dois entendre un son, signe que tout fonctionne.

Tu peux modifier le volume avec alsamixer

alsamixer

Tu as une interface graphique, utilise les flèches [HAUT] et [BAS] pour modifier le volume. Vérifie que tu as bien "Headphone” en dessous de la barre. Si ce n'est pas le cas appuie sur [F6] et sélectionne “Headphone”. Quand tu as terminé appuie sur [échap].

Si tu connecte ton Raspberry à des enceintes, il faut mettre le volume au maximum afin d'augmenter le ratio signal / bruit. Ceci permet d'éviter d'amplifier le bruit de fond, ce psssss,  produit par la sortie audio du Raspberry et d'avoir un meilleur son.

 

Service Bluetooth

Il est chargé de la gestion des périphériques Bluetooth.

Rendre le Raspberry PI visible

On va rendre le Raspberry visible par les autres périphériques Bluetooth.

Liste les périphériques Bluetooth de ton Raspberry

ls /var/lib/bluetooth/

Si tu n'a pas d'autre dispositif Bluetooth connecté à ton Raspberry tu n'auras qu'une ligne de ce type

A8:F7:B0:94:3D:9C

En réalité c'est un nom de dossier correspondant à l'adresse MAC de ton périphérique Bluetooth dans lequel il y a un fichier settings que l'on va éditer.

vim /var/lib/bluetooth/<ADRESSE_MAC_BLUETOOTH>/settings

Exemple si ton adresse MAC est A8:F7:B0:94:3D:9C

vim /var/lib/bluetooth/A8\:F7\:B0\:94\:3D\:9C/settings

C'est un fichier vide, colle ça dedans.

[General]
Discoverable=true

Définir le type de classe Bluetooth

On va définir de quel type de périphérique Bluetooth on s'annonce. Dans notre cas on va s'annoncer en tant que haut-parleur (= une enceinte Bluetooth) ce qui correspond au code hexadécimal 0x414. Tu as une liste des différents codes ici.

Ouvre le fichier de configuration du Bluetooth

vim /etc/bluetooth/main.conf

Juste sous [General] ajoute ces 2 lignes. Le paramètre DiscoverableTimeout avec la valeur 0 rend le Raspberry toujours visible

[General]
DiscoverableTimeout = 0
Class = 0x414

Changer le nom Bluetooth (optionnel)

Par défaut le nom Bluetooth du Raspberry est son hostname mais il est possible de mettre un autre nom.

Crée un fichier

vim /etc/machine-info

Et mets-y ça

PRETTY_HOSTNAME=<CE_QUE_TU_VEUX>

Dans cet exemple on appelle notre Raspberry "RPI BT audio"

PRETTY_HOSTNAME=RPI BT audio

Activer et démarrer le service

Il ne reste plus qu'à activer le service au démarrage et le démarrer

systemctl enable bluetooth
systemctl start bluetooth

 

Agent Bluetooth

Il est chargé de l'appairage et de l'authentification des appareils.

Crée un fichier de service systemd.

vim /etc/systemd/system/bt-agent.service

Et colle ça dans le fichier. La commande /usr/bin/yes sert à répondre toujours oui lorsque le bt-agent le demande évitant ainsi la saisie d'un code PIN.

[Unit]
Description=Bluetooth Auth Agent
After=bluetooth.service
PartOf=bluetooth.service

[Service]
Type=simple
ExecStart=/bin/sh -c '/usr/bin/yes | /usr/bin/bt-agent -c DisplayOnly'

[Install]
WantedBy=bluetooth.target

Active le service au démarrage et le démarre-le

systemctl enable bt-agent
systemctl start bt-agent

 

Audio Bluetooth

Le service bluez-alsa va récupérer le flux audio Bluetooth et l'envoyer sur la sortie audio.

Modifie le fichier de configuration afin de s'annoncer en “a2dp-sink” (enceinte Bluetooth)

vim /etc/default/bluez-alsa

Le paramètre OPTIONS est vide, ajoute --profile=a2dp-sink. Ton fichier doit être comme ça:

# Config file for blues-alsa.service
# Set the bluealsa option, please see bluealsa manpage
OPTIONS="--profile=a2dp-sink"

Crée un fichier de service systemd

vim /etc/systemd/system/aplay.service

Et colle ça dans le fichier. Grâce aux indications de TPM-28 dans les commentaires, les paramètres --pcm-buffer-time=135000 --pcm-period-time=33750 permettent de réduire la latence qui est d'environ 0,5 secondes par défaut.

[Unit]
Description=BlueALSA aplay service
After=bluetooth.service
Requires=bluetooth.service

[Service]
ExecStart=/usr/bin/bluealsa-aplay --pcm-buffer-time=135000 --pcm-period-time=33750 00:00:00:00:00:00 -vv
Restart=always

[Install]
WantedBy=multi-user.target

Activer le service au démarrage et démarre-le

systemctl enable aplay
systemctl start aplay

À ce stade, ton Raspberry devrait être visible, si ce n'est pas le cas, redémarre-le. Attention, il peut mettre un peu de temps avant de redémarrer. Ça permettra aussi de valider que tout démarre automatiquement au démarrage.

reboot

Ton Raspberry PI est maintenant opérationnel, tu n'a plus qu'à tester que tout fonctionne.

Depuis ton smartphone / tablette / ordinateur recherche les dispositifs Bluetooth, connecte-toi au Raspberry PI et lance la lecture d'un fichier audio. Tu dois avoir le son qui sors de la prise jack du Raspberry PI.

partager sur Facebook
COMMENTAIRES
Avatar par défaut
TPM-28 (non inscrit)
samedi 27 août 2022 12:34

Merci beaucoup pour ce tuto que je cherchait depuis longtemps 
vraiment un gros merci pour votre travail je sais a quel point c'est dur 

samedi 27 août 2022 13:19

J'ai essayé de détailler et d'expliquer au maximum les étapes afin que ce soit compréhensible même par un débutant. Je trouve que le problème de nombreux tutos et documentation c'est leur manque de clarté et surtout d'exemples. Ils font comme si l'on connaissait déjà tout et bien souvent il manque des explications ou alors les exemples de code sont incomplets, et encore quand il y en a!

Je me suis déjà pris la tête sur des bibliothèques logicielles et leur documentation bien trop maigre qui t'oblige à passer des heures sur internet à chercher un bout de code par ci par là et mettre tout bout à bout pour comprendre comment ça fonctionne.

En tout cas, merci d'avoir laissé un commentaire car c'est plutôt rare sur ce blog et ça fait toujours plaisir.

Avatar par défaut
TPM-28 (non inscrit)
mercredi 31 août 2022 11:17

Bonjour,

Encore déso pour le dérangement mais j'ai un problème :
je voudrait suivre ce tuto, non pas sur la version raspios_lite_arm64-2021-05-28
mais sur la dernière version cette a dire sur la 2022-04-04
et tout "fonctionne" mais le paquet bluealsa ne veut pas s'installer 
pourtant avec votre version 2021 cela fonctionne.
Quand j'essaye d'installer bluealsa il me retourne cela en output :

root@raspberrypi:~# apt install bluealsa
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package bluealsa is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'bluealsa' has no installation candidate

Donc je voudrais un peu d'aide… Merci d'avance 

(FlashInfo : j'ai 15ans)

mercredi 31 août 2022 12:04

Je viens de tester sur un rpi avec la dernière version de Raspberry Pi OS et j'ai exactement le même message d'erreur.

C'est l'éternel problème des tutos Linux, ça fonctionne trop bien puis il y a un changement qui fait que ça ne fonctionne plus à un moment donné.

J'ai trouvé ça qui pourrait être une solution : https://sigmdel.ca/michel/ha/rpi/bluetooth_in_rpios_02_en.html#bluealsa3

On y apprends que le paquet bluealsa a été supprimé de la dernière version de Raspberry Pi OS et qu'il est remplacé par bluez-alsa-utils disponible dans la prochaine version de l'OS. La manip consiste à ajouter le dépôt de la prochaine version, d'installer le paquet et de commenter ce dépôt pour empêcher le système de se mettre à jour avec.

Je n'ai pas testé mais il va falloir que je mette ce tuto à jour en espérant que ça fonctionne.

Avatar par défaut
TPM-28 (non inscrit)
mercredi 31 août 2022 12:14

Je viens de tester et cela ne fonctionne pas, mais j'ai une piste …
mais pour cela il faut que je re grave ma carte sd et que je test si cela fonctionne
je vous tiens au courant.

Avatar par défaut
TPM-28 (non inscrit)
mercredi 31 août 2022 12:44

Je viens de tester et pardontre “Installing BlueALSA 1.4.0
marche …
 mais le "Installing BlueALSA 3.0.0"  ne marche pas …

Avatar par défaut
TPM-28 (non inscrit)
mercredi 31 août 2022 12:46

*pardontre = Parcontre !

Avatar par défaut
TPM-28 (non inscrit)
mercredi 31 août 2022 13:21

“Il est possible de connecter plusieurs appareils en même temps et il y a une latence d'environ 0,5 secondes. Si ce n'est pas gênant pour écouter de la musique ça l'est beaucoup plus pour la vidéo car on se retrouve avec un décalage entre le son et l'image. Je ne sais pas si l'on peux réduire cette latence.”

j'ai trouver une solution pour ce temp de latence grâce a un argument bluealsa  : 

bluealsa-aplay --pcm-buffer-time=135000 --pcm-period-time=33750 -vv 00:00:00:00:00:00
jeudi 1 septembre 2022 16:56

J'ai mis à jour et testé le tuto, maintenant c'est bon ça fonctionne avec la dernière version de Raspberry OS 2022-04-07 sur un Raspberry Pi 4.

J'ai aussi ajouté dans le tuto les paramètres que tu as ajoutés à bluealsa-aplay et je te confirme que ça supprime la latence.

Avatar par défaut
TPM28 (non inscrit)
jeudi 1 septembre 2022 17:55

Et merci pour l'install de bluealsa, car j'ai pas trouver comment faire 
mais vous oui !

jeudi 1 septembre 2022 18:42

En fait le service bluealsa a changé de nom et maintenant c'est bluez-alsa. J'ai préféré utiliser la version la plus récente pour être prêt pour la prochaine version de Debian. Toujours penser aux évolutions futures!

J'ai testé aujourd'hui en partant d'une installation “propre” (aussi appelée “clean install”) et normalement t'as juste à faire un copier coller des lignes de commandes et ça fonctionne.

Avatar par défaut
TPM-28 (non inscrit)
jeudi 1 septembre 2022 21:54

normalement t'as juste à faire un copier coller des lignes de commandes et ça fonctionne

Je vais faire un script qui fait tout cela automatiquement …

Avatar par défaut
TPM28 & felix068 (non inscrit)
lundi 5 septembre 2022 18:21

https://github.com/felix068/RasPi-MLC

lundi 5 septembre 2022 22:56

Je vois que t'as crée un centre multimédia.
J'ai regardé ton script install.sh et j'ai quelques remarques pour l'améliorer:

  • les commandes sont exécutés à la suite sans vérifier le code retour. Si une commande échoue le script va continuer alors qu'il y a un problème. 
  • ça serait mieux de faire en premier l'installation des paquets et le téléchargement des fichiers puis la configuration. Et aussi mettre tous les fichiers dans un seul tar comme ça il n'y a qu'un téléchargement à faire.
  • la clé du dépôt codée en dur. L'extraire avec un sed aurait été mieux car rien ne garanti qu'elle ne change pas dans le futur.
  • le apt full-upgrade je crois pas que ce soit nécessaire et l'utilisateur n'a pas forcément envie d'avoir une mise à jour “surprise” de son système. Il peut y avoir des paquets lui posant problème dans la mise à jour.

T'as déjà un script fonctionnel pour commencer, ensuite à toi de l'améliorer avec la gestion des erreurs. Et attention, une mise à jour d'un paquet ou du système peut rendre le script non fonctionnel.

Avatar par défaut
TPM28 (non inscrit)
mardi 6 septembre 2022 18:56

Salut.

  • Je me demande si tu à un compte github pour te rajouter au projet …
     
  • Et je suis d'accord sur tous les point sauf la mise à jour, car pour une raison que j'ignore
    StartX et Xorg ne fonctionne pas et n'affiche pas chromium. Tan que l'on ne met pas à jour le system.
    Le navigateur web est basé sur sa : WP_Kiosk_Raspi (5inch screen).
     
  • Et pour la vérification du retour de la commande, je fait quoi si cela fait une erreur ?


 


 

Avatar par défaut
mardi 6 septembre 2022 18:57
modifié mardi 6 septembre 2022 18:57 par TPM28

voila j'ai enfin crée mon compte … (et je peut edit mes message WAH !)

mardi 6 septembre 2022 22:44

Je n'ai pas de compte github et puis j'aurais pas le temps de participer au projet, le développement de mes sites m'en prends déjà pas mal.

Pour la mise à jour du système X, j'en ai aucune idée car j'utilise essentiellement Linux pour des serveurs uniquement en mode console.

Si une vérification échoue, c'est simple tu fais tout ce que les programmes font: afficher un message d'erreur et quitter! comme dans le script chaque commande dépend de la précédente, si une commande échoue t'arrêtes tout et tu informe l'utilisateur du problème.

Avatar par défaut
Mathieu (non inscrit)
lundi 31 octobre 2022 18:36

Bonjour

 

Tuto testé ce jour sur RPI3 et OS 2022-09-22-raspios-bullseye-arm64-lite.

Le tuto est super clair, et me permet de donner un coup de jeune à ma hifi.

Le plus difficile pour moi a été de prendre en main vi :-)

MERCI !

 

PS: La portée du bluetooth intégré dans le RPI3 est très limite (le stream ne marchait plus bien au delà de 4 mètres). J'ai essayé avec un petit dongle USB et ça marche beaucoup mieux.

 

mardi 1 novembre 2022 21:21

Ravi que ce tuto soit utile!

Pour la portée c'est peut-être dû au WIFI car il opère sur la même fréquence de 2,4GHz que le Bluetooth, il y a le même problème sur les smartphones. Je n'ai pas fait de tests de portée donc je ne pourrais rien dire à ce sujet.

Avatar par défaut
Jmphiphi (non inscrit)
jeudi 10 novembre 2022 13:19

Salut!

Franchement ce tuto est excellent!!

La démarche est bien documentée et j'ai l'impression d'avoir appris après l'avoir réalisée. Franchement bravo, car j'en ai essayé d'autres sans succès!

deux petites questions: 

1-avec quelle instruction puis-je trouver un flag pour allumer une led pour indiquer l'état de pairing/paired/unpair?

J'imagine que c'est autour de BT agent, mais pas trouvé!

2- J'ai aussi un programme en python3 lancé par systemcl  qui me permet d'écouter des webradios. L'idée est d'interrompre ce programme lorsque le "device est paired" et de le reprendre lorsqu'il est déconnecté. Penses-tu que cela soit possible de jouer avec les systemctl start stop de mon programme radio?

Bravo encore

JM

 

jeudi 10 novembre 2022 16:40

Salut,

Ce tuto je l'ai écris afin que ce soit facile à comprendre et que tu n'aie qu'à faire un copier-coller des commandes pour que ça fonctionne. Le problème de la plupart des tutos c'est qu'ils manquent souvent de toutes les explications nécessaires et parfois sont obsolètes et pas mis à jour mais ici grâce à la remarque d'un internaute laissée en commentaire, je l'ai mis à jour.

Pour la LED et la webradio, mon idée serait d'aller voir si dans /var/log/messages il n'y a pas quelque chose d'inscrit à la connexion/déconnexion d'un appareil Bluetooth ou sinon aller voir le log de bt-agent.
Dans ton script python, tu crée un thread en arrière plan qui va scruter le fichier de log, par exemple avec une regex, et à la connexion d'un appareil Bluetooth tu arrête la webradio et allumes la LED; à la déconnexion tu démarres la webradio et éteins la LED.
Je connais pas trop Python, je sais pas si c'est possible sinon il faut créer un service qui scrute les logs et démarre/arrête la webradio lors des connexions/déconnexions.

Pour la LED, j'avais fait ça il y a longtemps, tu peux en brancher une directement sur GPIO pour tester mais ce n'est pas tellement recommandé car ça risque d'endommager l'interface GPIO à la longue. Il ne faut pas utiliser une LED trop puissante et mettre une résistance. Pour l'allumer/éteindre, si je me souviens c'est juste une commande à exécuter.

Avatar par défaut
Jmphiphi (non inscrit)
jeudi 10 novembre 2022 17:27

C'est top!

Je vais y réfléchir et faire qq tests. Déja, je suis content car la partie audio est commune avec vlc sur alsa. Merci beaucoup

@+

Avatar par défaut
S3y3ma (non inscrit)
jeudi 24 novembre 2022 16:59

Bonjour ! tout d'abord un grand merci pour ce super tuto! 

cela m'a permis de me plonger dans un raspberry pi que j'avais depuis 2015 qui trainait pour du retrogaming mais pas grand chose de plus. 

j'ai tout suivi à la lettre cela marche super bien, j'ai rajouté ensuite via d'autres tuto shairport et raspotify et ça fonctionne très bien. 

Mon seul problème :  je n'arrive pas à connecter un seul périphérique, à savoir un vidéo projecteur : Epson EH-TW7000. 

Peut être que je me plante, mais je me demande si ce n'est pas en rapport avec le SCMS-T bluetooth protocole. dans la fiche technique du Epson ils exigent deux choses pour un fonctionnement bluetooth : “Assurez-vous que l'appareil audio Bluetooth qui est connecté au projecteur est compatible avec le système de limitation des possibilités de duplication (SCMS-T) et le protocole A2DP”. 
 

Je voulais donc savoir s'il était possible de rajouter un script dans ce sens ? En tout cas si vous pouviez m'aider à comprendre et à trouver une solution cela serait génial. 
 

ps : je suis un vrai n00b mais je n'ai pas peur d'apprendre. 

merci pour tout. 

jeudi 24 novembre 2022 18:03
modifié jeudi 24 novembre 2022 18:09 par Jesus Forain

Alors là je viens de découvrir un truc! je ne savais pas qu'il y avait des DRM sur le Bluetooth, encore un truc inutile pour nous embêter et ce n'est pas ça qui va nous empêcher de récupérer le son.

Pour le RPI, j'ai cherché vite fait et j'ai rien trouvé pour ce SCMS-T. Par contre tu ne semble pas être le seul à avoir un problème avec la connexion de ce projecteur (ça aussi, je ne savais pas qu'il y avait des projecteurs avec BT intégré), il n'y a qu'à voir ici: impossible de connecter certaines barres de son avec ce projecteur à cause du SCMS-T.

Il faudrait voir s'il n'y aurait pas un menu caché sur le projecteur pour désactiver le SCMS-T.

Avatar par défaut
S3y3ma (non inscrit)
jeudi 24 novembre 2022 18:38

Merci pour ta réponse super rapide ! 

J'ai cherché et malheureusement pas trouvé de réponse à mon problème non plus. Je me demandais s'il n'y avait pas d'option à activer (j'ai pu voir que sous windows par exemple on pouvait activer ou désactiver le SCMS-T).

Pour ce qui est du projecteur, il fonctionne très bien avec mon enceinte Bluetooth Bose soundlink 2 de 2015, sans avoir trouvé si l'enceinte en question possédait ou non ce DRM je me suis dit que c'était peut être en rapport. 

Dans le bluetoothctl lorsque j'essaye de le connecter cela passe de oui à non de manière régulière, jusqu'à ce que m'affiche un dramatique “failed to connect” sur mon vidéo proj…  

[CHG] Device 70:61:BE:3E:A4:AD Connected: yes
[CHG] Device 70:61:BE:3E:A4:AD Connected: no
[CHG] Device 70:61:BE:3E:A4:AD Connected: no
[DEL] Device 70:61:BE:3E:A4:AD EpsonProjector
[NEW] Device 70:61:BE:3E:A4:AD EpsonProjector
[CHG] Device 70:61:BE:3E:A4:AD Connected: no
[DEL] Device 70:61:BE:3E:A4:AD EpsonProjector
[NEW] Device 70:61:BE:3E:A4:AD EpsonProjector
[CHG] Device 70:61:BE:3E:A4:AD Connected: no

 

je ne sais plus trop quoi essayer… 
 

jeudi 24 novembre 2022 18:47

Merci pour ta réponse super rapide ! 

C'est parce que j'ai implémenté un système de notifications push sur le site (menu > activer les notifications) qui envoie une notification dès que quelque chose est posté.

Dans le bluetoothctl lorsque j'essaye de le connecter cela passe de oui à non de manière régulière, jusqu'à ce que m'affiche un dramatique “failed to connect” sur mon vidéo proj…

Il doit se connecter puis récupérer les services BT offerts par ton RPI et comme le SCMS-T n'est pas disponible il se déconnecte. Ou alors c'est un problème de liaison radio: le projecteur est trop loin du RPI ou le signal est brouillé.

Avatar par défaut
jmphiphi (non inscrit)
dimanche 27 novembre 2022 14:00

Salut!

Je suis encore en train de galérer pour récupérer les infos de connexion… Le syslog est extrêmement bavard et je loupe regulièrement des paquets d'info pour récupérer une info de connexion fiable. Je vais trouver un moyen…
En revanche j'ai un gros souci de missing RTP packets lorsque je connecte un téléphone IOS, alors qu'il n'y a pas de pb avec android. Any idea?

Bonne journée

lundi 28 novembre 2022 13:38

Ce problème de RTP est peut-être dû à une spécificité de chez Apple parce que chez Apple ils font un peu ce qu'ils veulent avec les normes en verrouillant au maximum pour forcer les utilisateurs à rester dans leur écosystème.

Il faudrait tester avec divers matériels (Android, PC Windows et Apple, tablettes Android et Apple) et voir si le problème ne se produit qu'avec les appareils Apple.

Concernant Apple, j'avais eu la cas d'un Iphone qui s'appairait avec une voiture, le Bluetooth était connecté mais impossible d'utiliser le mains libre ou d'envoyer la musique sur les hauts-parleurs alors qu'avec un Android ça fonctionnait sans problème. Autre cas, avec un autre IPhone et une enceinte Bluetooth: le téléphone s'appaire (bip de connexion dans l'enceinte) et et se déconnecte aussitôt (bip de déconnexion dans l'enceinte) alors que l'enceinte fonctionne parfaitement avec Android.

Avatar par défaut
jmphiphi (non inscrit)
samedi 7 janvier 2023 18:56

bonsoir et belle année à tous

Pour les pb de pertes de paquets avec un iphone en streaming audio, il suffit d'augmenter le buffer

dans le service de blue-alsa, style:

ExecStart=/usr/bin/bluealsa-aplay --pcm-buffer-time=500000 --pcm-period-time=100000 00:00:00:00:00:00 -vv

et ca fonctionne top!!!

Avatar par défaut
jpdou (non inscrit)
mercredi 3 mai 2023 11:23

Bonjour,

Tres bon tuto. Merci

J'ai ainsi configuré un raspi 4 pour connecter mes anciennes enceintes sur des PC Windows 11 ou des smartphones android. 

Fonctionne très bien. 

Fait en plus : Pour pouvoir contrôler le son depuis le PC ou le téléphone : https://github.com/balena-labs-projects/balena-sound/issues/300

Et j'ai installé pulseaudio. Le son sort alors de la carte pulseaudio (master dans alsamixer)

Tout fonctionne bien sur un RASPI 1B et même  sur un libre computer. Mais sur le raspi4 : 

  • pas de problème sur les téléphones : le son sort bien de la carte pulseaudio 
  • Mais sur les PC : le son sort via la carte bcm2835 et non de la carte pulseaudio. J'arrive à rétablir en redémarrant le service bluetooth ou pulseaudio 

Ce n'est pas gênant sauf que je contrôle aussi le son via une télécommande et un récepteur IR que j'ai installés et qui commandent le son sur la carte pulseaudio.

Si quelqu'un a une idée de cette différence de comportement entre PC windows (11) et android, merci

 

mercredi 3 mai 2023 22:35

C'est bizarre ce problème avec le RPI4. Quand j'ai fait ce tuto, j'avais testé avec un smartphone Android et un PC Windows 10 sans constater de problème.

Ça peut peut-être venir du codec Bluetooth qui n'est pas le même sur l'ordinateur et le smartphone ou alors de l'implémentation matérielle du contrôleur Bluetooth.

Avatar par défaut
__invité__
mercredi 3 mai 2023 23:55

Merci pour la réponse.

Bizarre car ce n'est pas systématique; il se peut que lors d'un redémarrage d'un PC celui-ci se connecte sur la carte Pulseaudio. 

Je vais vivre avec : j'ai programmé ma télécommande pour piloter le son qu'il soit sur la carte pulseaudio 'Master Playback" ou la carte “headphone playback” 

Avatar par défaut
Seb (non inscrit)
mercredi 10 mai 2023 20:59

Merci pour cet article ! Super utile pour stream sa musique dans une vieille voiture 😇

Avatar par défaut
Ernest (non inscrit)
mardi 23 mai 2023 21:31

Hello !

Super ! Ça fonctionne !

Par contre j'ai du passer direct à raspbian testing (bookworm), cela ne fonctionnait pas avec le depot sur Buster.

Je poursuis mes recherches pour balancer le flux audio bluetooth du raspberry via snapserver, de façon à ce que tous les clients (y compris le raspberry) puisse lire la musique.

 

l

Avatar par défaut
TPM-28 (non inscrit)
dimanche 20 août 2023 01:46

Est-ce que cela intéresse quelqu'un que je fasse une docker tout prêt pour cela ? comme son plus aucun problème de version de debian  etc …

lundi 21 août 2023 16:32

Docker, j'en ai entendu parler mais je ne me suis jamais intéressé à cette technologie. Si ça peut simplifier l'installation c'est toujours bon à prendre.

Avatar par défaut
TPM28 (non inscrit)
lundi 21 août 2023 21:42

Ok, je vais voir ce que je peux faire... Je ne garantis rien, mais je vais tenter (parce que faire des trucs Bluetooth dans un conteneur Docker, je n'ai jamais encore fait, je ne sais même pas si c'est possible à vrai dire). Et je ne garantis pas le temps que je vais prendre pour le faire, car cela se fera sur mon temps libre.

Avatar par défaut
Romain (non inscrit)
mardi 19 décembre 2023 01:47

Bonjour à tous, je suis extrêmement intéressé par un docker ! Ce serait absolument génial. 

Si jamais tu as besoin d'un testeur je suis là ! 

 

Avatar par défaut
Georg-Friederich (non inscrit)
mercredi 8 mai 2024 19:31

Bonjour,
Un grand merci pour vos instructions aussi claires que détaillées. Tout a bien marché pour moi (essentiellement du premier coup) sur mon Raspi 4 avec Ubuntu 24.04.

Avatar par défaut
mabu (non inscrit)
mercredi 3 juillet 2024 09:30

Bonjour,
Un grand merci pour ce tuto très bien fait et fonctionnel!
Installé sur raspberry PI 0w sous DietPi pour remettre au gout du jour un vieil ampli avec un dac HDMI ? RCA 
C'est en complément de shareport au cas où le wifi serait ko ou si un invité sans iOS voudrait mettre du son.
Ça marche super bien et le paquet bluez-alsa-utils est dispo sans ajouter de dépôt sur la version 9.5.1 de DietPi.
 

mercredi 3 juillet 2024 23:23

Merci à ceux qui apprécient ce tuto. Je l'ai écris pour que ce soit clair et surtout j'y ai mis toutes les commandes, pour faire en sorte que si tu suis le tuto, tu n'a pas à te poser de questions ou aller chercher de l'aide ailleurs.

Si tous les développeurs pouvaient faire pareil ça serait super parce que souvent la doc des bibliothèques ou API est vraiment mal faite avec la moitié des commandes et il faut galérer à trouver comment ça fonctionne.

le paquet bluez-alsa-utils est dispo sans ajouter de dépôt sur la version 9.5.1 de DietPi.

Cette procédure date de quand le RPI était sous Debian11, on était dans une situation particulière de transition. Maintenant que l'on est passé à Debian12, le problème a dû être résolu.

Envoyer un commentaire
chargement de l'éditeur en cours...
Envoi d'images pour les insérer dans le message
Cliquez sur le bouton "insérer l'image" pour l'ajouter à votre message, le fond de l'image passe en vert indiquant qu'elle est ajoutée. Les images non insérés sont supprimées.

Envoi de fichiers pour les télécharger

Attention! vous n'êtes pas connecté, vous postez en mode invité.