Améliorer sa configuration | Carte son


Dernière mise à jour: 12-09-2000

Configuration des Périphériques Menu: Configurer et Améliorer son Système Index Linux Configurer les éditeurs

Configuration de la carte son

Pour une RedHat vous pouvez utiliser "sndconfig" , en mode console ou dans un xterm, tapez sndconfig pour lancer l'utilitaire de configuration de la carte son .

Avec la Slackware nous verrons comment configurer manuellement la carte son, car l'utilitaire "sndconfig" n'est pas inclus dans cette distribution .

Pour configurer une carte ISA PnP il faut utiliser les outils "pnpdump" et "isapnp", nous verrons comment dans la configuration manuelle de la Slackware : c'est identique sous RedHat .



Les cartes son reconnues sous Linux :

                    - Aced Notebook Sound 
                    - AdLib 
                    - Advance Logic ALS-001, ALS-007, ALS-100, ALS-110, ALS 120 
                    -Aztech Sound Galaxy 
                    -AD1816(A) based cards 
                    -Compaq Deskpro XL sound 
                    -Creative/Ensoniq AudioPCI 97(ES1371) 
                    -Crystal CS4232. 
                    -Ensoniq AudioPCI 1370(SoundBlaster 64/128 PCI) 
                    -Ensoniq SoundScape 
                    -ESS 688/1688/1868 AudioDrive, Tech Maestro 
                    -Gravis UltraSound MAX/PnP 
                    -Logitech SoundMan Games(not SM16 or SM Wave) 
                    -MediaTrix AudioTrix Pro 
                    -MediaVision Jazz16 (ProSonic, SoundMan Wave) 
                    -Microsoft Sound System(D1848/CS4248/CS4231) 
                    -Mozart/MAD16 (OPTi 82C928) 
                    -MAD16 Pro (OPTi 82C929/82C930) 
                    -miroSOUND PCM12 
                    -OPL3-SA1 sound chip 
                    -OPL3-SA2/3/x sound chip 
                    -Pro Audio Spectrum/Studio 16, Logitech SoundMan 16 
                    -PSS (AD1848, ADSP-2115, ESC614) 
                    -S3 Sonic Vibes 
                    -SoundBlaster (SB 16/32/64, DS, ESS, Jazz16, Live, or SB clone) 
                    -Turtle Beach MultiSound Classiq, Tahiti, Monterey, Pinnacle, Fiji 
                    -Turtle Beach WaveFront(Tropez Plus, Tropez, Maui) 
                    -VIA 82C686 Audio 
                    -Yamaha OPL3-SA1, OPL3-SA2, SA3 and SAx 

Vérification :

Pour vérifier si votre carte est installée, tapez :
cat /dev/sndstat
OSS/Free:3.8s2++-971130
Load type: Driver loaded as a module
Kernel: Linux lmiche.lmsoft.fr 2.2.5-22smp #1 SMP Wed Jun 2 09:11:51 EDT 1999 i686
Config options: 0

Installed drivers: 

Card config: 

Audio devices:
0: Sound Blaster 16 (4.13) (DUPLEX)

Synth devices:
0: Yamaha OPL3

Midi devices:
0: Sound Blaster 16

Timers:
0: System clock

Mixers:
0: Sound Blaster
Et si vous obtenez quelque chose de similaire, alors vous pouvez appliquer un "chmod 666" sur /dev/dsp, /dev/audio, /dev/mixer ... pour que tous les utilisateurs puissent accéder à ces périphériques et se servir des utilitaires audio et multimédia .
Et vôtre carte son doit fonctionner !
Pour tester vôtre carte, vous pouvez jouer un fichier wav, pour savoir où trouver un fichier audio au format wav sur votre système, tapez la commande "find -name *.wav", puis par exemple si vous avez un fichier test.wav dans le répertoire /usr/share/sounds, tapez :
play /usr/share/sounds/test.wav

Pour vérifiez si /dev/audio existe:
ls -l /dev/audio
crw-rw-rw-   1 root     sys       14,   4 mai  5  1998 /dev/audio

Pour vérifier si les modules audio sont chargés :
lsmod
Module           Pages     Used by
opl3               3            0
sb                 6            0
uart401            2    [sb]    0
sound             15    [opl3 sb uart401]       0


utilisation de sndconfig :

En mode console ou dans un xterm :
Après avoir tapez sndconfig , une fenêtre apparaît vous indiquant qu'une détection de la carte va être lancée, appuyez sur [ Enter ] et ensuite suivez les instructions .
Si vous possédez une carte PnP et que l'installation avec "sndconfig" échoue, alors utilisez "pnpdump" pour configurer votre carte et "isapnp" pour initialiser la carte (voir ci-dessous), puis lancez à nouveau "sndconfig" avec la commande :
sndconfig --noprobe


Configuration manuelle pour la Slackware :

Rappel :
Avant de configurer la carte son, pour que vous compreniez mieux la gestion des modules et le fonctionnement des cartes PnP sur votre Slackware, nous allons voir comment s'initialise le système
je vais essayer de vous en faire une description simple et rapide .

