16.2. Configurer une carte son

Contribution de Moses Moore.

16.2.1. Déterminer le bon périphérique

Avant que vous commenciez, vous devriez connaître le modèle de carte son que vous avez, la puce qu'elle utilise, et si c'est une carte PCI ou ISA. FreeBSD supporte une grande variété de cartes PCI et ISA. Si vous ne voyez pas votre carte dans la liste suivante, consultez la page de manuel pcm(4). Ce n'est pas une liste complète, cependant elle énumère certaines des cartes les plus courantes.

Pour utiliser votre carte son, vous devrez charger le pilote de périphérique approprié. Cela peut être fait de deux façons. La plus simple est de charger le module pour votre carte son avec kldload(8), ce qui peut être soit fait à partir de la ligne de commande:

# kldload snd_emu10k1.ko

soit en ajoutant la ligne appropriée dans le fichier /boot/loader.conf comme cela:

snd_emu10k1_load="YES"

Ces exemples concernent la carte Creative SoundBlaster Live!. Les autres modules son chargeables sont listés dans /boot/defaults/loader.conf.

Sinon, vous pouvez compiler le support pour votre carte son en statique dans votre noyau. Les sections ci-dessous fournissent les informations nécessaires pour ajouter le support de votre matériel de cette manière. Pour plus d'informations au sujet de la recompilation de votre noyau, veuillez consulter le Chapitre 9.

16.2.1.1. Cartes son Creative, Advance, et ESS

Si vous avez une de ces cartes, vous devrez rajouter:

device pcm

à votre fichier de configuration du noyau. Si vous avez une carte ISA PnP, vous aurez également besoin d'ajouter:

device sbc

Pour une carte ISA non-PnP, ajouter:

device pcm
device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15

à votre fichier de configuration du noyau. Les valeurs données ci-dessus sont celles par défaut. Vous aurez peut-être à changer l'IRQ ou d'autres valeurs en fonction de votre carte. Voir la page de manuel sbc(4) pour plus d'informations.

Note : La carte Sound Blaster Live n'est pas supportée sous FreeBSD 4.0 sans un correctif, ce dont ne parlera pas cette section. Il est recommandé que vous mettiez à jour votre système jusqu'à la tout dernière -STABLE avant d'essayer d'utiliser cette carte.

16.2.1.2. Cartes Gravis UltraSound

Pour une carte ISA non-PnP, vous devrez ajouter:

device pcm
device gusc

à votre fichier de configuration du noyau. Si vous avez une carte ISA non-PnP, vous devrez rajouter:

device pcm
device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13

à votre fichier de configuration du noyau. Vous aurez peut-être à changer l'IRQ ou d'autres valeurs en fonction de votre carte. Voir la page de manuel gusc(4) pour plus d'informations.

16.2.1.3. Cartes son Crystal

Pour les cartes son Crystal, vous devrez ajouter:

device pcm
device csa

à votre fichier de configuration du noyau.

16.2.1.4. Support générique

Pour des cartes ISA PnP ou PCI, vous devrez ajouter:

device pcm

à votre fichier de configuration du noyau. Si vous avez une carte son ISA non-PnP qui n'a pas de pilote de ``bridge'', vous devrez ajouter:

device pcm0 at isa? irq 10 drq 1 flags 0x0

à votre fichier de configuration du noyau. Vous aurez peut-être à changer l'IRQ ou d'autres valeurs en fonction de votre carte.

16.2.1.5. Carte son intégrée

Certains systèmes avec la carte son intégrée à la carte mère auront peut-être besoin de l'option suivante dans votre configuration de noyau:

options PNPBIOS

Note : Si vous utilisez FreeBSD 5.0 ou une version suivante l'option PNPBIOS est inutile. Cette option n'existe plus et la fonctionnalité est constamment activée.

16.2.2. Créer et tester les fichiers spéciaux de périphérique

Après avoir redémarré, ouvrez une session et recherchez le périphérique dans le fichier /var/run/dmesg.boot comme montré ci-dessous:

# grep pcm /var/run/dmesg.boot
pcm0: <SB16 DSP 4.11> on sbc0

Le résultat pourra être différent sur votre système. Si aucun périphérique pcm n'apparaît, quelque chose s'est mal passée plus tôt. Si cela se produit, retournez à votre fichier de configuration du noyau et vérifiez que vous avez choisi le périphérique correct. Les problèmes courants sont listés dans la Section 16.2.2.1.

