Chapitre 16. Audio

Table des matières
16.1. Eléments matériels de base
16.2. Paramètres du BIOS
16.3. Configurer le périphérique audio
16.4. Configurer le périphérique audio
16.5. Commandes avancées

Contribution de Manolo De Santis

Ce chapitre est une rapide introduction à l'utilisation des périphériques audio sur NetBSD (qui voudrait d'un ordinateur muet ?)

16.1. Eléments matériels de base

Pour que votre système puisse jouer de l'audio, vous devez savoir de quelle carte audio il est muni. Malheureusement, il n'est souvent pas suffisant de connaitre la marque et le modèle, de nombreuses cartes étant équipées de puces fabriquées ailleurs. Connaitre ces puces peut donc parfois s'avérer utile. Le noyau de NetBSD reconnait de nombreuses puces et un rapide coup d'oeil à dmesg est généralement suffisant.

Tapez donc la commande :

# dmesg | more    

et recherchez votre carte. Si vous avez de la chance, vous n'aurez rien à faire car NetBSD détecte et configure tout seul de nombreuses cartes audio.

Parfois, l'audio ne fonctionne pas parce que la carte n'est pas gérée ou bien sa reconnaissance par NetBSD nécessite des manipulations de votre part. De nos jours, les cartes audio sont très bon marché et il vaut parfois la peine d'en acheter une autre. Toutefois, avant de le faire, essayez certaines choses permettant éventuellement de la faire reconnaitre par NetBSD.

16.2. Paramètres du BIOS

Cette section ne concerne que les possesseurs de PC i386. Les autres architectures (par exemple Amiga) ne possèdent pas cette caractéristique. La première chose importante à faire est de déterminer le type de bus sur lequel est branchée la carte.

Les interfaces les plus courantes sont ISA et PCI.

Les cartes ISA sont généralement plus délicates à configurer en raison de leur interaction avec le BIOS de l'ordinateur.

Sur les machines récentes (contruites après 1997) existent des options de BIOS qui causent de nombreux maux de têtes pour configurer les cartes audio ISA (et pas uniquement les cartes audio) : cette options est appelée " OS PNP Installé"  (le nom peut être différent sur votre BIOS). En règle générale, il vaut mieux la déctiver (la mettre sur " NON" ) pour NetBSD.

Note : Sur de nombreux systèmes, tout marche correctement même si cette option est activée. Cela dépend du système d'exploitation.

16.3. Configurer le périphérique audio

Pendant l'installation de NetBSD, les périphériques sont créés dans le répertoire /dev. Ceux qui nous intéressent sont :

/dev/audio
/dev/sound
/dev/mixer
    

S'ils ne sont pas présents, ils peuvent être créés avec :

# cd /dev
# ./MAKEDEV all
    

Cette commande crée tous les périphériques, dont les audio.

La carte audio est maintenant certainement prête à être utilisée sans travail supplémentaire.

Effectuons un test rapide en envoyant un fichier audio sur le périphérique (ces fichiers ont souvent l'extension .au). Si vous n'en avez pas, envoyez simplement un fichier texte ou binaire (évidemment, vous n'entendrez rien d'intelligible...). Utilisez /dev/audio ou /dev/sound :

# cat fichier > /dev/audio    

ou

# cat fichier > /dev/sound    

Si vous entendez quelque chose, c'est que votre carte est gérée et reconnue par NetBSD et qu'elle a été configurée par le noyau au démarrage. Autrement, vous devez configurer le noyau pour le périphérique audio installé (à condition que la carte et la puce soient gérées).

16.4. Configurer le périphérique audio

NetBSD gère une grande variété de cartes audio et le noyau GENERIC en active et configure la plupart.

De nombreux PC sont dépourvus de carte son mais possèdent une audio interne. Cela veut dire que la puce se trouve sur la carte mère. Ce cas n'est pas géré par le noyau GENERIC. Vous devez compiler votre propre noyau afin d'utiliser cette puce. Recherchez les lignes suivantes (ou similaires) dans le fichier GENERIC :

# Plug-and-Play BIOS and attached devices
 
#pnpbios*       at mainbus?
  
# mainboard audio chips 
#ess*           at pnpbios? index ?     # ESS AudioDrive
#sb*            at pnpbios? index ?     # NeoMagic 256AV in sb mode
#wss*           at pnpbios? index ?     # NeoMagic 256AV in wss mode
#ym*            at pnpbios? index ?     # OPL3-SA3    

Décommentez (effacez le # de) la ligne " pnpbios"  ainsi que celle décrivant le périphérique de votre carte mère.

Note : lorsque vous créez votre noyau personnel, travaillez sur une copie du fichier GENERIC, comme décrit dans Chapitre 7.

Il est parfois nécessaire de paramètrer manuellement l'IRQ et DMA du périphérique.

Si vous rencontrez encore des problèmes, essayez d'activez tous les périphériques. Certaines cartes audio peuvent fonctionner en émulant une autre carte.

De nombreuses puces font usage de la compatibilité SoundBlaster et OPL mais la plupart fonctionnent avec l'émulation WSS.

OPL est un synthétiseur MIDI produit par Yamaha. Il en existe plusieurs variantes (OPL2, OPL3SA, OPL3SA2, etc...). De nombreuses cartes audio dépendent de ce composant ou d'un compatible. Par exemple, les puces produites par Crystal (dont la commune CS423x) le possèdent, raison pour laquelles elles fonctionnent avec NetBSD.

WSS n'est pas une micro-puce, c'est l'abréviation de Windows Sound System. Il s'agit aussi du pilote de NetBSD qui gère le système audio de Microsoft Windows. De nombreuses cartes audio fonctionnent avec Windows car elles adhèrent à cette norme (WSS). Il en va de même pour NetBSD.

Parmi les nombreuses cartes que j'ai testées avec NetBSD, la plupart fonctionnent si opl* et wss* sont actifs dans le noyau.

Vous n'aurez aucun problèmes à faire marcher une Creative SoundBlaster avec NetBSD: presques toutes sont gérées, dont la Sound Blaster Live 1024 !

Une fois que tout fonctionne correctement, vous pouvez désactiver du noyau les périphériques dont vous n'avez pas besoin.

16.5. Commandes avancées

NetBSD connait quelques commandes concernant l'audio. Ce sont :

16.5.1. audioctl

Audioctl est apparu avec NetBSD 1.3. Elle sert à paramètrer manuellement certaines variables E/S comme la fréquence de lecture et d'enregistrement. La liste des variables accessibles s'affiche avec :

# audioctl -a | more      

Par exemple, pour écouter une musique avec la qualité CD, tapez :

# audioctl -w play=44100,2,16,slinear_le      

Cette commande met la fréquence à 44100Hz, sur 2 canaux, 16 bits, encodage slinear_le.

Les encodages reconnus sont listés avec :

# audioctl encodings      

Cette commande affiche tous les encodages gérés par la carte audio de votre système.

16.5.2. mixerctl

Cette commande sert à configurer le mixage audio. Son interface est similaire à celle de audioctl.

16.5.3. audioplay

Cette commande sert à jouer des fichiers audio. Pour des besoins plus sophistiqués, vous pouvez installer l'un des nombreux programmes du système de paquetages, qui vous permettra de lire différents formats (MP3...).

16.5.4. audiorecord

Sans surpise, cette commande sert à enregistrer des fichiers audio.