The Linux Sound HOWTO Jeff Tranter, Jeff_Tranter@Mitel.COM v1.6, 6 June 1994 Ce document decrit comment le son est gere par Linux Il enumere les differents dispositifs materiels supportes, decrit comment configurer les pilotes dans le noyau, et repond au questions les plus frequentes. Son but est de permettre aux nouveaux utilisateurs de profiter du son rapidement, et de desengorger le trafic des conferences usenet. 11.. IInnttrroodduuccttiioonn Ceci est le document Linux Sound HOWTO. Il est concu pour etre une reference rapide couvrant tout ce que vous avez besoin de savoir pour installer et configurer le support sonore de Linux. Des reponses sont donnees aux questions les plus frequentes a propos du son sous Linux, et des references a d'autres informations sur le son et la musique de synthese sont mentionnees. L'etude se limite aux aspects des cartes son qui concernent Linux. Pour des informations plus generales sur les cartes son, la musique et le son, consultez la section _A_u_t_r_e_s _s_o_u_r_c_e_s _d_'_i_n_f_o_r_m_a_t_i_o_n. 11..11.. RReemmeerrcciieemmeennttss Beaucoup de ces informations proviennent des fichiers Readme fournis avec le code source du pilote son, ecrit par Hannu Savolainen (hannu@voxware.pp.fi). Que Hannu et les nombreuses autres personnes ayant participe au developpement des pilotes son du noyau Linux et des utilitaires associes soient donc remercies. Merci au paquetage Linuxdoc-SGML de Matt Welsh, qui permet a ce HOWTO d'etre disponible sous differents formats, emanants tous d'un meme fichier source. 11..22.. VVeerrssiioonnss aanntteerriieeuurreess VVeerrssiioonn 11..11 premiere version; postee uniquement dans le canal SOUND de la linux activists mailing list. VVeerrssiioonn 11..22 corrections mineures; premiere version disponible sur les sites d'archives. VVeerrssiioonn 11..33 conversion au format SGML ; maintenant disponible sous plusieurs formats, grace aux outils Linuxdoc-SGML de Matt Welsh; la presentation a change a cause du nouveau format, mais peu de changements sur le fond. VVeerrssiioonn 11..44 petites modifications de SGML; ajout de reponses a propos des incompatibilites entre la PAS16 et la carte SCSI Adaptec1542A. VVeerrssiioonn 11..55 le pilote son 2.5a est maintenant dans la distribution du noyau 1.1; note sur le support GUS-MAX; quelques petites corrections. VVeerrssiioonn 11..66 ajout d'information sur l'erreur "no space on device" ; notez que le Hacker's Guide est dans un repertoire cache ; ajout de questions a propos du mode bidirectionnel ; informations sur les erreurs "device busy" ; corrections diverses. 11..33.. NNoouuvveelllleess vveerrssiioonnss ddee ccee ddooccuummeenntt Les nouvelles versions de ce document seront periodiquement postees dans le groupe comp.os.linux.announce. Elles seront aussi envoyees a divers sites ftp qui archivent ce genre d'informations, notamment sunsite.unc.edu:/pub/Linux/docs/HOWTO. 11..44.. RReettoouurr Si vous avez des suggestions, des corrections, ou des commentaires a apporter a cette HOWTO, merci de bien vouloir les envoyer a l'auteur, et j'essaierai de les inclure dans la version suivante. 11..55.. AAuuttrreess ssoouurrcceess dd''iinnffoorrmmaattiioonn _T_h_e _L_i_n_u_x _S_o_u_n_d _U_s_e_r_'_s _G_u_i_d_e couvre plus en detail (environ 40 pages) tous les aspects visibles par l'utilisateur de l'utilisation du son sous Linux. Si vous etes interesse par le sons sous Linux, vous devriez vous procurer ce document. La version actuelle est ALPHA 0.1, et est disponible sur tsx-11.mit.edu dans le repertoire /pub/linux/ALPHA/LDP. Je continuerai de maintenir la Sound-HOWTO comme un guide concis pour ceux qui veulent mettre en place rapidement le son, ou juste regarder quel est le materiel requis, sans avoir a consulter le guide de l'utilisateur complet. Hannu Savolainen a ecrit une preversion du _H_a_c_k_e_r_'_s _G_u_i_d_e _t_o _V_o_x_W_a_r_e. La derniere version est draft 2, et peut etre trouvee sur nic.funet.fin dans /pub/OS/linux/ALPHA/sound. Les FAQs suivantes sont regulierement postees dans les conferences news.announce et simultanement archivees par le site rtfm.mit.edu dans le repertoire /pub/usenet/news.answers : PCsoundcards/generic-faq (FAQ generale a propos des cartes son PC) PCsoundcards/soundcard-faq (FAQ de comp.sys.ibm.pc.soundcard) PCsoundcards/gravis-ultrasound/faq (FAQ Gravis UltraSound) audio-fmts/part1 (Descriptions de formats de fichiers audio) audio-fmts/part2 (Descriptions de formats de fichiers audio) Les FAQs enumerent aussi plusieurs mailing lists et sites d'archive reserves a des produits specifiques. Les conferences usenet suivantes discutent de sujets ayant trait au son et/ou a la musique : alt.binaries.sounds.* (diverses conferences pour poster des fichiers sonores) alt.binaries.multimedia (discussions sur le Multimedia) alt.sb.programmer (programmation Soundblaster) comp.multimedia (Multimedia) comp.music (theories et recherches sur la musique et les ordinateurs) comp.sys.ibm.pc.soundcard (discussions sur les cartes son PC) La Linux Activists mailing list a un canal SOUND. Pour savoir comment rejoindre la mailing list, envoyez un mail a linux-activists- request@joker.cs.hut.fi. Les fichiers Readme, Readme.linux, et CHANGELOG fournis avec le code source du pilote son du noyau contient des informations utiles a propos des pilotes de cartes sons. Ils peuvent etre habituellement trouves dans le repertoire /usr/src/linux/drivers/sound. La _L_i_n_u_x _S_o_f_t_w_a_r_e _M_a_p (LSM) est une reference inestimable pour localiser les logiciels Linux. Chercher des mots-clefs comme _s_o_u_n_d dans la LSM est une maniere efficace d'identifier les applications ayant rapport au son. La LSM peut etre trouvee sur divers sites FTP, notamment sunsite.unc.edu:/pub/Linux/docs/LSM.gz. 11..66.. IInnffoorrmmaattiioonnss ssuurr llaa vveerrssiioonn Au moment de l'edition de ce document, la derniere version du pilote son Linux etait 2.5a, et etait incluse dans le noyau Linux version 1.1.10, et dans les suivantes. Vous pouvez aussi obtenir le pilote 2.5 separement, et appliquer un patch aux noyaux plus anciens (par exemple 1.0). 22.. MMaatteerriieell ssoonn ssuuppppoorrttee 22..11.. CCaarrtteess ssoonn Les cartes son suivantes sont supportees par le noyau de Linux: +o Roland MPU-401 MIDI interface +o AdLib +o SoundBlaster (versions 1 et 2) et compatibles, ThunderBoard et ATI Stereo F/X incluses +o SoundBlaster Pro (versions 1 et 2) +o SoundBlaster 16 +o ProAudioSpectrum 16 (et la Logitech SoundMan 16, compatible) +o Advanced Gravis UltraSound (GUS) D'autres cartes soi-disant compatibles avec une des cartes supportees _p_e_u_v_e_n_t fonctionner, a la condition d'etre compatibles au niveau materiel. La Sound Galaxy NX Pro est supportee comme une compatible Sound Blaster, a condition d'ajouter #define __SGNXPRO__ au fichier local.h du pilote son. Le noyau Linux supporte le port SCSI fourni sur certaines cartes son (par exemple la ProAudioSpectrum 16). Il supporte aussi les lecteurs de CD-ROMs branches sur les SoundBlaster Pro et SoundBlaster 16 (voir le fichier /usr/src/linux/drivers/block/README.sbpcd). Un patch pour le noyau permettant l'utilisation des ports joystick (y compris ceux de certaines cartes son) est aussi disponible. 22..22.. HHaauutt--ppaarrlleeuurr PPCC Un autre pilote son est disponible, qui ne requiert aucun materiel supplementaire; il utilise le haut-parleur interne du PC. Il est grosso-modo compatible au niveau logiciel avec le pilote de son, mais, comme on pourrait s'en douter, il ne fournit qu'une pietre qualite de sortie, et demande des ressources CPU importantes. Le resultat est variable, dependant essentiellement des caracteristiques de votre haut-parleur. Pour plus d'informations, consultez la documentation fournie avec le pilote. La version courante est 0.6, et peut etre trouvee sur sunsite.unc.edu dans le fichier pub/Linux/kernel/misc-patches/pcsndrv-0.6.tar.z. 22..33.. PPoorrtt ppaarraalllleellee Une autre possibilite est de construire un convertisseur analogique en utilisant le port parallele (port imprimante). Il fournit une qualite bien meilleure, mais toujours au prix d'une charge CPU importante. Le pilote son mentionne ci-dessus supporte ce systeme, et inclut des instructions pour construire le dispositif. 33.. CCoonnffiigguurreerr LLiinnuuxx ppoouurr llee ssuuppppoorrtt dduu ssoonn Configurer Linux pour le support du son necessite les etapes suivantes: 1. Installer la carte son. 2. Configurer et compiler le noyau avec le support son. 3. Creer le fichier de peripherique. 4. Tester l'installation. 33..11.. IInnssttaalllleerr llaa ccaarrttee ssoonn Pour installer la carte, suivez les instructions fournies par le fabricant. N'oubliez pas de noter la configuration des cavaliers pour l'IRQ, le canal DMA, etc. En cas de doute, utilisez les valeurs d'usine. Essayez si possible d'eviter les conflits avec d'autres peripheriques (comme les cartes ethernet, les adaptateurs SCSI). 33..22.. CCoonnffiigguurreerr llee nnooyyaauu Si vous utilisez un noyau recent (0.99pl14 ou plus recent), les pilotes son sont deja inclus dans la distribution du noyau. Suivez la procedure habituelle pour compiler le noyau. Quand vous executerez make config, un programme de configuration vous demandera quelles sont les differentes possibilites de cartes son. Lisez attentivement les informations affichees par ce programme. Si vous evoluez depuis un pilote son plus ancien, assurez-vous que les fichiers /usr/include/sys/soundcard.h et /usr/include/sys/ultrasound.h sont des liens symboliques correspondant aux fichiers dans /usr/include/linux. Il est recommande de lire les fichiers Readme dans le repertoire drivers/sound du noyau, car ils pourraient contenir des informations de derniere minute. Le fichier CHANGELOG contient une liste des ameliorations et des nouvelles fonctionnalites depuis la version precedente. 33..33.. CCrreeeerr llee ffiicchhiieerr ddee ppeerriipphheerriiqquuee La premiere fois que le pilote son est configure, vous devez creer un fichier de peripherique. Le plus simple est de recuperer le petit script shell a la fin du fichier Readme.linux (ou peut-etre Readme) dans le repertoire /usr/src/linux/drivers/sound, et de l'executer en root. Si votre fichier de peripherique existe deja, vous devriez verifier qu'il est correct, c'est-a-dire que /dev/audio a pour numeros de peripherique 14 et 4 (majeur et mineur, respectivement). Si ce n'est pas le cas, ou en cas de doute, executez le script ci-dessus et il les remplacera par les valeurs correctes. Certaines anciennes versions de Linux fournissaient des scripts d'installation qui creaient des fichiers de peripherique incorrects. Peut-etre avez-vous aussi un fichier script /dev/MAKEDEV pour creer les fichiers de peripherique. L'utilisation du script fourni dans le pilote son du noyau est preferable, car il est toujours en phase avec la derniere version du pilote. 33..44.. TTeesstteerr ll''iinnssttaallllaattiioonn Vous pouvez maintenant effectuer les etapes suivantes pour verifier votre configuration materielle et logicielle : 1. Redemarrez avec le nouveau noyau. Suivez votre procedure habituelle pour installer et redemarrer le nouveau noyau (garder l'ancien a portee de main, en cas de probleme). 2. Verifiez que la carte son est reconnue durant l'initialisation du noyau. Essayez de reperer un message comme celui-ci lors du demarrage (s'il defile trop rapidement, utilisez la commande "dmesg" pour le revoir) : ______________________________________________________________________ snd2 at 0x220 irq 5 drq 1 snd1 at 0x388 irq 0 drq 0 ______________________________________________________________________ Cela devrait correspondre a votre carte son et a sa configuration. Le pilote est aussi susceptible d'afficher certains messages d'erreur et de danger durant le demarrage. Pretez-y attention lors du premier redemarrage apres l'installation du pilote son. Si aucune carte son n'est detectee lors de l'initialisation, il y a deux possibilites : +o La configuration du pilote est incorrecte, et le pilote n'a pas ete capable de detecter votre carte a l'adresse I/O indiquee, ou bien +o Le pilote son a ete desactive, ou vous avez demarre avec un noyau ancien (une erreur courante). 3. Verifiez le fichier de peripherique /dev/sndstat. Lire le fichier de peripherique de status du pilote son peut vous fournir des informations supplementaires pour savoir si la carte son s'est correctement initialisee. Le contenu devrait ressembler a quelque chose comme ca : ______________________________________________________________________ % cat /dev/sndstat Sound Driver:2.5 (Wed Apr 20 19:57:25 EDT 1994 root@fizzbin) Config options: 1aa2 HW config: Type 2: SoundBlaster at 0x220 irq 5 drq 1 Type 1: AdLib at 0x388 irq 0 drq 0 PCM devices: 0: SoundBlaster Pro 3.2 Synth devices: 0: Yamaha OPL-3 Midi devices: 0: SoundBlaster Mixer(s) installed ______________________________________________________________________ Si la commande cat affiche "No such device", le pilote son n'est pas actif dans le noyau. Assurez-vous que vous avez demarre avec le noyau que vous venez de compiler. Si l'affichage ne contient pas de dispositif son (PCM, Synth ou MIDI), votre carte son n'a pas ete detectee. Verifier que la section "HW config" contient les bonne informations. 4. Jouez un fichier d'exemple. Trouvez un fichier echantillonne, et envoyez au fichier de peripherique son, pour tester la sortie son, par exemple: ______________________________________________________________________ % cat bonjour >/dev/dsp % cat crash.au >/dev/audio ______________________________________________________________________ Quelques fichiers son (echantillonnes) peuvent etre trouves dans le fichier snd-data-0.1.tar.Z. 5. Verifiez l'enregistrement. Si votre carte peut enregistrer, vous pouvez faire un test rapide en utilisant les commandes suivantes: ______________________________________________________________________ # enregistrement de 4 secondes de son depuis le microphone % dd bs=8k count=4 essai.au # jouer le son % cat essai.au >/dev/audio ______________________________________________________________________ Si ces tests sont concluants, vous pouvez raisonnablement vous dire que le dispositif son fonctionne bien. Si vous avez des problemes, lisez la section FAQ de ce document. 44.. AApppplliiccaattiioonnss uuttiilliissaanntt llee ssoonn _T_h_e _L_i_n_u_x _S_o_u_n_d _U_s_e_r_'_s _G_u_i_d_e decrit en detail les applications disponibles pour Linux en detail. Je ne donnerai ici que quelques exemples du type d'applications que vous pouvez utiliser si vous avez une carte son sous Linux. Au minimum, vous devriez vous equiper des applications suivantes: +o utilitaire de conversion de formats de fichiers audio (p.e. Sox) +o utilitaire de mixage (p.e. aumix ou xmix) +o enregistreur/diffuseur de fichiers numerises (e.g. play) +o diffuseur de fichiers MOD (e.g. tracker) +o diffuseur de fichiers MIDI (e.g. mp) La plupart de ces utilitaires existent aussi bien en version texte que graphique. Il existe aussi des applications plus esoteriques (comme la synthese vocale) que vous pouvez aussi essayer. 55.. RReeppoonnsseess aauuxx qquueessttiioonnss ffrreeqquueemmmmeenntt ppoosseeeess Cette section repond a quelques questions qui ont ete frequemment posees sur les conferences Usenet et les mailing lists. 55..11.. QQuueellss ssoonntt lleess ddiivveerrss ffiicchhiieerrss ddee ppeerriipphheerriiqquuee ppoouurr llee ssoonn ?? //ddeevv//aauuddiioo dispositif audio compatible avec les stations de travail Sun (implementation partielle; par de support de l'interface ioctl de Sun, simplement l'encodage u-law) //ddeevv//ddsspp dispositif d'echantillonnage numerique //ddeevv//mmiixxeerr mixeur son //ddeevv//sseeqquueenncceerr acces au MIDI, FM, et a la GUS //ddeevv//mmiiddii dispositif MIDI (pas encore implemente dans la version actuelle du pilote son) //ddeevv//ssnnddssttaatt affiche le status du pilote son lorsqu'il est lu //ddeevv//aauuddiioo11 pour la deuxieme carte son //ddeevv//ddsspp11 pour la deuxieme carte son Le pilote pour haut-parleur PC fournit les fichiers de peripherique suivants : //ddeevv//ppccaauuddiioo equivalent a /dev/audio //ddeevv//ppccsspp equivalent a /dev/dsp //ddeevv//ppccmmiixxeerr equivalent a /dev/mixer 55..22.. CCoommmmeenntt ppuuiiss--jjee jjoouueerr uunn eecchhaannttiilllloonn ssoonnoorree ?? Les fichiers son .au des stations Sun peuvent etre joues en les envoyant sur le fichier de peripherique /dev/audio. Les echantillons bruts peuvent etre envoyes a /dev/dsp. L'utilisation d'un programme comme play est recommandee, car il va reconnaitre les plupart des formats de fichiers, et configurer la carte son a la bonne vitesse d'echantillonnage, etc. 55..33.. CCoommmmeenntt ppuuiiss--jjee eennrreeggiissttrreerr uunn eecchhaannttiilllloonn ?? La lecture de /dev/audio ou /dev/dsp retourne les donnees numerisees, qui peuvent etre redirigees vers un fichier. Un programme tel que vrec rend plus faciles le controle de la vitesse d'echantillonnage, la duree, etc. Vous aurez peut-etre aussi besoin d'un programme de mixage pour choisir la bonne entree de la carte. 55..44.. PPuuiiss--jjee aavvooiirr pplluuss dd''uunnee ccaarrttee ssoonn ?? Jusqu'a deux cartes son sont supportees. Il est possible d'installer une Gravis UltraSound ou une MPU-401 avec une SoundBlaster, une SoundBlaster Pro, une SoundBlaster16 ou une ProAudioSpectrum16. Il n'est _p_a_s possible d'avoir une ProAudioSpectrum16 et une SoundBlaster en meme temps (la PAS16 contient une emulation SB). Il est aussi impossible d'avoir plus d'une carte du meme type. Par exemple, la combinaison GUS + GUS n'est pas possible. Vous pouvez changer la configuration de la carte son au moment de demarrage en utilisant les options de ligne de commande grace a un boot manager comme LILO. Voir le fichier Readme.linux du pilote son dans le noyau pour plus de details. 55..55.. EErrrroorr:: NNoo ssuucchh ffiillee oorr ddiirreeccttoorryy for sound devices Vous devez creer les fichiers de peripherique du pilote son. Voir la section sur la creation des fichiers de peripherique. Si vous avez des fichiers de peripherique, assurez-vous qu'ils ont les bons numeros (major et minor) de fichier de peripherique (certaines anciennes distributions de Linux sur CD-ROM ne creent pas les fichiers de peripherique corrects lors de l'installation). 55..66.. EErrrroorr:: NNoo ssuucchh ddeevviiccee for sound devices Vous avez demarre avec un noyau contenant le pilote son, ou l'adresse I/O de la carte ne correspond pas au materiel. Verifiez que vous faites tourner le noyau recemment compile, et verifiez les parametres entres lors de la configuration du pilote son. 55..77.. EErrrroorr:: NNoo ssppaaccee lleefftt oonn ddeevviiccee for sound devices Cela se produit si vous essayez d'enregistrer des donnees sur /dev/audio ou /dev/dsp sans creer les fichiers de peripherique necessaires. Le fichier de peripherique son est maintenant un fichier normal, et a rempli votre partition. Vous devez executer le script decrit dans la section _C_r_e_e_r _l_e _f_i_c_h_i_e_r _d_e _p_e_r_i_p_h_e_r_i_q_u_e dans ce document. 55..88.. EErrrroorr:: ddeevviiccee bbuussyy for sound devices Le fichier de peripherique ne peut etre ouvert que par un processus a la fois. Le fichier de peripherique est probablement utilise par un autre processus. On peut le verifier en utilisant la commande fuser: ______________________________________________________________________ % fuser -v /dev/dsp /dev/dsp: USER PID ACCESS COMMAND tranter 265 f.... tracker ______________________________________________________________________ Dans l'exemple ci-dessus, la commande fuser montre que le processus 265 a ouvert le fichier de peripherique. Pour utiliser le fichier de peripherique a nouveau, il faut attendre que le processus s'acheve ou le tuer. 55..99.. JJ''aaii ttoouujjoouurrss lleess eerrrreeuurrss ddeevviiccee bbuussyy ! (L'explication suivante a ete fournie par Harald Albrecht albrecht@igpm.rwth-aachen.de) Quelques cartes son supportent l'utilisation du canal DMA 0. La configuration du pilote son l'autorise, et le noyau se compile correctement, mais l'acces au fichier de peripherique son se solde par des messages d'erreur "device busy". La raison est que le noyau de Linux reserve le canal DMA 0 pour le rafraichissement des DRAMs. Ce n'est plus vrai pour les cartes meres 386/486 modernes qui utilisent leur propre logique. Vous pouvez corriger cela en changeant cette ligne dans le fichier /usr/src/linux/kernel/dma.c: ______________________________________________________________________ static volatile unsigned int dma_chan_busy[MAX_DMA_CHANNELS] = { 1, 0, 0, 0, 1, 0, 0, 0 }; ______________________________________________________________________ Remplacez le premier 1 par un 0; cela libere le canal DMA 0. Ne faites pas la meme chose pour le canal 4, car c'est le canal de chainage, et cela ne fonctionnera pas ! Le code devrait maintenant ressembler a quelque chose comme ca : ______________________________________________________________________ static volatile unsigned int dma_chan_busy[MAX_DMA_CHANNELS] = { 0, 0, 0, 0, 1, 0, 0, 0 }; ______________________________________________________________________ Recompilez et redemarrez avec le nouveau noyau. 55..1100.. DDiiffffuussiioonn ppaarrttiieellllee ddeess ffiicchhiieerrss ssoonnss nnuummeerriisseess Le symptome est habituellement qu'un son se joue environ une seconde et s'arrete completement ou affiche une erreur comme "missing IRQ" ou "DMA timeout". Vous avez certainement une mauvaise configuration IRQ ou DMA. Verifier que la configuration du noyau correspond aux cavaliers sur la carte son, et qu'il n'y a pas de conflit avec une autre carte. 55..1111.. IIll yy ddeess ppaauusseess lloorrss ddee llaa ddiiffffuussiioonn ddee ffiicchhiieerrss MMOODD La diffusion de fichiers MOD requiert une puissance CPU considerable. Vous avez peut-etre trop de processus qui s'executent, ou votre ordinateur est peut-etre trop lent pour jouer en temps reel. Vous pouvez: +o essayer de jouer a une vitesse d'echantillonnage plus basse, ou en mode mono +o eliminer les autres processus +o acheter un ordinateur plus rapide +o acheter une carte son plus puissante (p.e. une Gravis UltraSound) 55..1122.. EErrrreeuurr ddee ccoommppiillaattiioonn lloorrss ddee llaa ccoommppiillaattiioonn dd''aapppplliiccaattiioonnss ssoonn La version 1.0c du pilote son, comme les precedentes, utilisait un systeme ioctl() incompatible. Procurez-vous un code source plus recent, ou faites les changements necessaires pour l'adapter au nouveau pilote. Voyez le fichier Readme du pilote son pour plus de details. Assurez-vous aussi que vous utilisez la derniere version de soundcard.h et de ultrasound.h lors de la compilation de l'applications. Voir les instructions d'installation au debut de ce texte. 55..1133.. aauuppaarraavvaanntt SSEEGGVV lloorrss ddee ll''eexxeeccuuttiioonn ddee pprrooggrraammmmeess ssoonn qquuii ss''eexxeeccuuttaaiieenntt bbiieenn Le probleme est probablement le meme qu'a la question precedente. 55..1144.. QQuueellss ssoonntt lleess bboogguueess ccoonnnnuuss oouu lleess lliimmiittaattiioonnss dduu ppiilloottee ssoonn ?? Voir les fichiers Readme et CHANGELOG inclus avec le source du pilote son dans le noyau. 55..1155.. QQuueellllee vveerrssiioonn dduu ppiilloottee ssoonn ddeevvrraaiiss--jjee uuttiilliisseerr ?? Si vous utilisez la version 1.0c ou plus ancienne, vous devez imperativement effectuer une mise a jour. La version 1.0c n'est pas compatible avec les applications ecrites pour la version 2.0 et plus recentes. Il n'y a pas eu de changement importants apres la version 2.0, donc si vous n'avez pas de probleme et que votre version convient a vos besoins, il n'y a pas de raison particuliere pour changer de version (cela devrait etre vrai au moins jusqu'en septembre 1994). La derniere version officielle est dans la derniere distribution de noyau Linux. Il peut aussi y avoir des versions de test et des prototypes alentour. Si le numero de version est inferieur a 2.9, la version est probablement sure. Une version ayant un numero de version de la forme 2.99.XX est incomplete; c'est une version experimentale de test. Si vous etes interesse par le developpement du pilote son, rejoignez le SOUND channel des linux activists. 55..1166.. QQuuee ssiiggnniiffiieenntt ttoouutteess lleess ooppttiioonnss ddee ccoonnffiigguurraattiioonn dduu ppiilloottee ssoonn ?? Pendant la configuration du pilote son, un programme configure est compile puis execute. Ce programme vous pose quelques questions, et genere le fichier d'en-tete local.h qui definit la configuration de la carte son. Le fichier configuration definit (ou redefinit) les symboles suivants: Symbole Action ====== ======= KERNEL_SOUNDCARD active/desactive le pilote son CONFIGURE_SOUNDCARD active/desactive le pilote son EXCLUDE_PAS support ProAudioSpectrum EXCLUDE_SB support SoundBlaster EXCLUDE_ADLIB support AdLib EXCLUDE_GUS support Gravis UltraSound EXCLUDE_MPU401 support interface MIDI MPU-401 EXCLUDE_SBPRO support SoundBlaster Pro EXCLUDE_SB16 support SoundBlaster 16 EXCLUDE_AUDIO support numerisation EXCLUDE_MIDI support interface MIDI EXCLUDE_YM3812 support synthetiseur FM (YM3812/OPL-3) EXCLUDE_SEQUENCER support sequenceur MIDI EXCLUDE_PRO_MIDI support SoundBlaster Pro MIDI EXCLUDE_CHIP_MIDI support MIDI on CHIP SBC_IRQ numero IRQ SoundBlaster SBC_DMA canal DMA SoundBlaster SB16_DMA canal DMA SoundBlaster 16 SB16_MIDI_BASE adresse de base du port MIDI SoundBlaster 16 PAS_IRQ numero IRQ ProAudioSpectrum PAS_DMA canal DMA ProAudioSpectrum GUS_IRQ numero IRQ Gravis UltraSound GUS_DMA canal DMA Gravis UltraSound GUS_BASE adresse de base Gravis UltraSound MPU_IRQ numero IRQ MPU-401 MPU_BASE adresse de base MPU-401 DSP_BUFFSIZE taille du tampon DMA Plusieurs autres symboles sont aussi crees, pour definir des parametres comme la revision du pilote son, et l'heure et la date d'execution de configure. Il y a d'autres parametres qui ne sont pas fixes par le programme configure (p.e. l'adresse de base de la SoundBlaster). Si vous avez besoin de les changer, editez le fichier sound_config.h. Pour desactiver le pilote son, executez make config et repondez "no" a la question "Sound card support?". 55..1177.. QQuueelllleess aammeelliioorraattiioonnss ffuuttuurreess ssoonntt pprreevvuueess ppoouurr llee ppiilloottee ssoonn ?? Le pilote son n'est pas uniquement pour Linux ; il supporte aussi d'autres systemes Unix a plate-formes Intel. Le paquetage est maintenant appele "VoxWare". Certaines ameliorations a l'etude sont: +o implementer un support MIDI complet +o supporter patch manager +o documenter le pilote son (Hacker's Guide) +o supporter quelques nouvelles cartes son +o diverses corrections de bugs 55..1188.. OOuu ssoonntt ddooccuummeenntteess lleess iiooccttllss(()) dduu ppiilloottee ssoonn ?? Ils sont documentes dans le _H_a_c_k_e_r_'_s _G_u_i_d_e _t_o _V_o_x_W_a_r_e, disponible actuellement sous forme de brouillon. La derniere version est draft 2, et peut etre trouvee sur nic.funet.fi dans /pub/OS/linux/ALPHA/sound. Notez que ce repertoire est "cache" et n'apparaitra pas dans les listings de repertoires. Si vous faites "cd" dans le repertoire et utilisez la commande "dir" de FTP, les fichier _s_o_n_t la. 55..1199.. ssaannss ppaauusseess ?? QQuueelllleess ssoonntt lleess rreessssoouurrcceess CCPPUU rreeqquuiisseess ppoouurr jjoouueerr eett eennrreeggiissttrreerr Il n'y a pas de reponse evidente a cette question. Cela depend : +o de l'utilisation de l'echantillonnage PCM ou de la synthese FM +o de la vitesse d'echantillonnage et de la taille d'un echantillon +o de l'application a utiliser pour jouer ou enregistrer +o du type de carte son +o de la vitesse du disque et de la CPU, de la taille du cache, etc. D'une facon generale, n'importe quel 386 devrait etre capable de jouer des echantillons ou de la musique en synthese FM sur une carte son 8 bit sans probleme. La diffusion de fichiers MOD, cependant, requiert des ressources CPU considerables. Des mesures experimentales montrent que jouer a 44kHz requiert plus de 40% de la vitesse d'un 486/50 et un 386/25 peut difficilement jouer a plus de 22kHz (mesures avec une carte son 8 bit de type Sound Blaster). Une carte telle que la Gravis UlraSound effectue plus de calculs d'elle-meme, et reduit d'autant les ressources CPU requises. Ces remarques supposent que l'ordinateur n'effectue aucune autre tache intensive durant la diffusion. La conversion de fichiers son ou l'ajout d'effets en utilisant un outil comme Sox sont aussi beaucoup plus rapides si vous avez un coprocesseur. Le pilote son n'effectue cependant aucune operation en virgule flottante. 55..2200.. PPrroobblleemmeess aavveecc uunnee PPAASS1166 eett uunnee AAddaapptteecc 11554422 SSCCSSII (L'explication suivante a ete fournie par seeker@indirect.com) Linux ne sait reconnaitre la 1542 qu'a l'adresse 330 (defaut) ou 333, et la PAS n'autorise que l'emulation MPU-401 a l'adresse 330. Meme si vous desactivez la MPU-401 par logiciel, quelque chose entrera en conflit avec la 1542 si elle est a son adresse par defaut. Deplacer la 1542 en 333 contentera tout le monde. De plus, la 1542 et la PAS-16 font toutes deux appel au DMA 16-bit, donc si vous echantillonnez a 16-bit 44kHz en stereo et que vous sauvez le fichier sur un disque SCSI controle par la 1542, vous allez peut-etre avoir des problemes. Les DMAs se recouvrent, et il n'y a pas assez de temps pour le rafraichissment de la RAM, et vous obtenez le message "PARITY ERROR - SYSTEM HALTED", avec aucun indice sur ce qui a pu le causer. C'est encore pire a cause de quelques vendeurs de backups QIC-117 qui recommandent de changer la duree du on/off sur le bus, qui fait que la 1542 est encore plus longue. Procurez-vous le programme SCSISEL.EXE depuis le BBS Adaptec ou un autre endroit sur l'Internet, et reduisez la duree BUS ON ou augmentez la duree BUS OFF jusqu'a ce que la probleme disparaisse. SCSISEL change les valeurs dans l'EEPROM, donc c'est un changement plus permanent qu'un patch au pilote DOS du CONFIG.SYS, et fonctionnera si vous demarrez directement Linux (pas comme le patch DOS). Le probleme est alors resolu. Dernier probleme - les vieux chipsets Symphony reduisaient enormement les durees des cylces d'I/O opur accelerer l'acces au bus. _A_u_c_u_n_e des cartes que j'ai teste n'avait de probleme avait la reduction de duree, sauf la PAS-16. Le BBS de Media Vision propose SYMPFIX.EXE qui est cense reparer le probleme et changeant le bit de diagnostic dans le controleur de bus Symphony, mais c'est n'est pas une garantie. Vous aurez peut-etre a : +o retourner chez le revendeur de la carte mere pour remplacer le controleur de bus, +o remplacer la carte mere, ou +o acheter une autre marque de carte son. Young Microsystems mettront a jour les cartes qu'ils importent pour environ $30 (US); d'autres vendeurs peuvent proposer des offres similaires si vous pouvez identifier qui a fabrique ou importe la carte mere (bonne chance). Le probleme est dans l'interface bus de la ProAudio pour ce que j'en sais ; _p_e_r_s_o_n_n_e n'achete une carte son a $120 pour la mettre dans un AT a 6MHz. La plupart l'utilisent dans des 386/486 entre 25 et 40 MHz, et la carte devrait etre capable de supporter _a_u _m_o_i_n_s une vitesse de bus de 12MHz si les controleurs etaient bien concus. Fin de parenthese. Le premier probleme depend du chipset utilise sur la carte mere, de la vitesse de bus et autre parametres du BIOS, et de la phase de la Lune. Le deuxieme probleme depend de vos options de rafraichissment (cache ("hidden") ou synchrone), la vitesse de DMA de la 1542 et (peut-etre) de la vitesse d'I/O du bus. Le troisieme peut etre determine en appelant Media Vision et en leur demandant quels sont les chipsets Symphony incompatibles avec la lenteur de leur controleur. Soyez prevenus, les 3 ou 4 techniciens auxquels j'ai parle semblaient reellement atteints. Et je serais vraiment naif de croire ce qu'ils disent a propos d'un materiel qui leur est etranger, car ils ne connaissent deja pas bien le leur. 55..2211.. PPrroobblleemmeess aavveecc llee ssyynntthheettiisseeuurr FFMM ssuurr uunnee SSoouunndd BBllaasstteerr PPrroo 11 Les SB Pro recentes ont un chip FM OPL-3, mais les versions 1 utilisaient l'OPL2-2. Le pilote son suppose la presence d'un OPL-3. La version 2.5 du pilote son corrige ce probleme. 55..2222.. LLaa GGUUSS--MMAAXX eesstt--eellllee ssuuppppoorrtteeee?? La GUX-MAX n'est pas encore explicitement supportee, mais elle marche partiellement avec le pilote actuel. Le pilote ne sait pas utiliser le mixer ni l'echantillonnage 16 bit. L'initialisation de la carte sous MS-DOS avant de demarrer Linux (en utilisant ctrl-alt-del) devrait la faire fonctionner. Le support complet de la GUS-MAX (et la GUS + carte fille 16 bit) devrait etre fourni dans le pilote dans un futur proche. 55..2233.. QQuuee ffaaiirree ssii mmaa ccaarrttee ssoonn nn''eesstt ppaass ssuuppppoorrtteeee ?? D'abord, assurez-vous que votre carte n'est vraiment pas supportee. Quelques cartes sont compatibles avec des cartes supportees (p.e. la Logitech SoundMan 16 est compatible avec la ProAudioSpectrum 16). Posez votre question dans les conferences appropriees, ou dans le SOUND channel de la Linux activists mailing list. Si votre carte n'est vraiment pas supportee, voila quelques options : +o remplacez-la par une carte son supportee +o ecrivez votre pilote vous-meme +o demandez a Hannu Savolainen d'ajouter le support dans le pilote son Le _H_a_c_k_e_r_'_s _G_u_i_d_e _t_o _V_o_x_w_a_r_e contient quelques commentaires sur la nature des cartes son qui pourraient etre supportees dans le futur. 55..2244.. EEsstt--iill ppoossssiibbllee ddee lliirree eett eeccrriirree ddeess eecchhaannttiilllloonnss ssiimmuullttaannee-- mmeenntt?? A cause de limitations materielles, ce n'est pas possible avec la plupart des cartes son. La seule carte supportee qui peut le faire est la ProAudioSpectrum16. Voir la section sur "bidirectional mode" dans le _H_a_c_k_e_r_'_s _G_u_i_d_e _t_o _V_o_x_w_a_r_e pour plus d'information.