Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
dev:raspberry:serveur-audio [2013/05/08 10:12] – root | dev:raspberry:serveur-audio [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | |||
====== Serveur de son ====== | ====== Serveur de son ====== | ||
Ligne 4: | Ligne 5: | ||
- | ===== Installation | + | ===== Installation |
- | Pulseaudio | + | ALSA (Advanced Linux Sound Architecture) et Pulseaudio |
<code bash> | <code bash> | ||
sudo -i | sudo -i | ||
apt-get update | apt-get update | ||
- | apt-get install alsa-base pulseaudio pulseaudio-module-zeroconf | + | apt-get install alsa-base pulseaudio pulseaudio-module-zeroconf |
</ | </ | ||
- | Les dépendances seront installés notamment le paquet alsa-utils contenant alsamixer (configuration du périphérique audio depuis l' | + | Les dépendances seront installés notamment le paquet alsa-utils contenant alsamixer (configuration du périphérique audio depuis l' |
- | ===== Tester le son en local ===== | ||
- | Augmenter les niveaux sonores avec avec alsamixer (à l' | + | ===== Charger |
+ | |||
+ | Charger le pilote du périphérique son | ||
+ | |||
+ | <code bash> | ||
+ | modprobe snd-bcm2835 | ||
+ | </ | ||
+ | |||
+ | Pour que le module soit automatiquement chargé lors du démarrage, l' | ||
+ | <code bash> | ||
+ | root@raspberrypi: | ||
+ | </ | ||
+ | |||
+ | ===== Configurer pulseaudio ===== | ||
+ | |||
+ | Lancer automatiquement le serveur pulseaudio au démarrage de la raspberry. Modifier le fichier / | ||
- | Si lors de l' | ||
< | < | ||
- | cannot open mixer: No such file or directory | + | # 0 = don't start, 1 = start |
+ | PULSEAUDIO_SYSTEM_START=1 | ||
</ | </ | ||
- | Vérifier si root peut lancer la commande. Si c' | + | < |
+ | Sous Jessy le fichier / | ||
+ | </ | ||
+ | <code bash> | ||
+ | $ sudo cp / | ||
+ | $ sudo chmod 755 pulseaudio | ||
+ | $ sudo update-rc.d pulseaudio defaults 98 02 | ||
+ | </ | ||
+ | |||
+ | Remarque: Cette variable active le script de gestion du daemon dans / | ||
+ | |||
+ | |||
+ | Configurer le serveur pulseaudio pour qu'il écoute sur le réseau. Modifier le fichier de configuration **/ | ||
+ | |||
+ | < | ||
+ | ### Utiliser raspeberry comme serveur de son | ||
+ | load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1; | ||
+ | load-module module-zeroconf-publish | ||
+ | load-module module-rtp-recv | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | L' | ||
+ | </ | ||
+ | |||
+ | Démarrer le service | ||
+ | <code bash> | ||
+ | root@raspberrypi: | ||
+ | </ | ||
+ | |||
+ | On peut vérifier que le serveur ecoute sur 5353 (RTP multicast) | ||
+ | <code bash> | ||
+ | $ netstat -anpe | grep 5353 | ||
+ | </ | ||
+ | |||
+ | ===== Tester le son en local ===== | ||
+ | |||
+ | ==== alsamixer ==== | ||
+ | |||
+ | Vérifier les niveaux sonores avec avec alsamixer (à l' | ||
+ | |||
+ | |||
+ | Si lors de l' | ||
+ | |||
+ | Vérifier si root peut lancer la commande. Si c'est le cas, vérifier que l' | ||
+ | |||
+ | <code bash> | ||
+ | $ sudo usermod -a -G pulse-access pi | ||
+ | </ | ||
+ | |||
+ | Vérifier que le pilote du périphérique audio est chargé | ||
+ | <code bash> | ||
+ | lsmod | grep snd | ||
+ | </ | ||
+ | |||
+ | Vérifier que des périphériques audio existent | ||
+ | <code bash> | ||
+ | aplay -l | ||
+ | </ | ||
+ | |||
+ | Test des hauts parleurs | ||
+ | <code bash> | ||
+ | speaker-test -c 2 | ||
+ | </ | ||
+ | |||
+ | ==== lecteur audio en console ==== | ||
+ | |||
+ | Pour jouer des sons(mp3) à partir de la ligne de commande plusieurs programmes existent: | ||
+ | * mpg123 | ||
+ | * mpg321 | ||
+ | * mp3baster | ||
- | Pour cela utiliser un lecteur en ligne de commande tel que **mpg123** | ||
<code bash> | <code bash> | ||
sudo apt-get install mpg123 | sudo apt-get install mpg123 | ||
</ | </ | ||
- | Lancer | + | ===== Configurer les clients ===== |
+ | |||
+ | Il faut maintenant configurer les postes clients pour qu'ils se connectent au serveur pulseaudio du raspberry. Pour que pulseaudio puisse détecter automatiquement les périphériques présents sur le réseau il faut sur chaque poste: | ||
+ | |||
+ | * pulseaudio | ||
+ | * avahi | ||
+ | |||
+ | cela installer les paquets suivants: | ||
<code bash> | <code bash> | ||
- | pulseaudio | + | yoann@hermes: |
</ | </ | ||
+ | |||
+ | < | ||
+ | Dans les distributions récentes, le paquet padevchooser n' | ||
+ | </ | ||
+ | |||
+ | Menu Applications >> son et vidéo >> | ||
+ | Selectionner Configure Local Sound Server... | ||
+ | Activer l' | ||
+ | Onglet Multicast/ | ||
+ | |||
+ | |||
+ | Redirger les application ALSA | ||
+ | Rediriger les application utilisant ALSA sur le serveur pulseaudio. Modifier le fichier / | ||
+ | |||
+ | Coté client, inserer dans le fichier / | ||
+ | < | ||
+ | load-module module-zeroconf-discover | ||
+ | </ | ||
+ | |||
+ | Si le serveur n’apparaît pas dans les périphérique, | ||
+ | <code bash> | ||
+ | pacmd load-module module-tunnel-sink server=192.168.1.10 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Optimisations diverses ===== | ||
+ | |||
+ | ==== Réduire la mémoire GPU ==== | ||
+ | |||
+ | Réduire la quantité de mémoire allouée exclusivement au GPU. Je l'ai passée au minimum 16 MO. | ||
+ | |||
+ | |||
+ | ==== Désactiver les consoles ttyX ==== | ||
+ | |||
+ | Les connexion se font via ssh, on peut désactiver les consoles ttyX. Éditer le fichier ''/ | ||
+ | |||
+ | <code bash> | ||
+ | telinit q | ||
+ | </ | ||
+ | |||
+ | ===== Problèmes de son ===== | ||
+ | |||
+ | Rapidement le son joué par le serveur saccade fortement. Le problème disparaît si le daemon est lancé en tant que root: | ||
+ | |||
+ | <code bash> | ||
+ | / | ||
+ | </ | ||
+ | |||
===== Références ===== | ===== Références ===== | ||
+ | |||
* http:// | * http:// | ||
+ | * http:// | ||
* https:// | * https:// | ||
* http:// | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * http:// | ||