Démarrage du système
Le premier fichier qui va initialiser votre Slackware est /etc/inittab qui à son tour va lancer d'autres scripts d'initialisation contenus dans le répertoire /etc/rc.d/
inittab par defaut lance le mode "Multi Users" (niveau 3)
rc.S initialise le système
rc.M lance les différents scripts
REGARDEZ le CONTENU de ces 3 SCRIPTS , cela vous apprendra beaucoup sur le fonctionnement de votre Slackware :
TOUT COMMENCE PAR LA !!!

Le noyau Linux est modulaire ce qui permet de lui ajouter des modules en fonction des besoins comme par exemple le pilote de la carte audio .
Pour la gestion de ces modules vous pouvez utiliser le démon "kerneld" qui va se charger d'ajouter le module au noyau lorsqu'il est nécessaire et l'enlever lorsqu'il est inutilisé .
Une autre méthode pour ajouter le module au noyau est d'utiliser /sbin/modprobe mais dans ce cas le module reste en permanence dans le noyau et occupe des resources même s'il n'est plus utilisé.
La commande /sbin/lsmod permet de voir les modules ajoutés au noyau .
Pour que "kerneld" charge le module qui gère la carte son, il a besoin du nom des modules et de leurs paramètres (options), contenus dans le fichier par défaut /etc/modules.conf , ou /etc/conf.module .

_Le fichier /etc/rc.d/rc.modules
Pour que les modules soient chargés au démarrage, il faut que "kerneld" soit lancé, cela ce fait avec le script /etc/rc.d/rc.S ou le script /etc/rc.d/rc.modules.
Vous devez donc editer le fichier /etc/rc.d/rc.modules et enlever les # pour obtenir :
if [ -x /sbin/kerneld ]; then
/sbin/kerneld
fi

...ATTENTION ! Ces lignes peuvent déjà être actives dans /etc/rc.d/rc.S, dans ce cas vous n'avez pas besoin de les ajouter dans /etc/rc.d/rc.modules .

Ce fichier rc.modules offre la possibilité de ne pas utiliser "kerneld" mais de charger vos modules avec /sbin/modprobe :
N'effacez aucune ligne, ajoutez simplement un # au début de la ligne à désactiver et insérrez une nouvelle ligne avec vos paramètres .
Ne modifiez pa non plus l'odre de chargement des modules c'est très important car par exemple le module du JoyStick ne peut être chargé avant celui de la carte son dont il dépend !
LISEZ ATTENTIVEMENT les COMMENTAIRES de ce fichier .
LIRE aussi la DOC dans /usr/doc/modules
Au "boot" de votre machine une ligne comme : "Remounting the root device ..." , vous indique que rc.S est lancé .
Ensuite il ne reste plus qu'a taper la commande /sbin/lsmod pour vérifier si vos modules sont chargés .

_Le fichier /etc/modules.conf (ou conf.modules)
#/etc/modules.conf
alias net-pf-4 off
alias net-pf-5 off
alias sound sb
pre-install sound insmod sound dmabuf=1
alias midi opl3
options opl3 io=0x388
options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
# fin

Pour résumer :
_kerneld utilise le fichier modules.conf ou conf.modules pour charger le module de votre carte son.
_pour activer kerneld enlever les # dans le fichier rc.modules ou dans le fichier rc.S
_pour ne pas utiliser kerneld, enlever les # dans rc.modules des lignes correspondantes à vos modules et y ajouter les paramètres (options) nécéssaires .

... Voilà pour les modules ..!

Certaines versions (anciennes) du noyau incluent, à la fin du fichier README, un script pour la création des périphériques (/dev) : Ce fichier se trouvent dans le sous-répertoire /drivers/sound/ des sources du noyau .


Utilisation de pnpdump et isapnp :

_ Vous avez une carte ISA PnP :
En mode console ou dans un xterm, tapez :
pnpdump > /etc/isapnp.conf
Cela va créer le fichier /etc/isapnp.conf qui sera utilisé pour initialiser vôtre carte PnP (Plug and Play).

