Cette section répond à quelques questions qui ont été fréquemment posées sur les conférences Usenet et les mailing lists.
dispositif audio compatible avec les stations de travail Sun (implémentation partielle; par de support de l'interface ioctl de Sun, simplement l'encodage u-law)
dispositif d'échantillonnage numérique
mixeur son
accès au MIDI, FM, et à la GUS
dispositif MIDI (pas encore implémenté dans la version actuelle du pilote son)
affiche le status du pilote son lorsqu'il est lu
pour la deuxième carte son
pour la deuxième carte son
Le pilote pour haut-parleur PC fournit les fichiers de périphérique suivants :
équivalent à /dev/audio
équivalent à /dev/dsp
équivalent à /dev/mixer
Les fichiers son .au des stations Sun peuvent être joués en les envoyant sur
le fichier de périphérique /dev/audio
. Les échantillons bruts peuvent être
envoyés à /dev/dsp
. L'utilisation d'un programme comme
play
est recommandée, car il va reconnaître les plupart des formats
de fichiers, et configurer la carte son à la bonne vitesse
d'échantillonnage, etc.
La lecture de /dev/audio
ou /dev/dsp
retourne les données
numérisées, qui peuvent être redirigées vers un fichier. Un programme tel
que vrec
rend plus faciles le contrôle de la vitesse
d'échantillonnage, la durée, etc. Vous aurez peut-être aussi besoin d'un
programme de mixage pour choisir la bonne entrée de la carte.
Jusqu'à deux cartes son sont supportées. 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 pas possible d'avoir une ProAudioSpectrum16 et une SoundBlaster en même temps (la PAS16 contient une émulation SB). Il est aussi impossible d'avoir plus d'une carte du même type. Par exemple, la combinaison GUS + GUS n'est pas possible.
Vous pouvez changer la configuration de la carte son au moment de démarrage
en utilisant les options de ligne de commande grâce à un boot manager comme
LILO. Voir le fichier Readme.linux
du pilote son dans le noyau pour
plus de détails.
No such file or directory
for sound devicesVous devez créer les fichiers de périphérique du pilote son. Voir la section sur la création des fichiers de périphérique. Si vous avez des fichiers de périphérique, assurez-vous qu'ils ont les bons numéros (major et minor) de fichier de périphérique (certaines anciennes distributions de Linux sur CD-ROM ne créent pas les fichiers de périphérique corrects lors de l'installation).
No such device
for sound devicesVous avez démarré avec un noyau contenant le pilote son, ou l'adresse I/O de la carte ne correspond pas au matériel. Vérifiez que vous faites tourner le noyau récemment compilé, et vérifiez les paramètres entrés lors de la configuration du pilote son.
No space left on device
for sound devicesCela se produit si vous essayez d'enregistrer des données sur /dev/audio ou /dev/dsp sans créer les fichiers de périphérique nécessaires. Le fichier de périphérique son est maintenant un fichier normal, et a rempli votre partition. Vous devez exécuter le script décrit dans la section Créer le fichier de périphérique dans ce document.
device busy
for sound devicesLe fichier de périphérique ne peut être ouvert que par un processus à la fois. Le fichier de périphérique est probablement utilisé par un autre processus. On peut le vérifier 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 périphérique. Pour utiliser le fichier de périphérique à nouveau, il faut attendre que le processus s'achève ou le tuer.
device busy
!(L'explication suivante a été 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'accès au fichier de périphérique son se solde par des messages d'erreur "device busy".
La raison est que le noyau de Linux réserve le canal DMA 0 pour le rafraîchissement des DRAMs. Ce n'est plus vrai pour les cartes mères 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 libère le canal DMA 0. Ne faites pas la même chose pour le canal 4, car c'est le canal de chainage, et cela ne fonctionnera pas ! Le code devrait maintenant ressembler à quelque chose comme ca :
static volatile unsigned int dma_chan_busy[MAX_DMA_CHANNELS] = {
0, 0, 0, 0, 1, 0, 0, 0
};
Recompilez et redémarrez avec le nouveau noyau.
Le symptôme est habituellement qu'un son se joue environ une seconde et s'arrête complètement ou affiche une erreur comme "missing IRQ" ou "DMA timeout". Vous avez certainement une mauvaise configuration IRQ ou DMA. Vérifier 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.
La diffusion de fichiers MOD requiert une puissance CPU considérable. Vous avez peut-être trop de processus qui s'exécutent, ou votre ordinateur est peut-être trop lent pour jouer en temps réel. Vous pouvez:
La version 1.0c du pilote son, comme les précédentes,
utilisait un système ioctl()
incompatible. Procurez-vous
un code source plus récent, ou faites les changements
nécessaires pour l'adapter au nouveau pilote. Voyez le fichier
Readme
du pilote son pour plus de détails.
Assurez-vous aussi que vous utilisez la dernière version de
soundcard.h
et de ultrasound.h
lors de la compilation de
l'applications. Voir les instructions d'installation au début de ce texte.
Le problème est probablement le même qu'à la question précédente.
Voir les fichiers Readme
et CHANGELOG
inclus avec le
source du pilote son dans le noyau.
Si vous utilisez la version 1.0c ou plus ancienne, vous devez impérativement effectuer une mise à jour. La version 1.0c n'est pas compatible avec les applications écrites pour la version 2.0 et plus récentes.
Il n'y a pas eu de changement importants après la version 2.0, donc si vous n'avez pas de problème et que votre version convient à vos besoins, il n'y a pas de raison particulière pour changer de version (cela devrait être vrai au moins jusqu'en septembre 1994).
La dernière version officielle est dans la dernière distribution de noyau Linux. Il peut aussi y avoir des versions de test et des prototypes alentour. Si le numéro de version est inférieur à 2.9, la version est probablement sûre. Une version ayant un numéro de version de la forme 2.99.XX est incomplète; c'est une version expérimentale de test.
Si vous êtes intéressé par le développement du pilote son, rejoignez le SOUND channel des linux activists.
Pendant la configuration du pilote son, un programme configure
est
compilé puis exécuté. Ce programme vous pose quelques questions, et génère
le fichier d'en-tête local.h
qui définit la configuration de la carte
son.
Le fichier configuration définit (ou redéfinit) 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 créés, pour définir des paramètres comme la révision du pilote son, et l'heure et la date d'exécution de configure.
Il y a d'autres paramètres qui ne sont pas fixés par le programme configure
(p.e. l'adresse de base de la SoundBlaster). Si vous avez besoin de les
changer, éditez le fichier sound_config.h
.
Pour désactiver le pilote son, exécutez make config
et répondez
"no" à la question "Sound card support?".
Le pilote son n'est pas uniquement pour Linux ; il supporte aussi d'autres systèmes Unix à plate-formes Intel. Le paquetage est maintenant appelé "VoxWare". Certaines améliorations à l'étude sont:
Ils sont documentés dans le Hacker's Guide to VoxWare, disponible
actuellement sous forme de brouillon. La dernière version est draft 2, et
peut être trouvée sur nic.funet.fi
dans
/pub/OS/linux/ALPHA/sound
. Notez que ce répertoire est
"caché" et
n'apparaîtra pas dans les listings de répertoires. Si vous
faites "cd" dans le
répertoire et utilisez la commande "dir" de FTP, les fichier sont
là.
Il n'y a pas de réponse évidente à cette question. Cela dépend :
D'une façon générale, n'importe quel 386 devrait être capable de jouer des échantillons ou de la musique en synthèse FM sur une carte son 8 bit sans problème.
La diffusion de fichiers MOD, cependant, requiert des ressources CPU considérables. Des mesures expérimentales montrent que jouer à 44kHz requiert plus de 40% de la vitesse d'un 486/50 et un 386/25 peut difficilement jouer à 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-même, et réduit d'autant les ressources CPU requises.
Ces remarques supposent que l'ordinateur n'effectue aucune autre tâche 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 opération en virgule flottante.
(L'explication suivante a été fournie par seeker@indirect.com
)
Linux ne sait reconnaître la 1542 qu'à l'adresse 330 (défaut) ou 333, et la PAS n'autorise que l'émulation MPU-401 à l'adresse 330. Même si vous désactivez la MPU-401 par logiciel, quelque chose entrera en conflit avec la 1542 si elle est à son adresse par défaut. Déplacer 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 échantillonnez à 16-bit 44kHz en stéreo et que vous sauvez le fichier sur un disque SCSI contrôlé par la 1542, vous allez peut-être avoir des problèmes. Les DMAs se recouvrent, et il n'y a pas assez de temps pour le rafraîchissment 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 à cause de quelques vendeurs de backups QIC-117 qui recommandent de changer la durée 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 réduisez la durée BUS ON ou augmentez la durée BUS OFF jusqu'à ce que la problème 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 démarrez directement Linux (pas comme le patch DOS). Le problème est alors résolu.
Dernier problème - les vieux chipsets Symphony réduisaient énormément les durées des cylces d'I/O opur accélérer l'accès au bus. Aucune des cartes que j'ai testé n'avait de problème avait la réduction de durée, sauf la PAS-16. Le BBS de Media Vision propose SYMPFIX.EXE qui est censé réparer le problème et changeant le bit de diagnostic dans le contrôleur de bus Symphony, mais c'est n'est pas une garantie. Vous aurez peut-être à :
Young Microsystems mettront à jour les cartes qu'ils importent pour environ $30 (US); d'autres vendeurs peuvent proposer des offres similaires si vous pouvez identifier qui a fabriqué ou importé la carte mère (bonne chance). Le problème est dans l'interface bus de la ProAudio pour ce que j'en sais ; personne n'achète une carte son à $120 pour la mettre dans un AT à 6MHz. La plupart l'utilisent dans des 386/486 entre 25 et 40 MHz, et la carte devrait être capable de supporter au moins une vitesse de bus de 12MHz si les contrôleurs étaient bien conçus. Fin de parenthèse.
Le premier problème dépend du chipset utilisé sur la carte mère, de la vitesse de bus et autre paramètres du BIOS, et de la phase de la Lune. Le deuxième problème dépend de vos options de rafraîchissment (caché ("hidden") ou synchrone), la vitesse de DMA de la 1542 et (peut-être) de la vitesse d'I/O du bus. Le troisième peut être déterminé en appelant Media Vision et en leur demandant quels sont les chipsets Symphony incompatibles avec la lenteur de leur contrôleur. Soyez prévenus, les 3 ou 4 techniciens auxquels j'ai parlé semblaient réellement atteints. Et je serais vraiment naïf de croire ce qu'ils disent à propos d'un matériel qui leur est étranger, car ils ne connaissent déjà pas bien le leur.
Les SB Pro récentes ont un chip FM OPL-3, mais les versions 1 utilisaient l'OPL2-2. Le pilote son suppose la présence d'un OPL-3. La version 2.5 du pilote son corrige ce problème.
La GUX-MAX n'est pas encore explicitement supportée, mais elle marche partiellement avec le pilote actuel. Le pilote ne sait pas utiliser le mixer ni l'échantillonnage 16 bit. L'initialisation de la carte sous MS-DOS avant de démarrer 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 être fourni dans le pilote dans un futur proche.
D'abord, assurez-vous que votre carte n'est vraiment pas supportée. Quelques cartes sont compatibles avec des cartes supportées (p.e. la Logitech SoundMan 16 est compatible avec la ProAudioSpectrum 16). Posez votre question dans les conférences appropriées, ou dans le SOUND channel de la Linux activists mailing list.
Si votre carte n'est vraiment pas supportée, voilà quelques options :
Le Hacker's Guide to Voxware contient quelques commentaires sur la nature des cartes son qui pourraient être supportées dans le futur.
A cause de limitations matérielles, ce n'est pas possible avec la plupart des cartes son. La seule carte supportée qui peut le faire est la ProAudioSpectrum16. Voir la section sur "bidirectional mode" dans le Hacker's Guide to Voxware pour plus d'information.
Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre