Compiler les pilotes ALSA pas à pas
Le but de ce Wiki est de compiler les pilotes ALSA pour votre carte son de manière la plus simple possible, pour par exemple, pouvoir profiter des dernières mises à jour sans devoir attendre la prochaine version de Ubuntu
Je me suis inspiré d'un tutoriel sur le forum. J'ai (bien sûr) traduit et rajouté des sudo là où ça pouvait bugger. Inspirez vous des articles pour vos cartes son si vous avez un problème.
Un point important, si vous compilez vous même ces pilotes puis que vous changez de version d'Ubuntu (passage de Edgy Eft à Feisty Fawn par exemple), vous pouvez perdre le son, c'est normal ! Il vous faudra donc recompiler les pilotes.
Pré-requis
Tout lire jusqu'à la fin avant de commencer quoi que ce soit, c'est important.
- Connaître son modèle de carte son:
lspci | grep [Aa]udio
- Regarder sur http://www.alsa-project.org/ les mises à jour dans le menu de droite,Latest News, pour voir si votre carte son est concernée par une mise à jour. Pour cela, cliquez sur la version du programme. Par exemple pour la dernière version en bêta, 1.0.14rc4, cliquez sur ALSA 1.0.14rc4 release (c'est un fichier txt) et faites la recherche de votre carte son ou du pilote.
- Il peut être aussi judicieux d'aller faire un tour dans la section Bug reporting/feature requests dans le menu au milieu en haut, il faut créer un compte (Signup for a new account), mais après vous pourrez voir l'évolution des pilotes. Cliquez sur View issues, et en bas de la page se trouve un Search pour filtrer les cartes son.
- Si vous voulez vérifier le développement des pilotes vous pouvez visiter le Official Alsa Wiki for Developers : AlsaWiki à cette adresse dans la section Driver Development :
https://bugtrack.alsa-project.org/wiki/wikka.php?wakka=AlsaWiki Si vos pilotes portent la mention TO DO (en français : à faire), patientez, ça va arriver assez vite (mais bon, il faut un peu de temps quand même, je me suis un peu emporté sur le "assez vite" ).
Je vous rappelle que si votre carte son fonctionne bien, il n'est pas obligatoire de mettre à jour (Le mieux est l'ennemi du bien ).
Il est recommandé d'installer les pilotes stables (Stable release), les versions bêta peuvent donner des choses étranges, donc à vos risques et périls.
Se rendre sur : http://www.alsa-project.org/
Cliquez sur SoundCards dans le menu au milieu en haut et choisissez le manufacturer de votre carte son dans le menu déroulant puis cliquer sur go. Trouvez votre carte et cliquez sur le lien entre parenthèses après Details dans la colonne Driver & Docs (c'est le nom de ce lien qu'il faudra mettre à la place de : sudo ./configure –with-cards=nom du lien –with-sequencer=yes )
La page sur laquelle vous arrivez contient la commande du ./configure –with-cards=nom du lien –with-sequencer=yes pour votre pilote dans la section quick install. Reprenez y le nom du pilote sans prendre toute la ligne qui peut planter si vous n'êtes pas en mode root et s'il manque des librairies.
D'ailleurs le nom du lien EST le nom du pilote.
Puis suivez ce qui est écrit… enfin presque
Récupération des paquets requis
Installez les paquets : libncurses5 libncurses5-dev gettext patch xmlto
sudo apt-get install libncurses5 libncurses5-dev gettext patch xmlto
Récupération de alsa-driver, alsa-lib et alsa-utils
Allez sur la page de téléchargement du site ALSA et choisissez un miroir de téléchargement.
Prenez :
- alsa-driver-* : dans le répertoire driver
- alsa-lib-* : dans le répertoire lib
- alsa-utils-* : dans le répertoire utils
L'astérisque est à remplacer par le numéro de version choisi. Les 3 fichiers doivent avoir le même numéro de version.
(On suppose que les fichiers ont été téléchargés sur votre bureau)
Ensuite créez le répertoire /usr/src/alsa/
sudo mkdir /usr/src/alsa
et placez-y alsa-driver, alsa-lib et alsa-utils
sudo mv ~/Bureau/alsa-* /usr/src/alsa/
Installation
Installation des alsa-driver
Extraction de l'archive :
cd /usr/src/alsa/ sudo tar jxvf alsa-driver-*
Installation :
cd alsa-driver-* sudo ./configure --with-cards=[votre pilote] --with-sequencer=yes --with-card-options=all sudo make sudo make install
Remarque 1: remplacer [votre pilote] par le pilote donné sur la page du site ALSA consacrée à votre carte son ou par all pour compiler tous les pilotes. Vous pouvez vous aider de
cat /proc/asound/cards
et de
./configure --help
Pour trouver le bon pilote de votre carte.
Remarque 2: si vous employez plusieurs cartes son vous pouvez employer la commande sudo ./configure –with-cards=(votre pilote 1),(votre pilote 2) –with-sequencer=yes vous pouvez mettre autant de pilotes que de cartes désirées …
Installation des alsa-lib
Ensuite, on installe les alsa-lib :
Extraction :
cd .. sudo tar jxvf alsa-lib-*
Installation :
cd alsa-lib-* sudo ./configure sudo make sudo make install
Installation des alsa-utils
Et enfin les alsa-utils :
Extraction :
cd .. sudo tar jxvf alsa-utils-*
Installation :
cd alsa-utils-* sudo ln -s libpanelw.so.5 /usr/lib/libpanelw.so sudo ln -s libformw.so.5 /usr/lib/libformw.so sudo ln -s libmenuw.so.5 /usr/lib/libmenuw.so sudo ln -s libncursesw.so.5 /lib/libncursesw.so sudo ./configure sudo make sudo make install
Création .asoundrc
Éditez le fichier ~/.asoundrc pour installer le plugin par défaut :
Et mettez-y
pcm.!default { type hw card 0 } ctl.!default { type hw card 0 }
Puis redémarrez le PC.
Configuration alsamixer
Puis on configure le alsamixer
Soit par la console : (Les flèches servent à changer le volume et la touche tabulation à passer de lecture à capture.)
alsamixer
Soit par la version graphique de alsamixer qui se trouver en haut à droite du bureau, l'icône du haut parleur, clique droit, préférences, choisissez votre carte son, puis fermez et double cliquez sur l'icône du haut parleur. Ensuite menu Edtion → Préférences, cochez les options qui vous intéressent et montez le son dans l'onglet capture
(!!! Par défaut, tous les volumes sont à 0 !!!)
Si vous avez un micro, activez le dans l'onglet capture, colonne microphone et veillez à ce que l'icône en bas du volume soit activée. Attention tout de même à ne pas cocher la sortie analogique sous peine de ne plus avoir de son (bien sûr si vous n'utilisez pas la sortie analogique !).
Remarque de fin : Pour ceux qui installent le 5.1 par exemple, ils ne seront pas modifiés sur une mise à jour de ALSA.
Pour ceux qui veulent du 5.1, ça se passe ici :
http://forum.ubuntu-fr.org/viewtopic.php?id=97221
Au passage, si vous avez un fichier enregistré en 2.1, c'est NORMAL que vous entendiez le son en 2.1 et non en 5.1, même si le 5.1 est activé. Pour entendre en 5.1, on prend un fichier enregistré en 5.1.
Les programmes fournis par ALSA
Vous vous êtes sûrement rendu compte qu'on pouvait télécharger d'autres programmes que alsa-driver, alsa-lib et alsa-utils (Mais si, ces programmes étranges à droite dès qu'on tombe sur le site principal de ALSA, dans le menu de droite, intitulé Latest Software Releases).
Mais quels sont-ils et à quoi servent-ils ?
Je rappelle qu'il est préférable d'utiliser les versions stables de ces fichiers (Stable release).
Certains se trouvent dans Synaptic, mais vous y trouverez que les versions stables.
Pour pouvez retrouver ces informations dans les fichiers .tar.bz2 (soit dans les répertoires Doc, soit dans les fichiers readme (en français : lisez moi).
Pilote
drivers Alsa recompilés, via un deb http://people.canonical.com/~diwic/temp/alsa-hda-realtek-ignore-sku-dkms_1.0.23.diwic_all.deb
Soit alsa-driver
Fichiers de base inévitables : ce sont les pilotes !!!
Library
Soit alsa-lib
Autres fichiers de base, tout aussi inévitables, vous n'y couperez pas !
Utilities
Soit alsa-utils
Ce paquet contient les utilitaires pour ALSA. Il peut être compilé avec les pilotes ALSA et les librairies C ALSA. Indispensable pour contrôler le son !
Vous y trouverez :
- alsaconf - Le script de configuration des pilotes ALSA
- alsactl - L'utilitaire de configuration des cartes son
- aplay/arecord - L'utilitaire pour jouer et enregistrer les fichiers .wav,.voc,.au files
- amixer - Le contrôleur de son en ligne de commandes par la console
- alsamixer - Le contrôleur de son écrit avec les librairies ncurses
- amidi - L'utilitaire pour envoyer et recevoir les sysex dumps ou d'autres données MIDI
- iecset - L'utilitaire pour voir le status de IEC958
Lib-plugins
Soit alsa-plugins
Ceci vous donne accès à :
- A52 : Plugin de sortie A52, pour convertir le format linéaire S16 vers le format A52 et envoie le signal vers la sortie SPDIF. Il nécessite libavcodec pour encoder l'audio.
- Lavcrate : Plugin pour convertir le taux d'échantillonnage, il utilise libavcodec.
- Jack : Plugin JACK ←→ ALSA PCM. Il convertit L'API ALSA par dessus l'API JACK. Ce qui permet de faire fonctionner les application native ALSA avec jackd en lecture et enregistrement.
- Maemo : Ce plugin convertit l'API ALSA en protocole PCM. Tout comme JACK, il rend ALSA compatible avec le DSP PCM.
- Pcm-oss : Ce plugin rend compatible l'API ALSA avec l'API OSS. Ce qui permet de faire fonctionner les application native ALSA avec OSS en lecture.
- Pulse : Ce plugin permet les programmes utilisant ALSA d'accéder au démon PulseAudio en lecture et écriture. Il contient un plugin pour PCM et un plugin de contrôleur de son
- Samplerate : Utilisé pour convertir le taux d'échantillonnage avec Libsamplerate
- Speexrate : Utilisé pour convertir le taux d'échantillonnage avec Speex Resampler
- Upmix : Plugin qui permet de mixer un son de quatre voies en son de 6 voies
- Vdownmix : Plugin qui permet de mixer un son de 4-6 voies vers un son de 2 voies en stéréo
Tools
Soit alsa-tools
Cette section semble réservée aux anciennes cartes sons, et toujours mises à jour.
Ici vous trouverez :
- Ac3dec : Un décodeur gratuit de flux AC-3
- As10k1 : C'est l'assembleur pour les cartes à base de emu10k1 DSP présents dans les cartes son creative SB live, PCI 512, et emu APS
- Echomixer : Emixer est l'équivalent Linux de Echoaudio, pour gérer les cartes son Echoaudio.
- Envy24control : Outil de contrôle pour les cartes son à base de Envy24 (ice1712)
- Hdspmloader : Loader pour le firmeware pour les cartes sont à base de RME Hammerfall DSP
- Hdspmixer : HDSPMixer est l'équivalent Linux des applications Totalmix de RME, pour gérer les cartes son RME Hammerfall DSP
- Ld10k1 : Difficile d'utilisation, c'est le chargeur de patchs EMU10K1 (EMU10K2) pour ALSA. Nécessite au moins la version 1.0.7rc1 des alsa-lib ET des pilotes compilés dans le kernel)
- Mixartloader : Firmeware pour les cartes son à base de Digigram miXart
- Pcxhrloader : Firmeware pour les cartes son à base de Digigram pcxhr
- Qlo10k1 : Toujours en développement, plusieurs types d'interfaces graphiques pour ld10k1. Nécessite QT pour être compilé.
- Rmedigicontrol : Outil de contrôle pour les cartes son Digi32 et RME Digi96
- Sb16_csp : Nécessite les alsa-driver. Programme de contrôle pour les SB16
- Seq : Ceci est sbiload, un vieux chargeur d'instruments OPL2/3 FM. Nécessite le module snd-synth-opl3
- Sscape_tl : Un outil MIDI ALSA sscape ctl
- Us428control : Outil de contrôle pour les Tascam 428
- Usx2yloader : Firmeware pour la carte son USB Tascam USX2Y
- Vxloader : Outil de contrôle pour les cartes son Digigram VX
Firmware
Soit alsa-firmware
Le fichier de firmwares vous sont fournis… (en correspondance avec les pilotes fournis dans alsa-tools).
Donc pas grand chose à dire à part que si vous installez ces fichiers, vous aurez besoins des alsa-tools.
PyALSA
Soit pyalsa
PyALSA (Py pour Python, donc programmé en Python) est un pack d'interfaces graphiques tout nouveau pour les différents modules de ALSA. Encore en bêta, la première version finale n'est pas loin.
Etrangement (ou normalement vu qu'il est toujours en bêta ?), très peu d'informations dessus.
OSS Compat. Library
Soit alsa-oss
Ce sont les bons vieux alsa-oss ! (Open Sound System) Ils se trouvent dans synaptic. Ils servent à pouvoir lancer un programme qui utilise alsa avec un programme utilisant oss, et avoir du son dans les deux à la fois.
Si en théorie ça fonctionne, en pratique ce n'est pas toujours le cas, mais c'est le dernier recours pour ce problème de cohabitation alsa-oss.
Voué à disparaître avec oss ! (dans longtemps quand même)
Astuces
Bug programmes oss
Sur certains programmes on ne pourra tout de même pas entendre plusieurs sons quand ils sont lancés. Mais il existe une alternative, mais qui ne fonctionnera pas pour tous les programme dû à la vétusté du procédé. Il suffit d'installer le paquet synaptic alsa-oss. Ensuite, il suffit de lancer en mode console (ou de faire un petit lien sur le bureau : clique droit sur le bureau, créer un lanceur… puis mettre un nom et la commande qui vous intéresse) :
aoss nom-du-programme
J'ai essayé la méthode avec Firefox, ça fonctionne, mais avec d'autres programmes ce n'est pas dit. A vous d'essayer !
J'ai des erreurs à la compilation
Si jamais vous avez une erreur sur le ./configure, vérifiez d'avoir installé les librairies curses. Ensuite regardez les lignes comportant no, vous avez sûrement oublié quelque chose, et ça sera écrit dedans.
Si l'erreur se fait sur le make sans avoir d'erreur sur le ./configure, c'est plus problématique. Veuillez laisser un message sur le ALSA bugtracking system, ça permettra à tout le monde de profiter et vous aurez une réponse rapide des gens les plus compétents pour les problèmes sur les pilotes ALSA.
Une chose importante, si vous avez un problème sur une compilation, ça ne sert à rien de forcer, si le ./configure plante, le make et make install planteront forcément. Si le make plante, le make install plantera aussi.
Liens
Liens officiels
- Le SourceForge.net ALSA (en) : Encore un site pour vous aider.
- Le site ALSA (en) : Le site général.
- Le ALSA bugtracking system (en) : Pour demander de l'aide.
- Le wiki ALSA (en) : contient beaucoup d'informations détaillées sur l'état d'avancement des pilotes.
NE MARCHE PAS
Autres liens
Exemples de compilation
Vous êtes libres de rajouter des exemples à mettre après le ./configure pour vos cartes son, si elles sont exotiques ou mal documentées.
Exemple pour la sound blaster live 24! (pilotes ca0106)
Contributeurs : Acp.