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. Consultez la liste des périphériques audio supportés des notes de compatibilité matériel pour voir si votre carte est supportée. Ces notes indiqueront également quel pilote supporte votre carte.
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
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
. Si vous
n'êtes pas sûr du pilote à utiliser, vous
pouvez tenter de charger le pilote
snd_driver
:
#
kldload snd_driver
C'est un méta-pilote
chargeant directement les pilotes les plus courants. Cela
accélère la recherche du pilote
adapté. Il est également possible de charger
l'intégralité des pilotes de cartes son en
utilisant le système
/boot/loader.conf
.
Si vous voulez connaître le pilote
sélectionné lors du chargement du
méta-pilote snd_driver
, vous pouvez
consulter le fichier /dev/sndstat
à
cet effet, et cela à l'aide de la commande cat
/dev/sndstat
.
Une seconde méthode est de compiler le support pour votre carte son en statique dans votre noyau. La section ci-dessous fournit 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 8, Configurer le noyau de FreeBSD.
La première chose à effectuer est d'ajouter au noyau le pilote de périphérique audio générique sound(4); pour cela vous devrez ajouter la ligne suivante au fichier de configuration du noyau:
device sound
Ensuite, vous devez ajouter le support pour votre carte son. Par conséquent, vous devez savoir quel pilote supporte la carte. Consultez la liste des périphériques audio supportés des notes de compatibilité matériel pour déterminer le pilote correct pour votre carte son. Par exemple, une carte son Creative SoundBlaster® Live! est supportée par le pilote snd_emu10k1(4). Pour ajouter le support pour cette carte, utilisez ce qui suit:
device snd_emu10k1
Assurez-vous de lire la page de manuel du pilote pour la
syntaxe à utiliser. La syntaxe de la configuration
du noyau pour chaque pilote de carte son supportée
peut être également trouvée dans
le fichier /usr/src/sys/conf/NOTES
.
Les cartes son ISA non-PnP pourront nécessiter de
fournir au noyau des informations sur le paramétrage de
la carte (IRQ, port d'E/S, etc.), comme c'est en général le
cas pour toutes les cartes ISA non-PnP. Cela s'effectue par
l'intermédiaire du fichier
/boot/device.hints
. Au démarrage
du système, le chargeur (loader(8)) lira ce
fichier et passera les paramètres au noyau. Par
exemple, une vieille carte ISA non-PnP Creative SoundBlaster®
16 utilisera le pilote snd_sbc(4) de paire avec snd_sb16
, on ajoutera alors la ligne suivante
au fichier de configuration du noyau:
device snd_sbc device snd_sb16
avec également ceci dans le fichier
/boot/device.hints
:
hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15"
Dans ce cas, la carte utilise le port d'E/S
0x220
et l'IRQ 5
.
La syntaxe utilisée dans le fichier
/boot/device.hints
est abordée
dans la page de manuel du pilote sound(4) ainsi que celle
du pilote spécifique à la carte son.
Les paramètres donnés ci-dessus sont ceux par défaut. Dans certains cas, vous pouvez avoir besoin de modifier l'IRQ ou tout autre paramètre en fonction de votre carte son. Consultez la page de manuel snd_sbc(4) pour plus d'informations au sujet de cette carte.
Après avoir redémarré avec le noyau modifié, ou après avoir chargé le module nécessaire, la carte son devrait apparaître dans le tampon des messages du système (dmesg(8)) d'un manière proche de la suivante:
pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Cirrus Logic CS4205 AC97 Codec>
L'état de la carte son peut être
contrôlée par l'intermédiaire du fichier
/dev/sndstat
:
#
cat /dev/sndstat
FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default)
Le résultat pourra être différent sur
votre système. Si aucun périphérique
pcm
n'apparaît, retournez en
arrière et revoyez ce qui a été fait
précédemment. Contrôlez à nouveau 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 7.2.2.1, « Problèmes courants ».
Si tout va bien, vous devriez avoir maintenant une carte son qui fonctionne. Si la sortie audio de votre lecteur de CD-ROM ou de DVD-ROM est correctement reliée à votre carte son, vous pouvez introduire un CD dans le lecteur et le jouer avec cdcontrol(1):
%
cdcontrol -f /dev/acd0 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.
Une autre méthode
rapide pour tester la carte est d'envoyer des données au
/dev/dsp
, de la manière
suivante:
%
cat filename > /dev/dsp
où filename
peut
être n'importe quel fichier. Cette ligne de commande
devrait produire des sons, confirmant le bon fonctionnement de
la carte son.
Les niveaux du mixer de la carte son peuvent être modifiés par la commande mixer(8). Plus de détails peuvent être trouvés dans la page de manuel mixer(8).
Erreur | Solution |
---|---|
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
|
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 activés avec la fonction sysctl(8). Les canaux virtuels vous permettent de multiplexer la 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.
Vous ne pouvez pas modifier le nombre de canaux virtuels pour un périphérique en cours d'utilisation. Quittez avant tout autre chose les programmes utilisant le périphérique en question, comme les lecteurs de fichiers sonores ou les « daemons » audios.
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 le programme qui
réclame le périphérique
/dev/dsp0
.
Les valeurs par défaut du mixeur des
différents canaux sont fixées en dur dans le
code source du pilote pcm(4). Il existe plusieurs
applications et “daemons” qui vous permettent de
fixer les valeurs du mixeur qui seront mémorisées entre
chaque invocation, mais
ce n'est pas une solution idéale. Il est possible
régler les valeurs par défaut au niveau du
pilote — ceci se fait en définissant les valeurs
adéquates dans le fichier
/boot/device.hints
. Par exemple:
hint.pcm.0.vol="50"
Cela fixera le volume du canal à une valeur par défaut de 50; dès que le module pcm(4) est chargé.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://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>.