Ceci est le document Linux Sound-HOWTO. Il est conçu pour être une référence rapide couvrant tout ce que vous devez savoir pour installer et configurer les fonctions sonores de Linux. Des réponses sont données aux questions les plus fréquentes à propos du son sous Linux, et des références à d'autres informations sur le son et la musique de synthèse sont mentionnées.
L'étude se limite aux aspects des cartes son qui concernent Linux. Pour des informations plus générales sur les cartes, la musique et le son, consultez la section Autres sources d'information.
Beaucoup de ces informations proviennent des fichiers Readme
(`lisez-moi') provenant de la documentation fournie avec le code source
du pilote son, écrit par Hannu Savolainen
(hannu@voxware.pp.fi
). Que Hannu et les nombreuses autres personnes
ayant participé au développement des pilotes son du noyau Linux et des
utilitaires associés soient donc remerciés.
Merci au paquetage Linuxdoc-SGML de Matt Welsh, qui permet à ce HOWTO d'être disponible sous différents formats, émanants tous d'un même fichier source.
première version; postée uniquement dans le canal SOUND de la `linux activists mailing list' (`liste de diffusion des activistes Linux').
corrections mineures; première version disponible sur les sites d'archives.
conversion au format SGML ; maintenant disponible sous plusieurs formats, grâce aux outils Linuxdoc-SGML de Matt Welsh; la présentation a changé à cause du nouveau format, mais peu de changements sur le fond.
petites modifications de SGML; ajout de réponses à propos des incompatibilités entre la PAS16 et la carte SCSI Adaptec1542A.
le pilote son 2.5a est maintenant dans la distribution du noyau 1.1; note sur le support GUS-MAX; quelques petites corrections.
ajout d'information sur l'erreur "no space on device" ; notez que le Hacker's Guide est dans un répertoire caché ; ajout de questions à propos du mode bidirectionnel ; informations sur les erreurs "device busy" ; corrections diverses.
ajout d'informations sur l'ASP et l'AWE32; VoxWare 2.9 est disponible; réponses aux questions concernant l'utilisation de l'IRQ 2; liens vers les Sound-HOWTO et SCSI HOWTO.
ajout d'une question à propos d'erreurs survenant sous DOS; plusieurs points réactualisé pour la version 2.90 du pilote son; informations concernant DOOM; réponse sur la réduction du bruit.
questions concernant l'enregistrement et les cartes compatibles.
disponibilité de l'HOWTO sur le web, sous diverses formes et traduites; informations concernant les conflits de DMA avec le pilote de sauvegarde QIC; informations concernant la Sound Galaxy NX Pro et la BusMouse Logitech.
une mise à jour tardive; document mis sous licence GPL; mise à jour avec la version 3.0 du pilote son; informations concernant toutes les nouvelles cartes supportées; nouvelles informations sur la configuration et les problèmes rencontrés; beaucoup de nouveaux liens HTML ajoutés; mise à disposition en ligne au format du CD-ROM HOWTO.
nouveaux pilotes son du noyau 1.3.34; nouveaux noms pour les fichiers de périphérique son; l'adresse de base pour la 1542 n'est pas 333 mais 334; clarification du statut de la Creative Labs Emu et de l'ASP; pointeurs vers les sites web de Creative Labs et MediaTrix.
précision sur le nom VoxWare; mise à jour en fonctions des dernières cartes supportées et des options de configuration; questions sur le support Plug and Play; question sur le problème de la taille du block; nouvelles options pour xconfig et menuconfig; modutils a un support de fichier de périphérique sonore; fin de la liste de diffusion vger; mise à jour du site web de l'auteur; autres changements divers et variés.
l'Audio Excel DSP16 n'est plus supportée (mais devrait refonctionner dans quelques mois); changements pour le programme configure; la version italienne de ce HOWTO est disponible; astuce pour régler les gains du mixer au chargement du module son; la derniere version stable du noyau est maintenant 2.0; nouveau nom pour le pilote son; question concernant les droits des fichiers de périphérique son.
suppresion d'anciennes questions devenues obsolètes; nouvelle adresse email pour l'auteur; mise à jour des liens pour y inclure les derniers packages de logiciels disponibles; plus d'informations sur le livre du multimédia; petites corrections grammaticales.
beaucoup de mises à jour et de corrections proposées par Hannu Savolainen; ajout d'une "date limite de consommation" de six mois pour ce document; nouveaux liens vers des pages web; ajout d'un lien sur la traduction espagnole; petites corrections grammaticales.
la traduction chinoise de ce document est disponible; un pilote alternatif pour la GUS; le package radio modem; le guide Linux Multimedia est desormais disponible en Français et en Japonais; références à des mini-HOWTOs utiles; pointeur pour le Thinkpad IBM.
la traduction coréenne est disponible; plus d'informations concernant le son et les MIPS; mise à jour sur le support de nouvelles cartes son; il faut lancer fuser en tant que root.
cette nouvelle version est publiée selon la licence LDP plutot que GPL.
Les nouvelles versions de ce document seront périodiquement postées dans le groupe fr.comp.os.linux.annonces. Elles seront aussi envoyées à divers sites ftp qui archivent ce genre d'informations, notamment : ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO/ (version française) et ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/ (version originale).
Des versions hypertexte de ce document ainsi que des autres HOWTOs pour Linux sont disponibles sur un grand nombre de sites web dont http://sunsite.unc.edu/LDP/. La plupart des distributions Linux sur CD-ROM contiennent les HOWTOs, souvent dans le répertoire /usr/doc et il est possible d'en acheter des versions imprimées chez plusieurs revendeurs spécialisés. Parfois, les HOWTOs disponibles sur CD-ROM, sur les sites FTP et dans les version imprimées sont dépassés. Si le HOWTO a plus de six mois, alors une nouvelle version est certainement disponible sur Internet.
Si vous avez des suggestions, des corrections, ou des commentaires à apporter à ce HOWTO, merci de bien vouloir me les envoyer ( tranter@pobox.com), et j'essaierai de les inclure dans la version suivante.
J'essaie également de répondre aux questions concernant les cartes son sous Linux dans la mesure du possible. Avant de poser directement une question, merci de lire toutes les informations contenues dans ce HOWTO, et envoyez-moi une description détaillée du problème. Merci de ne pas me poser de questions quant à l'utilisation des cartes son avec d'autres systèmes d'exploitation que Linux.
Si vous publiez ce document sur CD-ROM ou sous forme imprimée, j'apprécierais d'en recevoir une copie (n.d.t.: le traducteur aussi :-) ). Envoyez-moi un email pour que je vous communique mon adresse postale. Pensez également à contribuer au Linux Documentation Project pour supporter la documentation libre de Linux. Pour plus d'informations, contactez le coordinateur des HOWTOs LINUX, Tim Bynum mailto:linux-howto@sunsite.unc.edu.
Copyright 1995-1997 Jeff Tranter.
Traduction française 1998 Gaël Duval.
Ce document est distribuable selon les termes de la licence LDP que l'on peut consulter à http://sunsite.unc.edu/LDP/COPYRIGHT.html.
Cette partie vous donne un petit aperçu des techniques audio employées en informatique, cela pour vous aider à comprendre certains concepts dont on parlera dans la suite de ce document. Pour en savoir plus, vous pouvez consulter certains livres traitant d'audio-numérique ou de traitement du signal numérique...
Le son est un phénomène analogique; il se traduit par une valeur quelconque sur une échelle continue. Les ordinateurs fonctionnent de manière numérique; c'est-à-dire qu'ils utilisent des valeurs discrètes. Les cartes-son utilisent un composant appelé Convertisseur Analogique-Numérique (A/N ou ADC en anglais) afin de convertir les tensions correspondantes aux ondes sonores analogiques en valeurs numériques qui peuvent alors être stockées dans la mémoire de l'ordinateur. De même, un Convertisseur Numérique-Analogique (N/A ou DAC en anglais) convertit les valeurs numériques en une tension analogique qui peut alors être amplifiée pour "attaquer" un haut-parleur et produire du son...
La conversion analogique-numérique (échantillonage ou "sampling" en anglais) génère des erreurs. Deux facteurs déterminent la qualité du signal echantilloné par rapport au signal initial. Tout d'abord, la fréquence d'échantillonage est le nombre d'échantillons réalisés par unité de temps (exprimée en Hertz). Une petite fréquence d'échantillonage produira une représentation moins fine du signal analogique d'origine, dans le sens où les fréquences aigues ne seront pas ou mal restituées. (ndt : la théorie nous enseigne que pour restituer correctement une fréquence sonore de n Hz, il faut effectuer un échantillonage au moins égal à 2 x n Hz. Ainsi, l'étendue du spectre sonore audible par un humain (0 à 20000 Hz) sera bien restituée par un échantillonage à 44100 Hz (norme CD-AUDIO) ). Le nombre de bits d'échantillonage conditionne l'étendue des valeurs utilisables pour représenter chaque échantillon, qui conditionne elle-même la plage dynamique de restitution. (ndt : il s'agit du rapport entre le niveau sonore le plus fort restituable sans distortion, et le niveau de souffle ou de bruit inhérent au matériel de restitution. Cette plage dynamique est exprimée de manière logarithmique en decibels (dB). En théorie, lorsque l'on ajoute un nouveau bit de codage pour chaque échantillon, on double cette plage, ce qui correspond à un gain en dynamique de 6 dB :-) )
Les cartes son utilisent typiquement un codage sur 8 ou 16 bits (ndt : et parfois 24), pour des fréquences d'échantillonage allant de 4000 à 44100 (ndt : ou 48000 Hz). L'échantillonage pouvant être réalisé sur une voie (mono) ou deux (stéréo) (ndt : et plus (8, 16...) pour des cartes professionnelles).
La synthèse FM est une ancienne méthode utilisée pour produire des sons. Son principe consiste en la combinaison de plusieurs ondes de formes différentes (ex : sinusoïdales, triangulaires, carrées). Ce procédé est plus simple à implémenter au niveau "hardware" que la conversion analogique-numérique mais son utilisation est plus compliqué (au niveau programmation). Beaucoup de cartes son supportent la synthèse FM afin de rester compatibles avec des cartes ou programmes plus anciens. Plusieurs générateurs sonores différents sont habituellement fournis.
La synthèse par table d'échantillons sonores ou wavetables associe la flexibilité de la conversion A/N avec les possibilités multivoies de la synthèse FM. Avec ce procédé, des sons digitalisés/numérisés peuvent être chargés dans une mémoire dédiée puis rejoués, combinés, et modifiés en sollicitant peu le microprocesseur de la machine. Toutes les cartes son actuelles supportent la synthèse par tables d'échantillons sonores.
La plupart des cartes offrent également la possibilité de mixage, en combinant les signaux provenant des différentes sources avec des niveaux différents.
Le terme MIDI signifie : Musical Instrument Digital Interface soit : interface numérique pour instruments musicaux en français. Ce protocole matériel et logiciel standard permet aux "instruments électroniques" de communiquer entre eux. Les évènements envoyés dans un bus MIDI peuvent aussi être mémorisés dans des fichiers MIDI. Cela permet de les éditer ultèrieurement et de les rejouer. Beaucoup de cartes son possèdent une interface MIDI. Celles qui n'en n'ont pas peuvent quand même jouer des fichier MIDI.
Les fichiers MOD sont un format courant pour les sons générés par ordinateur. En plus des informations relatives aux notes devant être jouées, ces fichiers contiennent des échantillons d'instruments ou de voix digitalisées. Les fichiers MOD proviennent du monde Amiga, mais peuvent être joués par d'autres systèmes - dont Linux - en utilisant des logiciels appropriés.
Cette partie répertorie les cartes son et interfaces qui sont supportées par les derniers noyaux Linux à la date où ce document a été rédigé.
Les différentes versions des pilotes son ont leur propre numérotation. La dernière version stable du noyau Linux est à ce jour la 2.0.33 pour une version 3.5.4-960630 du pilote son.
Le concepteur de ce pilote, Hannu Savolainen, en rend souvent publiques les nouvelles versions beta avant qu'elles ne deviennent parties intégrantes du noyau Linux. La liste la plus actualisée des cartes supportées se trouve sur : http://www.4front-tech.com/ossfree/new_cards.html (USA) ou http://personal.eunet.fi/pp/voxware/new_cards.html (Europe). Ces pages indiquent quel pilote est nécessaire pour tel type de carte, ou si son support est encore en développement. Le fichier /usr/src/linux/drivers/sound/Readme.cards distribué avec le noyau Linux contient des informations sur les cartes supportées mais n'est pas forcément à jour.
Les informations contenues dans ce HOWTO sont valables pour Linux tournant sur un processeur compatible Intel x86.
Le pilote son devrait également fonctionner avec la plupart des cartes son disponibles pour les plateformes Alpha. Néanmoins, il peut dans ce cas exister des conflits d'adresses avec d'autres périphériques, même si la carte fonctionne parfaitement sur une machine à base de x86. Il n'est donc généralement pas possible de dire si telle ou telle carte va fonctionner sans l'essayer.
A l'heure où ces lignes ont été rédigées, le pilote son ne fonctionnait pas encore sur la version PowerPC de Linux. Mais cela devrait fonctionner dans l'avenir.
On peut configurer le son dans le noyau pour Linux porté sur MIPs, et certaines machines MIPs possèdent des slots EISA et/ou des circuits-son intégrés dans la machine. On m'a dit que le groupe Linux-MIPs souhaitait intégrer un support son dans le futur.
Le noyau Linux contient un pilote-son particulier pour les versions Atari et Amiga de Linux qui implémente une compatibilité d'instructions avec le pilote son des machines x86, ceci en utilisant les possibilités matérielles natives de ces machines.
Le portage de Linux pour SPARC n'inclue pas encore de support du son. De la même façon que pour les Amiga et les Atari, les machines SPARC possèdent des possibilités sonores intégrées à la machine. Il faudrait donc un pilote spécifique (ce qui est rigolo, car sous Linux, /dev/dsp est une émulation du pilote son de SunOS !).
Les cartes son suivantes sont supportées par le pilote son du noyau linux :
Notez bien que les cartes Plug and Play (PnP) ne sont pas entièrement compatibles avec les modèles non-PnP de la même carte. Par exemple, la SoundBlaster16 PnP n'est pas compatible à 100% avec la SoundBlaster16 originelle. Il en va de même pour les Soundscape et les GUS PnP. On trouvera plus d'informations à ce sujet dans la suite de ce document.
Les cartes suivantes ne sont pas supportées, soit parce qu'elles sont dépassées, soit parce que le constructeur ne souhaite pas communiquer la totalité des spécifications techniques nécessaires pour écrire le pilote concerné.
Les autres cartes qui sont annoncées comme étant compatibles avec une des cartes supportées vues plus haut peuvent fonctionner à condition qu'elles soient réellement compatibles au niveau matériel (c'est-à-dire, au niveau des registres).
Même si la plupart des cartes son sont dites "compatibles SoundBlaster", un très petit nombre le sont suffisament pour fonctionner avec le pilote SoundBlaster de Linux. Ces cartes fonctionnent habituellement mieux en utilisant les pilotes MSS/WSS ou MAD16. Seules les véritables cartes SoundBlaster fabriquées par Creative Labs et qui utilisent les puces Creative (comme la SoundBlaster16 Vibra), la MV Jazz16 et les cartes basées sur l'ESS688/1688 fonctionnent en général avec le pilote SoundBlaster. Tenter d'utiliser une "carte son SoundBlaster Pro compatible 16 bits" avec le pilote de périphérique SoundBlaster est en général une perte de temps.
Le noyau Linux supporte les ports SCSI présents sur quelques cartes son (par exemple, sur la SoundBlaster16 Vibra) et les interfaces propriétaires pour un certain nombre de lecteurs de CD-ROM (par exemple, sur la Soundblaster Pro). Voyez à ce propos le SCSI HOWTO et le CDROM HOWTO pour plus d'informations.
Un module chargeable du noyau supportant les ports joystick (dont certains fournis avec certaines cartes son) est également disponible.
Notez que les pilotes de périphérique SCSI, CD-ROM, joystick et son du noyau sont complètement indépendants les uns des autres.
Pour des informations à jour sur les pilotes son, consulter le site Web de Hannu Savolainen (qui est mentionné dans la liste des références).
Il y a des pilotes "non officiels" disponibles. Ils font pas partie de la distribution standard du noyau Linux et sont utilisés à la place du pilote son normal.
Une version commerciale du pilote son est vendue par 4Front Technologies. Elle offre un grand nombre de caractéristiques supplémentaires par rapport à la version libre fournie dans le noyau Linux. Pour en savoir plus, consulter la page Web de 4Front Technologies sur http://www.4front-tech.com/.
Markus Mummert ( mum@mmk.e-technik.tu-muenchen.de) a conçu un pilote son pour les cartes son Turtle Beach Multisound (classic), Tahiti et Monterey. La documentation précise :
"ce pilote a été conçu pour de l'enregistrement/ lecture sur disque-dur sans perte de synchronisation, même sur un système chargé. Les autres fonctionalités, comme la synthèse sonore par table d'échantillons, le MIDI et l'utilisation des DSP (Digital Signal Processor = Processeurs de Signaux Numériques) ne peuvent pas être utilisées. De même, l'enregistrement et la lecture simultanés ne sont pas possibles. Il remplace actuellement VoxWare et a été testé pour plusieurs noyaux, de la version 1.0.9 à la 1.2.1. On peut également l'installer sur les systèmes UN*X SysV386R3.2."
On peut le trouver sur http://www.cs.colorado.edu/~mccreary/tbeach.
Kim Burgaard ( burgaard@daimi.aau.dk) a écrit un pilote son et des utilitaires pour l'interface MIDI MPU-401. Le fichier relatif à Linux donne cette description :
"Un pilote pour véritable interface MIDI compatible Roland MPU-401 (incluant la SCC-1 et la RAP-10/ATW-10 Roland). Fourni avec un ensemble d'utilitaires, dont un lecteur/enregistreur pour fichiers MIDI standards."
"Beaucoup d'améliorations ont été réalisées depuis la version 0.11a. Entre autres, le pilote respecte la politique de partage des IRQ et la nouvelle interface des modules du noyau. Une fonction de métronome, des possibilités de synchronisation - par exemple des images en fonction d'un battement sans perte de précision, une interface avancée de relecture/enregistrement/overdub (lecture et enregistrement simultanés) et beaucoup plus encore."
On peut le trouver sur ftp://sunsite.unc.edu/pub/Linux/kernel/sound/mpu401-0.2.tar.gz.
Jaroslav Kysela et d'autres ont également conçu un pilote alternatif pour la Gravis UltraSound. Consulter la page http://romeo.pf.jcu.cz/~perex/ultra du projet Linux UltraSound pour plus d'infos.
Une autre utilisation des cartes son sous Linux consiste à s'en servir comme modem pour la radio-amateur par paquets. Les versions récente 2.1.x (attention, version de développement !) contiennent un pilote qui fonctionne avec les cartes compatibles SoundBlaster et Windows Sound System pour pouvoir utiliser les protocoles paquets AFSK 1200 bps et FSK 9600 bps. Voyez le HOWTO AX25 pour plus de détails (je suis moi-même radio-amateur avec VE3ICH comme indicatif !).
Un autre pilote son est également disponible, qui ne nécessite pas de carte son : il utilise le haut-parleur PC. Il est compatible au niveau logiciel avec le pilote de cartes son, mais, comme on peut s'y attendre, il produit un son de moins bonne qualité et nécessite plus de ressources CPU. Les résultats semblent être assez inégaux, et dépendent des caractéristiques du haut-parleur interne. Pour de plus amples informations, consultez la documentation fournie avec ce pilote.
La version actuelle est 1.1 et peut-être trouvée sur ftp://ftp.informatik.hu-berlin.de/pub/os/linux/hu-sound/
Une autre option consiste à fabriquer un convertisseur numérique-analogique en utilisant le port parallèle (pour imprimante ou autre extensions). Cette solution produit un son de meilleur qualité qu'avec le haut-parleur du PC, mais sollicite également beaucoup la CPU. Le paquetage du pilote pour haut-parleur mentionné ci-dessus supporte cette fonction et contient les instructions pour construire le matériel adéquat.
La configuration du support son sous Linux doit se faire selon les étapes suivantes :
Dans la suite sont explicitées toutes ces étapes.
Suivez les instructions du fabriquant pour l'installation matérielle ou confiez-la à votre revendeur.
Les vieilles cartes-son ont souvent des petits interrupteurs appelés cavaliers ("switch" ou "jumper") permettant de configurer les adresses IRQ (Interrupt ReQuest = requête d'interruption ), DMA (Direct Memory Access = bus de transfert direct des données), les canaux, etc. Si vous n'êtes pas certain, utilisez les réglages d'usine. Essayez d'éviter les conflits avec d'autres prériphériques (comme les cartes ethernet, les cartes SCSI, les ports série et parallèle).
Normalement, vous devrez utiliser les mêmes adresses d'E/S, d'IRQ et de DMA que celles fonctionnant sous DOS. Cependant, dans certains cas (en particulier avec les cartes PnP) vous aurez peut-être besoin d'un réglage particulier pour que cela fonctionne avec Linux. Il faudra peut-être faire quelques essais.
Quand vous avez installé Linux, vous avez certainement utilisé un noyau précompilé. Généralement, ces noyaux ne fournissent pas de support son. Il vous faut donc recompiler votre noyau en fonction des périphériques que vous possédez. Vous devez également recompiler le noyau lorsque vous passez à une de ses nouvelles versions ou afin de libérer de la mémoire en réduisant sa taille (ndt : par l'utilisation des modules).
Consultez le Linux Kernel HOWTO pour recompiler le noyau (ndt : c'est très simple à faire). Je ne vais parler ici que des points qui sont spécifiques aux cartes son.
Si vous n'avez jamais configuré le noyau pour le support son, il peut être utile de lire tous les fichiers Readme fournis avec les pilotes son du noyau, et en paticulier les informations spécifiques à votre carte-son. La documentation suivant peut-être trouvée dans le répertoire des pilotes son du noyau Linux. Il se trouve en général dans /usr/src/linux/drivers/sound :
CHANGELOG - description des modifications pour chaque version COPYING - droit et restrictions de duplication Readme - informations récentes et importantes Readme.aedsp16 - à propos de la carte Audio Excel 16 DSP Readme.cards - précisions sur la configuration de cartes spécifiques Readme.linux - précisions sur l'installation de pilotes son non inclus dans le noyau Readme.modules - comment compiler le pilote en un module chargeable Readme.v30 - nouvelles possibilitées dans la version 3.0 du pilote son experimental.txt - à propos des caractéristiques expérimentales
Suivez tout d'abord la procédure habituelle pour compiler le noyau. Il existe actuellement trois interfaces disponibles pour la procédure de configuration. Une interface graphique sous X11 peut être lancée par "make xconfig". Une interface à base de menus texte est disponible en tapant "make menuconfig". Enfin, la méthode originelle, en utilisant "make config" propose une interface uniquement à base de texte.
Il faut faire particulièrement attention en utilisant "make xconfig" ou "make menuconfig". En effet, les choix par défaut sont toujours positionnés sur "No", ce qui n'est pas correct dans tous les cas. En particulier, l'option "/dev/dsp and /dev/audio support" (CONFIG_AUDIO) doit habituellement être validée.
Dans ce document, je suppose que vous utilisez la procédure traditionnelle en mode texte : "make config". Néanmoins, la procédure est identique dans les autres cas.
Il y a également deux autres manières de configurer le son. La première est l'"ancienne" façon (la seule disponible pour les noyaux 2.0.0). Elle utilise un programme de configuration séparé qui fait partie du pilote son. Cette méthode fonctionne pour la plupart des cartes, exceptées quelques unes qui nécessitent des pilotes additionnels "bas niveau" (miroSOUND, AWE32, et AEDSP16).
La seconde méthode (la "nouvelle") est mieux intégrée à la configuration par menus texte utilisée pour le reste du noyau. Elle ne fonctionne pas pour les cartes qui ont besoin d'un fichier constructeur téléchargeable. Ceci concerne les cartes PSS, SM Wave, AudioTrix Pro et TurtleBeach Tropez/Maui. Avec ces cartes, on utilisera la vieille procédure.
La "nouvelle" méthode est toujours utilisée en faisant "make xconfig". Quand on utilise "make menuconfig", on peut choisir entre les deux méthodes. En faisant "make config", vous aurez la vieille méthode par défaut. Mais si vous avez déjà utilisé la nouvelle méthode, ce sera celle utilisée par "make config" ! Vous pouvez resélectionner l'ancienne en lançant "make menuconfig" et en la sélectionnant.
La méthode recommendée est l'utilisation de "make menuconfig" avec l'ancienne méthode de configuration. Beaucoup de problèmes de configuration du son proviennent (au moins en partie) de l'utilisation de la nouvelle méthode.
Il est également possible de compiler le pilote de son en tant que module chargeable. Je vous recommande de le compiler initialement en statique, dans le noyau. Une fois que cela fonctionne et que vous l'aurez testé, vous pourrez essayer de le compiler en module.
Quand vous lancez make config
, validez le support son en
répondant "y" à la question :
Sound card support (CONFIG_SOUND) [M/n/y/?]
A la fin des questions de configuration, un programme sera compilé et exécuté et vous demandera alors quelles sont les options pour votre carte son. Attention en répondant à ces questions, car une réponse erronée pour une option peut empêcher d'autres questions suivantes d'être posées. Par exemple, ne répondez "yes" à la première question (PAS 16) que si vous n'avez réellement pas de carte PAS 16. De même, n'activez pas plus d'options que celles dont vous avez réellement besoin car cela consomme de la mémoire ! Certains pilotes (comme celui du MPU-401) peuvent également entrer en conflit avec votre controleur SCSI et empêcher le noyau de "booter".
Voici une liste de toutes les options de configuration. Répondez "y" (oui) ou "n" (non) à chaque question. La réponse par défaut est affichée en lettre majuscule telle que : "[Y/n/?]" signifie "y" par défaut et vice versa. Pour valider la valeur par défaut, appuyez juste sur Enter, tout en sachant que cette valeur par défaut n'est pas forcément correcte.
Si vous rentrez "?", vous aurez un court message d'explication sur l'option présente.
Notez également que toutes les options ne sont pas demandées. Le programme de configuration désactive certaines questions en fonction des choix précedemment validés. Il peut également sélectionner automatiquement certaines options.
Si vous avez précedemment compilé le noyau pour le support son, la configuration précédente a pu être sauvegardé. Si vous souhaitez utiliser cette ancienne configuration, alors entrez "y". Si vous essayez une configuration différente ou si vous utilisez une nouvelle version du noyau, répondez "n" pour commencer la configuration.
Répondez "y" uniquement si vous possédez une Pro Audio Spectrum 16, une ProAudio Studio 16 ou une Logitech SoundMan 16. Ne répondez pas "y" si vous avez une autre carte de chez Media Vision ou Logitech car elle ne sera pas compatible PAS16.
Répondez "y" si vous avez une carte SoundBlaster de chez Creative Labs, ou une carte compatible à 100% au niveau matériel (comme la Thunderboard ou la SM Games). Si votre carte est dans la liste des cartes supportées, consultez le fichier Readme.cards des cartes spécifiques avant de répondre à cette question. Pour une carte inconnue, essayez "y" si cette carte se dit être compatible SoundBlaster.
Répondez "y" si vous avez une GUS ou une GUS MAX. Répondez "n" si vous n'avez pas de GUS car ce pilote utilise beaucoup de mémoire.
Attention avec cette question. L'interface MPU-401 est supportée par presque toutes les cartes son. Néanmoins, quelques cartes supportées possèdent leur propre pilote MPU-401. Si vous validez l'option dans ce cas là, vous aurez un conflit. La validation de cette option sur un système qui ne possède pas d'interface MPU-401 peut causer des disfonctionnements. Si votre carte est normalement supportée, consultez quand même les instructions spécifiques la concernant dans le fichier Readme.cards. Il est plus sûr d'entrer "y" si vous possédez une véritable carte avec interface MPU-401 MIDI.
Il est sûr de répondre "n" à cette question dans tous les cas. L'interface 6850 UART n'est que très rarement utilisée.
Répondez "y" si vous possédez une carte Orchid SW32, ou Cardinal DSP16 ou encore d'autres cartes basées sur les puces PSS (codec AD1848 + puce DSP ADSP-2115 + puce Echo ESC614 ASIC).
v
Répondez "y" si vous avez installé la carte-fille d'échantillonage 16 bits sur votre GUS. Répondez non si vous avez une GUS MAX. Cette option désactive le support GUS MAX.
Répondez "y" uniquement si vous avez une GUS MAX.
Faite encore attention avant de répondre "y" à cette question. Il est plus sûr de répondre "y" si vous possédez la carte Windows Sound System originelle fabriquée par Petitmou (microsoft) ou l'Aztech SG 16 Pro / NX 16 Pro. Vous pouvez aussi répondre "y" au cas où votre carte n'ait pas été proposée plus haut. Pour les cartes ayant le support natif pour VoxWare, consultez les instructions spécifiques dans le fichier Readme.cards. Certains pilotes possèdent leur propre support MSS et l'activation de cette option dans ce cas causera un conflit.
Répondez "y" si vous avez une carte son basée sur les puces Ensoniq SoundScape. De telles cartes sont fabriquées, au moins chez Ensoniq, Spea et Reveal (ce dernier fabrique également d'autres types de cartes).
Répondez "y" si vous avez une AudioTriX Pro.
Répondez "y" ici si votre carte possède une puce d'interface Mozart (OAK OTI-601) ou MAD16 (OPTi 82C928 ou 82C929). Ces circuits sont assez répandus, il est donc possible qu'un grand nombre de cartes "anonymes" en possèdent. De plus, la puce MAD16 est utilisée dans des cartes fabriquées par des constructeur connus comme Turle Beach (Tropez), Reveal (quelques modèles) et Diamond (les plus récentes).
Répondez "y" si vous avez une carte basée sur les circuits Crystal CS4232.
Répondez "y" ici si vous possédez l'une de ces cartes.
Activez cette option si votre carte est une SoundBlaster Pro ou une SoundBlaster 16. Idem si vous avez une carte clone de SoundBlaster Pro. On peut économiser un peu de mémoire ici en répondant "n" mais l'alternative la plus sûre est de répondre "y".
Validez si vou avez une SoundBlaster 16 (dont l'AWE 32).
Répondez "y" si vous avez une Audio Excel DSP 16. Consultez le fichier Readme.aedsp16 pour de plus amples informations.
Le programme de configuration pose alors plusieurs questions à propos d'options de plus haut niveau. Il est recommandé de répondre "y" à chacune de ces questions, et "n" uniquement si vous savez que vous n'aurez pas besoin de cette option.
Répondre "n" désactive /dev/dsp et /dev/audio, les périphériques de conversion A/D et D/A. Répondez "y".
Répondre "n" désactive les périphériques associés à /dev/midixx ainsi que les accés aux ports MIDI utilisant /dev/sequencer et /dev/music. Cette option affecte également tous les périphériques compatibles MPU-401 et/ou General MIDI.
Répondre "y" ici.
Répondre "n" désactive /dev/sequencer et /dev/music.
Répondez "y" si vous possédez une carte son Sound Galaxy NX Pro et que vous voulez utiliser ses fonctions étendues de mixage.
Répondez "y" si vous avez une carte son MV Jazz 16.
Répondez "y" si vous possédez une carte Logitech SoundMan Games.
Après toutes ces questions, le programme de configuration vous questionne sur la configuration spécifique de la carte. Habituellement, juste quelques adresses d'E/S, d'IRQ et de DMA sont demandées. Pour certaines cartes, le programme demande quels fichiers doivent être utilisés durant l'initialisation de la carte. Ceci est vrai pour les cartes qui possèdent une puce DSP ou un microprocesseur qui doit être initialisé en chargeant un petit programme (microcode). Dans certains cas, ce code est écrit dans un fichier .h par le programme de configuration et est alors integré au pilote pendant sa compilation. Encore une fois, lisez dans le fichier d'information Readme.cards ce qui concerne votre type de carte.
A la fin, il vous sera demandé:
The sound driver is now configured.
Save copy of this configuration to /etc/soundconf [Y/n/?]
Normalement, vous devriez entrer "y" ce qui vous permettra éventuellement de conserver vos options de configuration pour votre pilote son dans une recompilation ultèrieure du noyau Linux.
Si vous mettez à jour votre vieux pilote son, soyez certain que les fichiers /usr/include/sys/soundcard.h et /usr/include/sys/ultrasound.h sont des liens symboliques sur les fichiers correspondant dans /usr/include/linux, et qu'ils contiennent respectivement uniquement les lignes #include <linux/soundcard.h> et #include <linux/ultrasound.h>.
Vous pouvez maintenant recompiler et installer le nouveau noyau.
Pour opérer proprement, des entrées des fichiers de périphériques doivent être crées pour vos périphériques son. Normalement, ils sont créés automatiquement lors de l'installation de Linux. Une vérification rapide peut être effectuée en utilisant la commande ci-dessous. Si vous obtenez la même chose (excepté pour la date...) alors les fichiers de périphériques sont certainement presque bons...
% ls -l /dev/sndstat
crw-rw-rw- 1 root root 14, 6 Apr 25 1995 /dev/sndstat
Notez que le fait d'avoir des fichiers de périphériques corrects ne garantit rien en tant que tel... Le pilote du noyau doit également être chargé ou compilé avant que les périphériques puissent fonctionner.
Si vous pensez que les fichiers de périphériques ne sont
pas bons, vous pouvez les recréer en utilisant le petit script shell
(à éxécuter en tant qu'utilisateur root) que vous trouverez à la fin du
fichier Readme.linux dans le répertoire
/usr/src/linux/drivers/sound disponible pour l'utilisateur
root
. Autrement, beaucoup de distributions Linux incluent un
script /dev/MAKEDEV uilisable à ces fins...
Si vous utilisez le pilote son du haut-parleur PC, lisez la documentation qui va avec ce paquetage pour déterminer quels fichiers doivent être créés.
Vous devriez maintenant être prêt à `rebooter' (redémarrer) sur votre nouveau noyau et tester les pilotes de son. Suivez la procédure habituelle pour installer et rebooter sur le nouveau noyau (gardez l'ancien dans un petit coin au cas où il y aurait un un problème !).
Pendant le redémarrage, essayez de vérifier quelques
messages d'information tels que ceux qui suivent (s'ils défilent
trop vite, vous pourrez les retrouver avec la commande dmesg
) :
Sound initialization started
<Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
<Sound Blaster 16> at 0x330 irq 5 dma 0
<Yamaha OPL3 FM> at 0x388
Sound initialization complete
Cela devrait correspondre avec votre carte son et votre configuration de cavaliers (s'il y en a).
Notez que ces messages ne sont pas affichés quand on utilise le module chargeable du pilote son (à moins que vous ne l'ayez spécifié avec : "insmod sound trace_init=1).
Quand le pilote son est attaché ("linké") au noyau les messages "Sound initialization started" et "Sound initialization complete" devraient être affichés. S'ils ne le sont pas, cela signifie qu'il n'y a pas de pilote son dans le noyau. Dans ce cas, vérifiez que vous avez installé le bon noyau...
Si rien ne s'affiche entre les lignes "Sound initialization started" et "Sound initialization complete", cela signifie soit que vous n'avez pas installé le bon pilote, soit que le port d'E/S est incorrect ou que vous avez une carte PnP qui n'a pas été configurée.
Le pilote peut également afficher des messages d'erreurs ou d'avertissement ("warnings") pendant le redémarrage. Regardez bien tout ça quand vous rebootez pour la première fois après avoir configuré le pilote son.
Ensuite, vous devriez vérifier le fichier de périphérique /dev/sndstat. La lecture du fichier d'état du pilote son devrait vous fournir des informations supplémentaires sur la façon dont a été initalisée la carte son. Vous devriez obtenir quelque chose dans ce style :
% cat /dev/sndstat
Sound Driver:3.5.4-960630 (Sat Jan 4 23:56:57 EST 1997 root,
Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586)
Kernel: Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586
Config options: 0
Installed drivers:
Type 1: OPL-2/OPL-3 FM
Type 2: Sound Blaster
Type 7: SB MPU-401
Card config:
Sound Blaster at 0x220 irq 5 drq 1,5
SB MPU-401 at 0x330 irq 5 drq 0
OPL-2/OPL-3 FM at 0x388 drq 0
Audio devices:
0: Sound Blaster 16 (4.13)
Synth devices:
0: Yamaha OPL-3
Midi devices:
0: Sound Blaster 16
Timers:
0: System clock
Mixers:
0: Sound Blaster
Cette dernière commande peut générer des messages d'erreur. "No such file or directory" signifie que vous devez créer les fichiers de périphériques (voir la section 4.3). "No such device" vous indique que le pilote son n'est pas chargé ou lié au noyau. Voyez la section 4.2 pour corriger cela.
Si des lignes apparaissent entre parenthèses dans la partie "Card config:" de /dev/sndstat (par exemple : "(SoundBlaster at 0x220 irq 5 drq 1,5)" ), cela signifie que le périphérique (la carte) a bien été configurée, mais pas détectée.
Maintenant, vous devriez pouvoir jouer un fichier son. Procurez-vous un petit fichier son et envoyez-le vers le fichier de périphérique pour vérifier basiquement la sortie son. Par exemple :
% cat endoftheworld >/dev/dsp
% cat crash.au >/dev/audio
(prennez garde de ne pas ommetre le ">" dans les commandes ci-dessus)
Notez que, généralement, utiliser cat
n'est
pas une façon correcte de jouer des fichiers audio, mais
juste un moyen rapide de vérification. Vous souhaiterez
sans doute trouver un programme dedié permettant de jouer
correctement des fichiers son.
Cette commande fonctionne uniquement si il y a au moins un fichier de périphérique listé dans la section "Audio devices" de /dev/sndstat. Si cette section est vide, il faut essayer de savoir pourquoi la carte n'a pas été détectée.
Si les commandes ci-dessus retournent "I/O error", regardez la à la fin des messages produits par le noyau en tapant la commande "dmesg". Il est fréquent de trouver des messages d'erreurs à cet endroit. Très souvent, on trouve le message : "Sound: DMA (output) timed out - IRQ/DRQ config error?". Cette erreur signifie que la carte n'a pas réussi à utiliser l'interruption attendue. Dans la plupart des cas, cela veut dire que l'IRQ ou le canal DMA configuré pour le pilote ne fonctionne pas. La meilleure façon de le faire fonctionnner est d'essayer tous les IRQ et les DMA supportés par le pilote.
Une autre raison est que le fichier de périphérique n'est pas compatible avec le pilote pour lequel il est configuré Ceci est le plus souvent vrai quand une carte son supposée "compatible SoundBlaster (Pro/16)" ne fonctionne pas avec le pilote SoundBlaster. Dans ce cas, essayez de trouver avec quelle autre carte votre matériel est réellement compatible (en postant dans fr.comp.os.linux par exemple).
Quelques fichiers son peuvent être trouvés dans ce paquetage : ftp://tsx-11.mit.edu/pub/linux/packages/sound/snd-data-0.1.tar.Z
Maintenant, vous pouvez vérifier que l'enregistrement fonctionnne. Si vous pouvez relier un micro(phone !) à votre carte son, vous pouvez effectuer un test rapide en utilisant ce genre de commandes :
# enregistre 4 secondes de son en provenance du micro
# dans le fichier "sample.au"
% dd bs=8k count=4 </dev/audio >sample.au
4+0 records in
4+0 records out
# rejoue le son enregistré
% cat sample.au >/dev/audio
N'oubliez pas de parler dans le micro pour que cela fonctionne !!! Vous pouvez également avoir besoin de trouver un programme `mixer' (mélangeur de sources sonores), afin de sélectionner le microphone comme étant le périphérique d'entrée. Ceci doit également vous permettre d'ajuster le niveau d'enregistrement (gain).
Si tout cela fonctionne, vous pouvez être à peu près certain que vos convertisseurs A/N et N/A fonctionnent, ainsi que la partie du pilote y étant associée. Si vous rencontrez des difficultés, passez à la section suivante !!!
Si vous avez encore des problèmes après avoir suivi les instructions de ce HOWTO, voici quelques points à vérifier. Ils sont listés dans un ordre de difficulté croissante. Si la vérification se solde par un echec, résolvez le problème avant d'effectuer la suivante !
Vous pouvez vérifier la date du noyau pour être
certain que vous utilisez celui que vous avez compilé avec le
support son. Utilisez la commande uname
:
% uname -a
Linux fizzbin 2.0.0 #1 Tue Jun 4 16:57:55 EDT 1996 i386
ou listez le fichier /proc/version:
% cat /proc/version
Linux version 2.0.0 (root@fizzbin) (gcc version 2.7.0) #1 Tue Jun 4 16:57:55 EDT 1996
Si la date ne semble pas correspondre avec celle à laquelle vous avez compilé le noyau, alors vous utilisez certainement un noyau plus ancien... Avez-vous réellement redémarré la machine ? Si vous utilisez LILO (multiboot), l'avez-vous réinstallé ? (normalement, cela se fait par : /etc/lilo/install). Si vous bootez à partir d'une disquette, en avez-vous créé une nouvelle et bien utilisée ?
La façon la plus simple de vérifier ceci est de controler ce que contient /dev/sndstat comme cela a été décrit précédemment. Si il semble y avoir un problème, alors quelque chose s'est mal déroulé pendant la configuration ou la construction du nouveau noyau.
Soyez certain que votre carte son a bien été détectée
lors du démarrage. Vous avez dû voir un message lors de
la phase de boot. Vous pouvez retrouvez les messages du dernier
démarrage en utilisant la commande dmesg
:
% dmesg
ou
% tail /var/adm/messages
Si votre carte n'a pas été trouvée, c'est que quelque chose s'est mal passé. Soyez certain que votre carte est réellement installée ! Si elle fonctionne sous DOS, vous pouvez supposer qu'elle va fonctionner sous Linux, et qu'il doit y avoir un problème au niveau de la configuration du noyau. Soit vous avez configuré une mauvaise carte ou de mauvais paramètres, soit votre carte n'est supportée par aucun des pilotes son du noyau Linux...
Une possibilité est que votre carte nécessite une initialisation
par le pilote DOS. Essayez sous DOS d'initialiser votre carte avec le
pilote fourni par le constructeur de la carte. Ensuite, rebootez à
chaud en utilisant Control-Alt-Delete
. Vérifiez bien que que
les adresses d'E/S, de DMA, et les numéros d'IRQ sont les mêmes
sous Linux et sous DOS. Consultez le fichier Readme.cards dans les sources
du pilote son Linux pour connaître les détails de configuration de
votre carte.
Si votre carte n'est pas mentionnée dans ce document, il est possible que le pilote son de Linux ne la supporte pas. Vous pouvez consulter les références listées à la fin de ce document pour obtenir de l'aide.
Essayez d'enregistrer des sons en provenance de /dev/audio en utilisant
la commande dd
dont on a déjà parlé dans ce
document.
Si ça ne fonctionne pas, alors il y a probablement un conflit d'IRQ ou de DMA, ou une incompatibilité matérielle (le périphérique n'est pas supporté par Linux ou le pilote n'est pas configuré pour le bon périphérique).
Une autre possibilité est d'avoir un matériel défectueux. Testez cette carte sous DOS pour vérifier !
Si ça ne marche toujours pas, voici quelques suggestions sur ce que vous devriez faire :
Esc-x doctor
:-)Je donne ici quelques exemples d'applications que vous aimerez peut-être avoir si vous possédez une carte son sous Linux. Pour avoir des informations plus fraîches, vous pouvez consulter la Linux Software Map, les sites d'archives Internet, et/ou les fichiers disponibles dans votre CD-ROM Linux.
Voici quelques programmes à posséder :
Sox
)aumix
ou xmix
)play
ou wavplay
)tracker
)playmidi
)Pour chacun de ces outils, il existe souvent aussi bien une version graphique qu'un version texte. Vous trouverez également quelques applications plus ésotériques (comme des utilitaires de synthèse ou de reconnaissance vocale) qu'il peut-être amusant d'essayer...
Ce paragraphe répond à des questions qui sont souvent posées dans les forums de discussion et les listes de diffusion.
Des réponses à d'autres questions peuvent également être trouvées sur la page web des pilotes son OSS.
Ce sont des noms le plus souvent "standard", mais certaines distribtutions Linux peuvent avoir choisi des noms différents.
lien symbolique vers /dev/audio0
périphérique audio compatible avec les stations Sun (dans une implémentation partielle seulement : il n'y a pas de support de l'interface ioctl Sun, uniquement l'encodage u-law)
second périphérique audio (pour certaines cartes son ou si vous en avez deux)
normalement, c'est un lien symbolique vers /dev/dsp0
premier périphérique d'échantillonage
second périphérique d'échantillonage
lien vers /dev/mixer0
premier mixeur son
second mixeur son
interface séquenceur de haut niveau
accés bas niveau pour MIDI, FM et GUS
normalement, lien vers /dev/music
premier port MIDI
second port MIDI
troisième port MIDI
quatrième port MIDI
indique l'état du pilote son
Le pilote pour haut-parleur PC fournit les fichiers de périphériques suivant :
équivalent à /dev/audio
équivalent à /dev/dsp
équivalent à /dev/mixer
Les fichiers son provenant des stations Sun (.au) peuvent être envoyés directement dans /dev/audio. Les fichiers son bruts doivent être envoyés dans /dev/dsp, de préférence en utilisant un utilitaire prévu à cet effet (play). Sinon, le résultat risque d'être de piètre qualité.
Les programmes comme wavplay ou vplay (dans le paquetage snd-util) donneront leurs meilleurs résultats avec des fichiers WAV. Par contre, ils ne reconnaissent pas les fichiers WAV Microsoft compressés avec ADPCM. Les anciennes versions de play (dans le paquetage Lsox) fonctionnent mal avec les fichiers WAV 16 bits.
Le programme splay du paquetage snd-util peut être utilisé pour jouer la plupart des fichiers son si les paramètres corrects sont spécifiés en ligne de commande.
La lecture de /dev/audio ou /dev/dsp fournira des données échantillonées qui peuvent être redirigées vers un fichier. Un programme tel que vrec
facilite le réglage de la fréquence d'échantillonage, la durée d'enregistrement, etc. Vous aurez aussi certainement besoin d'un programme de mixage pour sélectionner l'entrée son apropriée.
Avec le piloye son actuel, il est possible d'avoir plusieurs SoundBlaster, SoundBlaster/Pro, SoundBlaster16, MPU-401 ou cartes MSS à la fois sur votre système. L'installation de deux SoundBlaster est possible en définissant les macros SB2_BASE, SB2_IRQ, SB2_DMA et dans certains cas SB2_DMA2 dans le fichier local.h. Il est aussi possible d'avoir en même temps une SoundBlaster et une PAS16.
Avec les nouveaux noyaux 2.0.X qui utilisent make config, vous devez éditer /usr/include/linux/autoconf.h à la place de local.h. Après la section contenant les lignes :
#define SBC_BASE 0x220
#define SBC_IRQ (5)
#define SBC_DMA (1)
#define SB_DMA2 (5)
#define SB_MPU_BASE 0x0
#define SB_MPU_IRQ (-1)
ajoutez ceci (avec des valeurs correctes pour votre système) :
#define SB2_BASE 0x330
#define SB2_IRQ (7)
#define SB2_DMA (2)
#define SB2_DMA2 (2)
Les pilotes suivants ne permettent pas d'instances multiples :
Vous devez créer les fichiers de périphériques du pilote son. Consultez la section concernée. Si vous avez déjà ces fichiers, assurez-vous qu'ils possèdent bien les nombres majeur et mineur corrects (certaines distributions obsolètes de Linux créent des fichiers de périphériques incorrects durant l'installation).
Vous avez démarré votre machine avec un noyau non configuré pour le son, ou alors, les adresses d'E/S configurées dans votre noyau ne correspondent pas à celles de votre marériel. Vérifiez que vous utilisez bien votre noyau fraichement compilé et qu'il a été correctement configuré avec des paramètres correspondant à votre matériel.
Ceci peut arriver si vous tentez d'envoyer des données vers /dev/audio ou /dev/dsp sans créer le fichier de périphérique adéquat. Ce fichier est alors un fichier normal qui a rempli votre disque-dur !!! Vous devez exécuter le script mentionné dans la section Création des fichiers de périphériques.
Cela peut également arriver avec Linux 2.0.x s'il n'y a pas suffisamment de mémoire vive sur votre machine lorsque le fichier de périphérique est ouvert. Le pilote audio a besoin d'au moins deux pages (de 8 ko) contiguës de mémoire vive physique pour chaque canal DMA. Cela peut arriver avec des machines ayant moins de 16 Mo de RAM ou qui tournent sans discontinuer depuis très longtemps. Il est possible de libérer de la mémoire vive en compilant et en éxécutant ce programme C avant d'ouvrir le fichier de périphérique :
main() {
int i;
char mem[500000];
for (i = 0; i < 500000; i++)
mem[i] = 0;
exit(0);
}
Un périphérique son ne peut être ouvert que
par un seul processus à la fois. Il y a certainement un
processus qui utilise déjà la carte son. Une façon
de le savoir est d'utiliser la commande fuser
:
% fuser -v /dev/dsp
/dev/dsp: USER PID ACCESS COMMAND
tranter 265 f.... tracker
Dans cet exemple, la commande fuser
montre que le processus
numéro 256 a déjà ouvert le périphérique.
Vous devez alors attendre que ce processus finisse son travail ou alors,
le tuer (avec kill). Pour connaître les processus d'un utilisateur autre que
vous, il faut être root pour utiliser la commande fuser
.
Selon Brian Gough, il existe un conflit potentiel entre les SoundBlaster utilisant le canal DMA 1 et les lecteurs de bandes QIC-02 utilisant le même canal. D'où des erreurs de type "device busy". Si vous utilisez FTAPE, il se peut que le pilote concerné soit actif. Selon le FTAPE-HOWTO, le pilote du QIC-02 n'est pas nécessaire pour utiliser FTAPE. Il y a seulement besoin du pilote du QIC-117. Vous devez donc reconfigurer votre noyau pour qu'il utilise le bon pilote.
Habituellement, cela se traduit par l'arrêt de la lecture au bout d'une seconde environ, avec un message d'erreur du type "missing IRQ" ou "DMA timeout". Il s'agit certainement d'une mauvaise configuration de l'IRQ ou du canal DMA. Vérifiez que le noyau est bien configuré et qu'il n'y a pas de conflit d'adresse avec d'autres cartes.
Un autre symptôme est une lecture en boucle. Ceci est souvent lié à un conflit d'IRQ.
La lecture des fichiers MOD nécessite beacoup de ressources CPU. Il se peut que vous ayez trop de processus en cours ou bien que votre ordinateur soit trop lent pour une lecture en temps réel. Vous pouvez alors:
Si vous avez une Gravis UltraSound, vous avez intérêt à
utiliser un des lecteurs mod conçus spécifiquement pour la
GUS (par ex. gmod
).
Les version 1.0c et antérieures du pilote son utilisent des
appels ioctl()
incompatibles. Récupérez des
sources plus récentes ou effectuez les modifications nécessaires
pour l'adapter au nouveau pilote son. Voyez le fichier Readme
du pilote son pour plus de détails...
Soyez également certain que vous avez utilisé la dernière version de soundcard.h et ultrasound.h en compilant votre application. Voyez comment les installer au début de ce document.
Il s'agit certainement du même problème que précédemment.
Ils sont partiellement répertoriés dans le Hacker's Guide to VoxWare, actuellement disponible sous forme provisoire. La dernière version est la "draft 2" disponible sur ftp://nic.funet.fi/pub/Linux/ALPHA/sound/. Notez que ce répertoire est caché et n'apparaîtra pas à moins d'y accéder directement avec la commande "cd" de FTP.
Lors de la rédaction de ce document, de nouvelles documentations étaient disponibles sur le site web de 4Front Technologies.
Une autre source d'information est le Guide du Multimédia sous Linux (ndt: traduit en Français par Eric Dumas). Voir les références dans ce document.
Il n'existe pas de réponde immédiate à cette question. Cela dépend de:
En général, les machines à base de 386 peuvent jouer des échantillons ou faire de la synthèse FM sur des cartes 8 bits sans problème.
Jouer des fichiers MOD nécessite plus de ressources CPU. Des mesures expérimentales ont montré que la lecture d'un fichier son à 44 khz utilise plus de 40% des ressources processeur d'un 486/50 et qu'un 386/25 peut difficilement jouer plus rapidement que 22 khz (ceci pour des cartes 8 bits de type SondBlaster...). Une carte comme la Gravis UltraSound a plus de fonctions implémentées au niveau physique et nécessitera donc moins de ressources CPU.
(ndt: actuellement, on peut considérer que toute machine moderne, à base de pentium ou supérieur est capable d'enregistrer et de jouer des fichiers son en qualité "CD" : 44 khz/16 bits)
Ces considérations supposent que vous n'éxécutez par simultanément un processus gourmant en ressources CPU !!!
La conversion de fichiers son ou le calcul d'effets sonores par des
utilitaires comme sox
est également plus rapide si vous possédez
un coprocesseur arithmétique (intégré ou non dans le processeur).
Le pilote son quant à lui n'effectue pas de calculs en virgule flottante.
(les explications suivantes ont éré fournies par seeker@indirect.com
)
Linux reconnaît seulement la 1542 à l'adresse 330 (par défaut) ou 334, et la PAS autorise l'émulation MPU-401 à l'adresse 330 uniquement. Le conflit subsiste même si vous avez désactivé l'utilisation MPU-401 par voie logicielle. Passez la 1542 à l'adresse 334 rendera tout le monde heureux...
De plus, la 1542 et la PAS-16 utilisent toutes les deux un DMA 16 bits. Donc, si vous échantillonez à 44,1 khz en 16 bits stéréo et que vous sauvez le fichier sur un disque SCSI piloté par la 1542, vous aurez certainement des problèmes. Les canaux DMA débordent et la mémoire vive ne se rafraîchit pas assez vite. Vous obtenez alors un message d'erreur : "PARITY ERROR - SYSTEM HALTED", sans explication sur ce qui s'est passé. Encore pire : certains revendeurs de lecteurs de bandes QIC-117 recommendent de régler pour le bus des délais "on/off" tels que la 1542 est active plus longtemps qu'en utilisation normale. Procurez-vous le programme SCSISEL.EXE sur le BBS d'Adaptec ou à d'autres endroits sur Internet et réduisez la durée "on" du bus, ou augmentez sa durée "off" jusqu'à ce que le problème disparaisse. SCSISEL.EXE modifie les réglages de l'EEPROM et les modifications apportées fonctionneront donc au prochain redémarrage sous Linux.
Dernier problème - les vieilles puces Symphony réduisent de manière importante les périodes de cycle I/O pour accélerer les accès au bus. Aucune des cartes essayées ne produit de problèmes avec ces courtes périodes de cycle, sauf pour la PAS-16. Le BBS de Media Vision propose le programme SYMPFIX.EXE qui est supposé résoudre le problème en utilisant un bit de diagnostic dans le controleur de bus Symphony, mais cela ne procure aucune garantie matérielle. Vous devrez peut-être :
Le premier problème dépend de la puce utilisée sur votre carte-mère, de la vitesse du bus et des paramètres du BIOS, et de la phase de la lune. Le second problème dépend de l'option de rafraîchissement (caché ou synchronisé), de la fréquence de rafraîchissement du DMA de la 1542 et éventuellement de celui du bus d'E/S. Le troisième problème peut-être déterminé en appellant Media Vision et en leur demandant quelle catégorie de puce Symphony est incompatible avec leur design...
A cause de certaines limitation matérielles, ceci est impossible sur beaucoup de cartes-son. Certaines cartes récentes offrent cette possibilité. Pour plus d'informations, Consultez la section concernant le "mode bidirectionnel" dans le Hacker's Guide to Voxware.
Sur les machines à base de 286, l'IRQ 2 est équivalente à l'IRQ 9. Spécifiez IRQ 9 dans la configuration.
Dans le passé, Creative Labs ne souhaitait pas divulguer les informations techniques permettant de programmer leurs cartes. Depuis, ils ont changé de politique et un pilote pour AWE est maintenant inclus dans les noyaux 2.1.x.
Cela arrive après un redémarrage à chaud sur DOS. Parfois, le message d'erreur met en cause un mauvais fichier CONFIG.SYS.
Une rapide solution à ce problème est de procéder à un redémarrage complet en utilisant le bouton reset ou en coupant le secteur plutot qu'un redémarrage à chaud (en utilisant Control-Alt-Del). (N.d.t.: dans les nouvelles versions de linux, le redémarrage par Control-Alt-Del provoque normalement une réinitialisation totale de la machine, équivalente au "reset" matériel )
La bonne solution est d'utiliser les mêmes réglages d'IRQ et de DMA sous DOS et Linux (ou de ne pas utiliser DOS :-) ).
Ceux qui utilisent le portage de DOOM pour Linux réalisé par ID Software peuvent être intéressés par ces notes.
Pour une sortie son correcte, vous devez utiliser la version 2.90 ou supérieure du pilote son : il a été conçu pour supporter le mode temps-réel de DOOM.
Les échantillons sonores sont en 16 bits. Si vous avez une carte son 8 bits vous pouvez quand même utiliser le son en récupérant plusieurs programmes disponibles sur ftp://sunsite.unc.edu/pub/Linux/games/doom.
Si DOOM râme sur votre système, désactiver le son (en renommant le fichier sndserver
) peut augmenter les performances.
Par défaut, DOOM ne supporte pas la musique sous Linux. Le programme musserver
y remédie. On peut le trouver sur
ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz.
Utilisez des câbles de liaison blindés et de bonne qualité, essayez de placer votre carte dans des slots différents. Si la carte a un control de volume, modifiez ce réglage.
Utilisez également un programme "mixeur" pour vous assurer que les entrées inutiles (comme le micro) sont désactivées.
Mais certaines cartes sont mal blindées et mal reliées à la terre et produisent naturellement beaucoup de bruit.
Enfin, sur mon système, j'ai découvert qu'utiliser l'option de
configuration no-hlt
réduisait le niveau de bruit. Cette
commande force le noyau à ne pas utiliser l'instruction halt quand
il éxécute le processus "idle" (ndt : c'est à dire, quand le système
n'a rien à faire). Vous pouvez utiliser ceci manuellement au démarrage
ou le spécifier dans le fichier de configuration de LILO avec la
commande : append="no-hlt"
Si vous pouvez jouer des sons mais pas en enregistrer, essayez ceci :
Parfois, deux canaux DMA différents sont utilisés pour l'enregistrement et la lecture. Dans ce cas, il est assez probable que le canal DMA spécifié pour l'enregistrement n'est pas correct.
Dans la plupart des cas, une carte "compatible SoundBlaster" fonctionnera mieux sous Linux si elle est configurée avec un pilote autre que celui destiné à la véritable SoundBlaster. Beaucoup de cartes se disent "compatibles SoundBlaster" mais bien souvent, ce mode SoundBlaster est seulement un bidouillage prévu pour la compatibilité avec les jeux sous DOS. Beaucoup de cartes possèdent un mode 16 bits natif qui est facilement supporté par les version récentes du noyau Linux (2.0.1 et plus).
Pour d'autres cartes plus anciennes, il sera nécessaire d'essayer de les faire fonctionner dans le mode SoundBlaster. Les seules cartes récentes qui font exception à cette règle sont les cartes basées sur Mwave.
Les cartes son 16 bits dites "compatible SoundBlaster" ne sont véritablement qu'avec le mode 8 bits SoundBlaster Pro. Elles possèdent en général un mode 16 bits qui n'est compatible ni avec la SoundBlaster 16, ni avec le noyau Linux.
Vous arriverez peut-être à faire fonctionner votre carte en mode 16 bits en utilisant les pilotes MAD16 ou MSS/WSS.
Voici quelques bons sites d'archive intéressants pour les applications utilisant le son sous Linux :
Ceci est possible pour les versions récentes du noyau.
Consultez les fichiers /usr/src/linux/drivers/sound/Readme.modules et /usr/src/linux/Documentation/modules.txt (ou /usr/src/linux/README) pour plus d'informations.
Essayez le programme oplbeep
que l'on peut trouver sur
ftp://sunsite.unc.edu/pub/Linux/kernel/patches/misc/modreq_beep.tgz
Une variante est le programme beep
que vous trouverez sur
ftp://sunsite.unc.edu/pub/Linux/kernel/patches/misc/modreq_beep.tgz
Le paquetage modutils
contient un exemple de programme et de
patch pour le noyau qui permettent d'appeller un programme externe donné
afin de générer des sons sur requête du noyau.
De plus, il est possible avec certaines cartes son d'y connecter la sortie du haut-parleur PC de telle manière que tous les sons passent par les haut parleurs de la carte.
Les pilotes son du noyau supportent différentes sortes de systèmes Unix/x86 et sont donc disponibles en tant que paquetage indépendant du noyau Linux. Jusqu'à Février 1996, les auteurs ont appellé ce programme "Voxware". Malheureusement, ce nom était déjà déposé par VoxWare Incorporated et ne pouvait donc plus être utilisé. Ces pilotes s'appellent maintenant OSS/Free.
L'Open Sound System (OSS) est un pilote son distribué de manière commerciale pour plusieurs systèmes Unix par 4Front Technologies. La version gratuite, connue sous le nom d'OSS/Free, continuera d'être disponible gratuitement pour Linux.
D'autres noms utilisés par le passé et se réferrant au même pilote son sont : TASD (Temporarily Anonymous Sound Driver) et USS (Unix Sound System).
Pour de plus amples informations, consultez la page web de 4Front Technologies sur http://www.4front-tech.com/. J'ai écris une présentation d'OSS/Linux dans le numéro de juin 1997 de Linux Journal (n.d.t. : en anglais).
La totalité des fonctions Plug & Play devrait être disponible dans les version 2.1 du noyau Linux. En attendant, il existe de nombreux essais de support Plug & Play.
Si vous possédez un système Pentium récent avec un BIOS Plug & Play, il devrait pouvoir pouvoir configurer vos cartes. Prennez garde de configurer le pilote son de Linux avec les mêmes paramètres d'E/S, d'IRQ et de canal DMA que dans le BIOS.
Il existe un paquetage d'outils Plug & Play pouvant être utilisés pour configurer les cartes. On peut le trouver sur le site http://www.redhat.com/ (peut-être se trouve t-il déjà dans votre distribution Linux).
Si vous utilisez votre carte sous Windows95, vous pouvez utiliser le gestionnaire de périphérique pour configurer la carte, puis démarrer Linux après une réinitialisation à chaud en utilisant le programme LOADLIN. Vérifiez que les paramètres de configuration sont identiques sous les deux systèmes.
Si vous utilisez votre carte sous DOS, vous pouvez utiliser l'utilitaire
icu
qui est fourni avec les cartes SoundBlaster16 PnP afin de
configurer votre matériel sous DOS. Utilisez le programme LOADLIN pour
relancer Linux. Vérifiez ici encore que les paramètres sont identiques.
(N.d.t. : dans un grand nombre de cas, on pourra se contenter de configurer sa carte PnP sous DOS avec l'utilitaire adéquat pour les paramètres désirés. Ensuite, la carte (même éteinte) gardera en mémoire interne son paramêtrage, et il ne sera pas nécessaire de repasser par DOS ni d'utiliser LOADLIN.EXE pour lancer Linux :-) ).
La version commerciale du pilote son OSS supporte les SoundBlaster 16 PnP. Elle est disponible auprès de 4Front Technologies.
Une modification du pilote dans sa version 1.3.67 a rendu inopérants certains programmes son qui vérifiaient (abusivement) que le résultat de la requête ioctl SNDCTL_DSP_GETBLKSIZE était supérieure à 4096. Les utilitaires présents dans le dernier paquetage snd-util-3.x.tar.gz (sur ftp://ftp.4front-tech.com/ossfree) gèrent maintenant ceci correctement. Les dernières versions du pilote son ont également été modifiées pour éviter des fragments d'allocation plus petits que 4096 octets, ce qui résoud le problème avec les anciens utilitaires.
Le pilote son supporte un grand nombre de paramètres de configuration.
Le programme configure
inclus avec le pilote son vérifie les
dépendances entre ces paramètres. Les outils utilisés pour configurer le
noyau ne supportent pas ce niveau de fonctionalités.
Cela dit, les derniers noyaux Linux permettent en partie d'utiliser les outils standard de configuration du noyau pour le pilote son (voyez la partie consacrée à la "configuration du noyau").
Il est possible de compiler le pilote son en tant que module chargeable
par le noyau et utiliser kerneld
pour un chargement et déchargement
automatiques. Cela peut engendrer un problème. A chaque fois que le
module est rechargé, les paramètres du mixeur reprennent leur valeurs d'origine. Selon les cartes son, on peut alors obtenir un volume trop faible
ou trop élevé (par ex. SoundBlaster 16). Markus Gutschke
(gutschk@uni-muenster.de
) a trouvé une solution qui consiste à
inclure cette ligne dans le fichier /etc/conf.modules :
options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75
Cela force votre programme mixeur (dans notre cas, setmixer
) à
être exécuté immédiatement après le chargement du pilote son. Le paramètre
dma_buffsize
est recquis par la commande option. Modifiez cela
en fonction de votre programme mixeur et de vos réglages de gain.
Si vous avez compilé le pilote son en dur dans le noyau et que vous souhaitez régler les différents gains du mixeur au démarrage de Linux, vous pouvez effectuer l'appel au programme mixeur dans /etc/rc.d/rc.local.
Par défaut, le script se trouvant dans Readme.linux qui crée les
fichiers de périphériques son (/dev/...) autorise seulement
l'accés à la carte son par root
. Ceci afin de combler un
trou de sécurité potentiel. Dans un environnement réseau, des
utilisateurs externes pourraient se connecter à votre machine
et vous écouter par l'intermédiaire de la carte son et d'un
micro qui y serait raccordé. Si vous vous en foutez, il suffit
de changer les permissions des fichiers spéciaux /dev/audio et /dev/dsp.
Par contre, ce script autorise par défaut n'importe quel utilisateur à jouer un échantillon sonore dans la carte. Ceci n'a aucune conséquence sur la sécurité mais peut se révéler plutôt désagréable.
Vous trouverez des informations à ce sujet sur : http://www.screamin.demon.co.uk/.
Si vous possédez une carte son qui supporte une interface SCSI ou CD-ROM, vous pourrez consulter les documents suivants : SCSI HOWTO, CD-ROM HOWTO. Ces documents existent en version française.
Le Sound-Playing HOWTO explique comment jouer différents types de fichiers son sous Linux.
Le Ultrasound Plug'n'play Mini-HOWTO explique comment faire fonctionner sa Gravis Ultrasound PnP.
Le Linux SoundBlaster 16 PnP Mini-HOWTO explique comment faire fonctionner sa SoundBlaster16 PnP sous Linux.
Le Linux SoundBlaster AWE64 PnP Mini-HOWTO explique comment faire fonctionner sa SoundBlaster AWE64 sous Linux.
(N.d.t. : consultez ces documents traduits en Français sur : ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO/)
Il existe un vieux document connu sous le nom de Hacker's Guide to VoxWare, et disponible sur ftp://nic.funet.fi/pub/Linux/ALPHA/sound/. La plupart des informations ici présentes ont été tirées de la documentation disponible sur http://www.4front-tech.com/pguide, mais la section concernant /dev/sequencer peut tout de même vous être utile.
Les FAQs (Questions Fréquemment Posées ou Foire Aux Questions !) suivantes sont régulièrement postées dans le forum Usenet news.announce et sont également archivées sur ftp://rtfm.mit.edu/pub/usenet/news.answers :
(N.d.t.: voir également les postages réguliers de FAQ dans le forum Usenet fr.comp.os.linux.annonces)
Les FAQs vous indiquent également plusieurs listes de diffusion spécifiques à certains matériels ainsi que leurs sites d'archives. Les forums Usenet suivant concernent le son et/ou la musique :
Un site web consacré au multimédia est consultable sur http://viswiz.gmd.de/MultimediaInfo/. Creative Labs a son site web sur http://www.creaf.com/. MediaTrix également sur http://www.mediatrix.com/.
Il existe des listes de diffusion Linux consacrées au son. Pour s'y abonner, envoyez un email à majordomo@vger.rutgers.edu avec, dans le corps du message, le mot "help". Ces listes sont en général destinées à des discussions relatives au développement d'applications liées au son, pas aux question du genre "comment faire fonctionner ma SoundBlaster"...
Rappelons une fois encore que les sources du noyau Linux contiennent un certain nombre de fichiers Readme très utiles relatifs aux pilotes de carte son. Typiquement, on trouvera ces fichiers dans le répertoire /usr/src/linux/drivers/sound.
Le concepteur du pilote son, Hannu Savolainen, peut être contacté par email à hannu@voxware.pp.fi. Il possède également un site web sur http://personal.eunet.fi/pp/voxware.
Les informations relatives à OSS, la version commerciale du pilote son pour Linux et autres Unix, sont consultables sur http://www.4front-tech.com/, le site de 4Front Technologies.
La carte des logiciels Linux ou Linux Software Map (LSM) est un document inestimable pour rechercher un programme donné. Vous pouvez faire une recherche dans cette base avec un mot-clef tel que sound et identifier de cette façon toutes les applications gérant les périphériques sonores. Ce document peut être trouvé sur un grand nombre de sites FTP et en particulier sur : ftp://sunsite.unc.edu/pub/Linux/docs/LSM/.
Enfin, si vous voulez en apprendre davantage à propos de la programmation multimedia sous Linux (essentiellement d'applications gérant les CD-ROM et les cartes son), consultez mon livre Le Guide du Multimedia sous Linux (n.d.t : traduction française d'Eric Dumas, numéro ISBN : ISBN 2-84177-014-1) publié chez O'Reilly and Associates. Ce bouquin est en vente un peu partout, mais vous pouvez quand même consulter la page Web d'Oreilly http://www.oreilly.com/international/france/.