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/.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:21