Je vais prendre comme exemple une carte ESS1868 PnP Audiodrive, très souvent utilisée par les assembleurs pour remplacer une Sound Blaster .
Cette carte ess1868 pnp utilise un processeur (chip) ES1868 et dans notre exemple elle utilise le port 220 (io=0x220) l'interruption 5 (irq=5) et le canal DMA 1 (dma=1).
Le module pour gérer cette carte sera celui de la SoundBlaster, "sb.o" .
Vous devez maintenant éditer le fichier /etc/isapnp.conf pour définir les paramètres de la carte, dans notre cas : io=0x220 irq=5 dma=1
_Le fichier isapnp.conf
Pour initialiser correctement la carte, il faut donc que le fichier /etc/isapnp.conf contienne les mêmes valeurs de paramètres(options) que ceux du module définis dans le fichier /etc/modules.conf .
chaque configuration possible (choix) commence par la ligne :
# Start dependent functions: priority acceptable
et comme l'indique cette ligne :
# Multiple choice time, choose one only !
parmis ces choix vous ne devez en utilisez q'un seul !
Ces choix sont déterminés en fonction de l'adresse I/O, ici 0x220
Il reste donc à déterminer si vous utilsez un seul canal DMA (DMA 0) ou 2 canaux (DMA 0) plus (DMA 1) , si vous voulez utiliser l'émulation (synthé) opl3 Yamaha (IO 2) et/ou mpu Roland (IO 1) .
Et pour terminer il faut enlever le # devant (ACT Y) active=yes !
Enlever les # en début des lignes correspondantes à vos paramètres , pour obtenir quelque chose comme :
#/etc/isapnp.conf
#
# $Id: pnpdump.c,v 1.18 1999/02/14 22:47:18 fox Exp $
# This is free software, see the sources for details.
# This software has NO WARRANTY, use at your OWN RISK
#
# For details of this file format, see isapnp.conf(5)
#
# For latest information and FAQ on isapnp and pnpdump see:
# http://www.roestock.demon.co.uk/isapnptools/
#
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER -DABORT_ONRESERR
#
# Trying port address 0203
# Board 1 has serial identifier 27 ff ff ff ff 68 18 73 16

# (DEBUG)
(READPORT 0x0203)
(ISOLATE PRESERVE)
(IDENTIFY *)
(VERBOSITY 2)
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING

# Card 1: (serial identifier 27 ff ff ff ff 68 18 73 16)
# Vendor Id ESS1868, No Serial Number (-1), checksum 0x27.
# Version 1.0, Vendor version 1.0
# ANSI string -->ESS ES1868 Plug and Play AudioDrive<--
# $Id: pnpdump.c,v 1.15a 1998/05/25 17:22:16 fox Exp $
# This is free software, see the sources for details.
# This software has NO WARRANTY, use at your OWN RISK
#
(CONFIGURE ESS1868/-1 (LD 1

(DMA 0 (CHANNEL 1))
(INT 0 (IRQ 5 (MODE +E)))
(IO 0 (SIZE 16) (BASE 0x0220))
(IO 1 (SIZE 4) (BASE 0x0388))
(IO 2 (SIZE 2) (BASE 0x0330))

 (NAME "ESS1868/-1[1]{ESS ES1868 Plug and Play AudioDrive}")
  (ACT Y)
))

Le fichier /etc/conf.modules (ou /etc/modules.conf) doit définir les options du module, ici sb.o :

alias sound sb
pre-install sound insmod sound dmabuf=1
alias midi opl3
options opl3 io=0x388
options sb io=0x220 irq=5 dma=1 mpu_io=0x330
Lire le Sound-HOWTO et la doc du répertoire /usr/src/linux/Documentation/ pour savoir quel module utiliser, dans le cas ou sb.o ne fonctionne pas avec vôtre carte son.

vous trouverez un exemple de fichier /etc/isapnp.conf pour la ES1868 PnP  et la SB 16 PnP .

Une carte Pnp à besoin d'être initialisée avec les valeurs (options) indiquées dans le fichier /etc/conf.modules, ou pour une Slackware dans le fichier modules.conf ou dans le script rc.modules si vous n'utilisez pas kerneld, pour cela le système va utiliser /etc/isapnp.conf pour envoyer les paramètres d'initialisation à la carte avec la commande: isapnp /etc/isapnp.conf

Enfin, il faut que ces commandes soient lancées au démarrage du système :

Pour Slackware :
Le script /etc/rc.d/rc.S va se charger d'initialiser la carte et de charger le module :
_Soit vous enlevez les # des lignes correspondantes à vos paramètres dans le fichier rc.S (System Initialisation)
_Soit vous ajoutez de nouvelles lignes contenant vos valeurs dans le fichier rc.S si elles ne s'y trouvent pas .

La commande isapnp /etc/isapnp.conf doit préceder le lancement du script rc.modules .

Pour RedHat :
Vous avez uniquement à définir les valeurs des paramètres de vôtre carte dans le fichier /etc/conf.modules , si sndconfig ne l'a pas fait .

SI vôtre CARTE n'est PAS PNP il est INUTILE de CONFIGURER isapnp.conf

Vous pouvez initialiser vôtre carte avec la commande :
isapnp /etc/isapnp.conf
Vous pouvez charger le module avec la commande :
/sbin/modprobe -k sb io=0x220 irq= 5 dma=1 mpu_io=0x330

Il ne reste plus qu'à Vérifier et tester vôtre carte son


Note:
Il est important que les cartes PnP soient initialisées si vous utilisez Windows avec Linux :
Lorsque vous envoyez la commande : /sbin/modprobe -k sb io=0x220 irq= 5 dma=1 mpu_io=0x330 , la carte utilisera ces valeurs uniquement si elle a été initialisée avec :
I/O 220
IRQ 5
DMA 1
Lorsque vous installez ou modifiez les valeurs des paramètres d'une carte sous Windows, ces valeurs seront différentes de celles utilisées par la carte sous Linux , il faut donc que le système au démarrage de Linux puisse utiliser le fichier /etc/isapnp.conf pour rétablir les valeurs .



haut de page