Il existe deux façons d'utiliser les modules Alsa. Je préfère personnellement utiliser la méthode manuelle, à savoir insérer le gestionnaire au démarrage. Les gestionnaires Alsa sont conçus pour être chargeables et déchargeables à volonté -- par exemple ils ne réinitialisent pas le mixer au chargement -- donc vous pouvez facilement utiliser l'approche kerneld.
Note : si vous avez une carte son PnP, vous devez tout d'abord la configurer aux bons IO/IRQ/DMA (ou au moins à des valeurs connues). Consultez le Plug-and-Play-HOWTO. Avez-vous configuré votre carte PnP ? Bien, alors poursuivons. Le plus dur est de faire "modprobe snd-<carte son>". Cela devrait faire l'affaire. Notez que toutes les distributions ne mettent pas /sbin dans le PATH. Si vous obtenez "bash: modprobe: command not found", cela signifie probablement que modprobe n'est pas dans votre path. Essayez "/sbin/modprobe snd-sb16", ou tâchez de trouver l'utilitaire modprobe quelque part.
La plus grosse difficulté vient des chipsets Crystal, que les gestionnaires Alsa ne détectent pas automatiquement. Des informations plus récentes peuvent être trouvées dans le fichier INSTALL du répertoire alsa-driver. Deux exemples, puis une liste :
Gravis UltraSound (GUS) et compatibles :
/sbin/modprobe snd-gusclassic
Pour toutes les cartes 16 bit compatibles Soundblaster (SoundBlaster 16 (PnP), SoundBlaster AWE 32 (PnP), SoundBlaster AWE 64 PnP) :
/sbin/modprobe snd-sb16
modprobe snd-gusextreme
modprobe snd-gusmax
modprobe snd-audiodrive1688
Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32 et toute autre
carte son basée sur un chipset AMD InterWave (tm).
modprobe snd-interwave
UltraSound 32-Pro (carte produite par STB, utilisée par Compaq) et toute autre
carte son basée sur un chipset AMD InterWave (tm) avec un circuit TEA6330T pour
un contrôle étendu des volumes grave, aigu et principal.
modprobe snd-interwave-stb
Cartes Soundblaster 8 bits (SoundBlaster 1.0, SoundBlaster 2.0, SoundBlaster
Pro)
modprobe snd-sb8
Cartes SoundBlaster 16 bits (SoundBlaster 16 (PnP), SoundBlaster AWE
32 (PnP), SoundBlaster AWE 64 PnP. Attention, ce module ne supporte pas la carte
SoundBlaster VibraX16.
modprobe snd-sb16
Un "modprobe snd-opl3sa" ne fonctionnera pas, ce gestionnaire ne faisant pas de détection automatique. Voyez plus loin.
Cartes S3 SonicVibes PCI (PINE Schubert 32 PCI).
modprobe snd-sonicvibes
Cartes Ensoniq AudioPCI ES1370/1371 PCI (SoundBlaster PCI 64)
modprobe snd-audiopci
Toutes les cartes à base de chipset CS4232/CS4232A. Un "modprobe snd-card-cs4232" ne fonctionnera pas, ce gestionnaire ne faisant pas de détection automatique. Voyez plus loin.
Toutes les cartes à base de chipset CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239. Un "modprobe snd-card-cs4236" ne fonctionnera pas, ce gestionnaire ne faisant pas de détection automatique. Voyez plus loin.
Si vous avez un gestionnaire n'effectuant pas de détection automatique, vous devez fournir des informations supplémentaires pour que le gestionnaire fonctionne. Vous pourrez trouver plus d'informations dans le fichier INSTALL du répertoire alsa-driver.
D'après le fichier INSTALL, vous devez fournir toutes les informations suivantes pour ce gestionnaire. Si vous avez initialisé la carte avec les isapnptools, vous pouvez probablement trouver ces informations dans le fichier /etc/isapnp.conf :
snd_port - port de contrôle de l'OPL3-SA
snd_wss_port - port WSS de l'OPL3-SA (0x530,0xe80,0xf40,0x604)
snd_midi_port - port de l'UART MPU-401 (0x300,0x330), -1 pour désactiver
snd_fm_port - port FM de l'OPL3-SA (0x388), -1 pour désactiver
snd_irq - IRQ de l'OPL3-SA (5,7,9,10)
snd_dma1 - canal DMA 1 de l'OPL3-SA (0,1,3)
snd_dma1_size - taille de la mémoire tampon du DMA 1 en Ko (4-64Ko)
snd_dma2 - canal DMA 2 de l'OPL3-SA (0,1,3), -1 si aucun
snd_dma2_size - taille de la mémoire tampon du DMA 2 en Ko (4-64Ko)
Lancez un "modprobe snd-opl3sa snd_port=0xNNN snd_wss_port=0x530 snd_midi_port=-1
snd_fm_port=0x388 snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN"
pour charger ce gestionnaire (sans support midi). Je reste convaincu que le
support midi n'est nécessaire que pour connecter des synthétiseurs etc. à une
machine Linux. Je n'ai jamais eu besoin du support midi, même pour jouer des
fichiers midi).
Notez que les valeurs "NN" doivent être précisées, mais je ne sais pas quelles valeurs sont les plus raisonnables. Je ne sais d'ailleurs pas si la spécification d'une taille DMA est réellement nécessaire.
D'après le fichier INSTALL, vous devez fournir le port de la carte. Cependant, pour ce gestionnaire et le suivant, il m'a fallu fournir toutes les informations (à l'exception des tailles DMA) pour que le gestionnaire fonctionne. Si vous avez initialisé la carte avec les isapnptools, vous pouvez probablement trouver ces informations dans le fichier /etc/isapnp.conf :
snd_port - port du CS4232 (PnP, par défaut 0x534)
snd_cport - port de contrôle du CS4232 chip (PnP, par défaut 0x120)
snd_mpu_port - port de l'UART MPU-401 (PnP, par défaut 0x300), -1 pour désactiver
snd_fm_port - port FM du CS4232 (PnP, par défaut 0x388), -1 pour désactiver
snd_jport - port manette de jeu du CS4232 (PnP, par défaut 0x200), -1 pour désactiver
snd_irq - IRQ du CS4232 (5,7,9,11,12,15)
snd_mpu_irq - IRQ de l'UART MPU-401 (9,11,12,15)
snd_dma1 - canal DMA 1 du CS4232 (0,1,3)
snd_dma1_size - taille de la mémoire tampon du DMA 1 en Ko (4-64Ko)
snd_dma2 - canal DMA 2 du CS4232 (0,1,3), -1 si aucun
snd_dma2_size - taille de la mémoire tampon du DMA 2 en Ko (4-64Ko)
Lancez un "modprobe snd-card-cs4232 snd_port=0x534 snd_cport=0x120
snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN
snd_dma2=1 snd_dma2_size=NN"
pour charger ce gestionnaire pour une carte configurée avec ses valeurs par
défaut (sans le support midi, cf la note pour l'OPL-3, ni le support manette
de jeu). Si vous utilisez d'autres valeurs dans /etc/isapnp.conf, reportez-les
ici aussi.
Notez que les valeurs "NN" doivent être précisées, mais je ne sais pas quelles valeurs sont les plus raisonnables. Je ne sais d'ailleurs pas si la spécification d'une taille DMA est réellement nécessaire.
D'après le fichier INSTALL, vous devez fournir le port de la carte. Cependant, pour une carte à base de CS4237B, il m'a fallu fournir toutes les informations (à l'exception des tailles DMA) pour que le gestionnaire fonctionne. Si vous avez initialisé la carte avec les isapnptools, vous pouvez probablement trouver ces informations dans le fichier /etc/isapnp.conf :
snd_port - port du CS423x (PnP, par défaut 0x534)
snd_cport - port de contrôle du CS423x (PnP, par défaut 0x120)
snd_mpu_port - port de l'UART MPU-401 (PnP, par défaut 0x300), -1 pour désactiver
snd_fm_port - port FM du CS4232 (PnP, par défaut 0x388), -1 pour désactiver
snd_jport - port manette de jeu du CS423x (PnP, par défaut 0x200), -1 pour désactiver
snd_irq - IRQ du CS423x (5,7,9,11,12,15)
snd_mpu_irq - IRQ de l'UART MPU-401 (9,11,12,15)
snd_dma1 - canal DMA 1 du CS423x (0,1,3)
snd_dma1_size - taille de la mémoire tampon du DMA 1 en Ko (4-64Ko)
snd_dma2 - canal DMA 2 du CS423x (0,1,3), -1 si aucun
snd_dma2_size - taille de la mémoire tampon du DMA 2 en Ko (4-64Ko)
Lancez un "modprobe snd-card-cs4232 snd_port=0x534 snd_cport=0x120
snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN
snd_dma2=1 snd_dma2_size=NN"
pour charger ce gestionnaire pour une carte configurée avec ses valeurs par
défaut (sans le support midi, cf la note pour l'OPL-3, ni le support manette
de jeu).
Notes :
kerneld
est un daemon
qui charge les modules chaque fois que
nécessaire, et les décharge quand ils ne sont plus utilisés. N'ayant aucune
expérience de kerneld, je ne sais pas si les renseignements que je donne ici
sont fiables. Ils proviennent du fichier INSTALL des gestionnaires Alsa. Une
excellente source d'informations sur kerneld est le Kerneld-mini-HOWTO.
Procédez ainsi :
carte
' où carte
est le nom de votre carte.
[Ce que je trouve étonnant, vu que kerneld est censé le charger lui-même ?
VS]
alias char-major-14 snd
alias snd-minor-oss-0 snd-interwave
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-interwave
options snd snd_major=14 snd_cards_limit=1
options snd-interwave snd_index=1 snd_id="guspnp" snd_port=0x220 snd_irq=5
snd_dma1=5 snd_dma2=6
Exemple pour utiliser plus d'une carte son sur votre machine (ici pour une
Sound Blaster 16 et une Gravis UltraSound Classic) :
alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-sb16
alias snd-card-1 snd-gusclassic
options snd snd_major=14 snd_cards_limit=2
options snd-sb16 snd_index=1 snd_port=0x220 snd_irq=5 snd_dma8=1 snd_dma16=5
options snd-gusclassic snd_index=2 snd_irq=11 snd_dma1=6 snd_dma2=7
Exemple si deux cartes Gravis UltraSound Classic sont installées :
alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-gusclassic
alias snd-card-1 snd-gusclassic
options snd snd_major=14 snd_cards_limit=2
options snd-gusclassic snd_index=1,2 snd_port=0x220,0x260 snd_irq=5,11
snd_dma1=5,6 snd_dma2=7,3
Si vous souhaitez avoir une compatibilité avec OSS/Free ou OSS/Linux, il vous faut charger un gestionnaire de plus : le gestionnaire de compatibilité snd-pcm1-oss. Lancez
modprobe snd-pcm1-oss
Cela vous donnera le support de /dev/audio et /dev/dsp, comme le font les
gestionnaires OSS/Free (ceux du noyau) et OSS/Linux (ceux vendus séparément).
Notez qu'il ne s'agit que d'une émulation.