Note : Si vous utilisez un FreeBSD 5.0 ou suivant, vous pouvez sans risque passer le reste de cette section. Ces versions utilisent devfs(5) pour créer automatiquement les fichiers spéciaux de périphériques.

Si la commande précédente a donné pcm0, vous devrez faire en tant que root ce qui suit:

# cd /dev
# sh MAKEDEV snd0

Si la commande a donné pcm1, suivez les mêmes étapes qu'au-dessus, en remplaçant snd0 par snd1.

Note : Les commandes précédentes ne créeront pas un périphérique /dev/snd!

MAKEDEV créera un ensemble de fichiers de périphérique, dont:

Périphérique Description
/dev/audio Périphérique audio Sparc® compatible
/dev/dsp Processeur de signaux numériques
/dev/dspW Comme /dev/dsp, mais avec 16 bits par échantillons
/dev/midi Périphérique d'accès MIDI
/dev/mixer Port de contrôle du mélangeur
/dev/music Interface de niveau 2 du séquenceur
/dev/sequencer Séquenceur
/dev/pss Interface programmable

Si tout va bien, vous devriez avoir maintenant une carte son qui fonctionne. Si votre lecteur de CD-ROM ou de DVD-ROM est correctement relié à votre carte son, vous pouvez introduire un CD dans le lecteur et le jouer avec cdcontrol(1):

% cdcontrol -f /dev/acd0c play 1

Diverses applications, comme audio/workman offrent une meilleure interface. Vous pouvez vouloir installer une application comme audio/mpg123 pour écouter des fichiers audio MP3.

16.2.2.1. Problèmes courants

Erreur Solution
``unsupported subdevice XX''

Un ou plusieurs fichiers spéciaux de périphérique n'ont pas été créés correctement. Répétez les étapes précédentes.

``sb_dspwr(XX) timed out''

Le port d'E/S n'est pas configuré correctement.

``bad irq XX''

L'IRQ sélectionnée est incorrecte. Vérifiez que l'IRQ choisie et l'IRQ de la carte son sont les mêmes.

``xxx: gus pcm not attached, out of memory''

Il n'y a pas suffisamment de mémoire disponible pour utiliser ce périphérique.

``xxx: can't open /dev/dsp!''

Vérifiez avec la commande fstat | grep dsp si une autre application maintient le périphérique ouvert. Souvent à l'origine de ce type de problème on trouve esound et le support son de KDE.

16.2.3. Utiliser des sources sonores multiples

Contribution de Munish Chopra.

Il est souvent intéressant de pouvoir jouer simultanément du son à partir de multiples sources, comme lorsque esound ou artsd ne supportent pas le partage du périphérique son avec certaines applications.

FreeBSD vous permet de le faire par l'intermédiaire de Canaux Sonores Virtuels, qui peuvent être configurés avec la fonction sysctl(8). Les canaux virtuels vous permettent de multiplexer les canaux de sortie de votre carte son en mixant le son au niveau du noyau.

Pour configurer le nombre de canaux virtuels, il existe deux paramètres de sysctl qui, si vous avez les privilèges de l'utilisateur root, peuvent être configurés comme ceci:

# sysctl hw.snd.pcm0.vchans=4
# sysctl hw.snd.maxautovchans=4

L'exemple ci-dessus alloue quatre canaux virtuels, ce qui est un nombre suffisant pour une utilisation classique. hw.snd.pcm0.vchans est le nombre de canaux virtuels que possède pcm0, et est configurable une fois que le périphérique a été attaché au système. hw.snd.maxautovchans est le nombre de canaux virtuels alloués à un nouveau périphérique audio quand il est attaché à l'aide de kldload(8). Comme le module pcm peut être chargé indépendamment des pilotes de périphériques, hw.snd.maxautovchans peut stocker combien de canaux virtuels seront alloués à chaque périphérique attaché par la suite.

Si vous n'utilisez pas devfs(5), vous devrez faire pointer vos applications sur /dev/dsp0.x, où x est 0 à 3 si hw.snd.pcm.0.vchans est fixé à 4. Sur un système utilisant devfs(5), ce qui précède sera automatiquement effectué de façon transparente pour l'utilisateur.

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.