Questa sezione risponde a diverse domande poste allo "Usenet news groups" e alle "mailing lists".
Qursti sono i device file "standard" , alcune distribuzioni di Linux possono usare nomi lievemente diversi .
Audio device compatibile con Sun workstation (solo una parziale implementazione; non supporta la "Sun ioctl interface " )
digital sampling device
sound mixer
second sound mixer
Patch Manager (non implementato)
Patch Manager (non implementato)
low level MIDI, FM, and GUS access
high level sequencer interface (parzialmente implementato)
1st raw MIDI port
2nd raw MIDI port
3rd raw MIDI port
4th raw MIDI port
se lo leggi mostra lo stato del sound driver
for second sound card
for second sound card
Il "PC speaker driver" usa i seguenti devices:
equivalente a /dev/audio
equivalente a /dev/dsp
equivalente a /dev/mixer
I file (.au) delle workstation Sun possono essere eseguiti reindirizzandoli al device
/dev/audio
. I "Raw samples" possono essere eseguiti reindirizzandoli su
/dev/dsp
. E` preferibile usare comunque un programma tipo play
, visto che riconosce la maggior parte di file e setta la scheda sonora al giusto
"sampling rate", etc.
Leggendo dal file /dev/audio
o /dev/dsp
si ricevono dei dati d'esempio che possono
essere reindirizzati su un file. Un programma tipo vrec
rende piú semplice il controllo di "sampling rate", durata, etc. Dovreste servirvi comunque di un
programma mixer
per selezionare il corretto device di input (sorgente suono).
Sono supportate fino a 2 schede sonore. E` possibile installare unaa Gravis UltraSound o una MPU-401 con una SoundBlaster, SoundBlaster Pro, SoundBlaster16 o ProAudioSpectrum16. Non é possibile avere una ProAudioSpectrum16 e una SoundBlaster allo stesso tempo (la PAS16 monta un emulatore SoundBlaster ). Inoltre non é possibile avere piú di una scheda dello stesso tipo allo stesso momento -- per esempio, la combinazione simultanea di una GUS + una seconda GUS non é possibile.
Puoi cambiare i parametri di configurazione della shceda sonora
al boot time usando la riga di comando del "Boot Loader" (tipo LILO).
Controlla il file provvisto con il "kernel sound driver" Readme.linux
per i dettagli.
No such file or directory
for sound devicesDevi creare i device files per il sound driver . Controlla la sezione sulla "Creazione dei device files" . Se ci sono, assicurati che abbiano il corretto {intraducibile} "minor and major number" (alcune vecchie distribuzioni di Linux sui CD-ROM non creano i "device files" corretti al momento dell' installazione).
No such device
for sound devicesNon avete eseguito il boot con un kernel compilato con il supporto del sound driver o la configurazione dell' "I/O address" non corrisponde al vostro hardware. Controllate se avete usato il kernel giusto e verificate che il settaggio dei parametri della vostra scheda, assegnato in fase di configurazione del "sound driver", corrisponda esattamente al settaggio della scheda stessa.
No space left on device
for sound devicesPuó succedere se provate a registrare dati attraverso : /dev/audio o /dev/dsp senza aver creato i necessari "device file". Il "sound device" ora é un file normale , ed ha riempito la vostra partizione. Dovete eseguire lo script documentato nella sezione Creazione dei "Device Files" in questo documento.
device busy
for sound devicesIl "sound device" puó essere usato da un solo processo per volta. Probabilmente qualche altro process stà usando il "device" in questione. Uno dei metodi per determinare questa probabilitá é di usare il comando "fuser":
% fuser -v /dev/dsp
/dev/dsp: USER PID ACCESS COMMAND
tranter 265 f.... tracker
In questo esempio, il comando "fuser" ci mostra come il processo numero 265 abbia aperto il device. Per accedere nuovamente al "sound device" si deve apettare che il processo termini o si procede ad un "kill" del processo stesso.
device busy
!In sintonia con Brian Gough, per le schede SoundBlaster che usano il canale DMA 1 c'è un conflitto potenziale con il "tape driver" QIC-02, che usa sempre il canale DMA 1, causando l'errore "device busy" . Se state usando FTAPE, dovreste avere questo driver abilitato. Controllando nell' FTAPE-HOWTO si desume che l'uso del driver QIC-02 non é indispensabile per l'uso di FTAPE; basta solamente il driver QIC-117 . Riconfigurando il kernel abilitando il driver QIC-117 e non il driver QIC-02 si permette ad FTAPE ed al "sound-driver" di coesistere.
(I seguenti chiarimenti sono proposti da Harald Albrecht
albrecht@igpm.rwth-aachen.de
)
Alcune schede sonore supportano l'uso del canale DMA 0. Il programma di configurazione del "sound driver" permette questa opzione, e il kernel viene compilato senza problemi, ma accedendo al "sound device" si riceve un messaggio d'errore del tipo "device busy".
Il motivo é che il kernel di Linux riserva il canale DMA 0 per il "refresh" della DRAM . Questo non sará valido ancora a lungo visto che le moderne schede 386/486 usano una propria logica per il "refresh". Potete comunque correggere il problema cambiando questa linea nel file /usr/src/linux/kernel/dma.c:
static volatile unsigned int dma_chan_busy[MAX_DMA_CHANNELS] = {
1, 0, 0, 0, 1, 0, 0, 0
};
Cambiate il primo 1 con uno 0; questo abilita il canale DMA 0. Non fatelo invece con il canale DMA 4 visto che é in cascata e non funzionerebbe! La riga di codice dovrebbe diventare cosí :
static volatile unsigned int dma_chan_busy[MAX_DMA_CHANNELS] = {
0, 0, 0, 0, 1, 0, 0, 0
};
Ricompilate il kernel ed eseguite il reboot del sistema.
Il sintomo é normalmente che l'esempio sonoro suona per circa un secondo e poi si blocca completamente oppure riporta un errore tipo : "missingRQ" o "DMA timeout". Probabilmente avete i settaggi degli IRQ or DMA sbagliati. Verificate che la configurazione del kernel corrisponda ai settaggi della vostra scheda (jumper.IRQ,DMA) e che gli stessi non siano in conflitto con qualche altra scheda installata nel sistema.
Un' altro sintomo é l'esempio sonoro che provoca un "loop". Questo é normalmente causato da un conflitto di IRQ .
L'esecuzione dei file MOD usa un grande lavoro di CPU . O avete una quantitá eccessiva di processi attivi o il vostro computer é troppo lento per l'esecuzione in "real time". Avete alcune possibilitá:
Se avete una scheda Gravis UltraSound , dovete usare uno dei programmi per eseguire i file mod
scritti specificatamente per la GUS (e.g. gmod
).
La versione 1.0c e precedenti del "sound driver" usavano uno schema diverso ed incompatibile dell'
ioctl()
. Cerca di ottenere il nuovo codice o effettua i necessari cambiamenti per adattarlo
al nuovo "sound driver". Controlla il Readme
file del "sound driver" per i dettagli.
Controlla comunque di usare l'ultima versione del soundcard.h
e del ultrasound.h
quando compili l'applicazione.
Guarda le istruzioni per l'installazione all'inizio di questo testo.
Questo é probabilmente lo stesso problema affrontato nella domanda precedente.
Controlla il file Readme
ed il file CHANGELOG
inclusi con i sorgenti del kernel
del "sound driver" .
Durante la configurazione del "sound driver", viene compilato ed eseguito il programma
configure
.
Questo programma pone delle domande e provvede a generare gli "header file"
local.h
che definiscono la configurazione della scheda sonora
.
Il file di configurazione definisce (o non definisce) i seguenti simboli :
Symbol Meaning ====== ======= KERNEL_SOUNDCARD enable/disable sound driver EXCLUDE_PAS ProAudioSpectrum support EXCLUDE_SB SoundBlaster support EXCLUDE_ADLIB AdLib support EXCLUDE_GUS Gravis UltraSound support EXCLUDE_MPU401 MPU-401 MIDI interface support EXCLUDE_UART6850 6850 MIDI UART support EXCLUDE_PSS Professional Sound System support EXCLUDE_GUS16 Gravis UltraSound support EXCLUDE_GUSMAX Gravis UltraSound Max support EXCLUDE_MSS Microsoft Sound System support EXCLUDE_SBPRO SoundBlaster Pro support EXCLUDE_SB16 SoundBlaster 16 support EXCLUDE_AUDIO Digitized voice support EXCLUDE_MIDI MIDI interface support EXCLUDE_YM3812 FM synthesizer (YM3812/OPL-3) support EXCLUDE_SEQUENCER MIDI sequencer support EXCLUDE_PRO_MIDI SoundBlaster Pro MIDI support EXCLUDE_CHIP_MIDI MIDI on CHIP support SBC_BASE 0x220 SoundBlaster I/O base address SBC_IRQ SoundBlaster IRQ number SBC_DMA SoundBlaster DMA channel SB16_DMA SoundBlaster 16 DMA channel SB16_MIDI_BASE base address of SoundBlaster 16 MIDI port PAS_IRQ ProAudioSpectrum IRQ number PAS_DMA ProAudioSpectrum DMA channel GUS_IRQ Gravis UltraSound IRQ number GUS_DMA Gravis UltraSound DMA channel GUS_BASE base address of Gravis UltraSound MPU_IRQ MPU-401 IRQ number MPU_BASE base address of MPU-401 port DSP_BUFFSIZE DMA buffer size
Alcune altre definizioni vengono create, settando alcune cose tipo il livello di revisione del "sound driver" e la data e l'ora di esecuzione del programma "configure".
Ci sono poi altri parametri che non vengono settati dal programma "configure"
. Se avete bisogno di cambiarli, editate il file
sound_config.h
.
Per disabilitare il "sound driver", eseguite make config
e rispondete "no"
alla domanda "Sound card support?" .
Esiste una documentazione parziale nella Hacker's Guide to VoxWare, momentaneamente disponibile in forma di bozza. L'ultima versione é la bozza 2 , ed'é reperibile su : ftp://nic.funet.fi/pub/OS/Linux/ALPHA/sound . Notare che questa é una directory nascosta e non appare nella lista delle directory. Se esegui un ftp e fai un cd (NomeDirectoryNascosta) e successivamente esegui un comando dir i files sono qui.
Non é semplice rispondere a questa domanda, dipende da :
In generale, qualsiasi computer 386 dovrebbe riuscire ad eseguire campioni o musica sintetizzata in FM su una scheda a 8 bit senza alcuna difficoltá.
L'esecuzione dei file MOD comporta , comunque, un considerevole uso delle risorse della CPU . Alcune misurazioni sperimentali hanno dimostrato che suaonado a 44kHz si usa oltre il 40% di velocitá su un computer 486/50 e un 386/25 esegue solo con molta difficoltá campioni piú veloci di 22 kHz (questo con una scheda a 8 bit tipo SoundBlaster). Una scheda come la Gravis UltraSound esegue maggiori funzioni a livello hardware , ed usa minori risorse della CPU .
Questa affermazione prevede che il computer non stia eseguendo altri task con un uso intensivo della CPU .
La conversione di files sonori o l'aggiunta di effetti speciali usando un' utility tipo Sox é molto piú veloce se disponete del coprocessore matamatico. Il "kernel driver" non esegue nessun calcolo "floating point", purtroppo.
(la seguente spiegazione é stata fornita da :
seeker@indirect.com
)
Linux riconosce la 1542 all'indirizzo 330 (default) o 333, e la PAS permette l'emulazione della MPU-401 solo all'indirizzo 330. Anche se avete disabilitato la MPU-401 via software, qualcosa vá tranquillamente in conflitto con la 1542 se si trova al suo indirizzo di default . Spostando la 1542 all'indirizzo 333 fá funzionare tutto.
In aggiunta, sia la 1542 che la PAS-16 usano un DMA a 16-bit , cosicchè se campionate a 16-bit 44KHz stereo e salvate il file su un drive SCSI attaccato alla 1542, preparatevi ad incontrare problemi. I DMAs si sovrappongono e non c'é il tempo sufficiente per un "refresh" della RAM, e vi trovate un bel messaggio ``PARITY ERROR - SYSTEM HALTED'' , senza rendervi conto di quale sia stata la causa. Ancora peggio alcuni rivenditori di terze parti raccomandano, con i tape drives QIC-117 , di settare i tempi on/off del bus come il 1542 anche se sono piú lunghi del normale. Procuratevi il programma SCSISEL.EXE dalla BBS della Adaptec o da qualche altro sito di internet, abbassate il "time" BUS ON o incrementate il BUS OFF finchè il problema scompare, poi muovetelo di una tacca o piú in avanti. . Lo SCSISEL cambia i settaggi della EEPROM , cosí la modifica diventa permanente e non avete bisogno di aggiungere una riga nel CONFIG.SYS del DOS , e potete boottare direttamente Linux ignorando i driver del DOS . Prossimo problema : risolto!
Ultimo problema - i vecchi chipset Symphony riducevano drasticamente i cicli di I/O per velocizzare i tempi di accesso al bus. Nessuna delle varie schede che ho usato hanno dato problemi con il timing ridotto ad eccezione della PAS16. La BBS della Media Vision propone il programma SYMPFIX.EXE che ,si suppone, curi il problema facendo girare un bit di diagnostica nel controller del bus della Symphony, ma non é garantito totalmente. Hai bisogno di:
La giovane Microsystem propone un upgrade della scheda che importa per circa $30 (US); altri venditori dovrebbero comportarsi allo stesso modo se riuscite a dimostrare chi altro importa la motherboard (Buona fortuna!). Il problema é nel chip dell'interfaccia per il bus ProAudio, peró molto piú lontano di quanta non sia la mia ansia; Nessuno compra una scheda sonora da $120 e la piazza su un bus AT a 6MHz . La maggior parte si avvale di un computer a 25/40Mhz tipo 386/486 , e dovrebbe riuscire ad ottenere perlomeno 12MHz di velocitá del bus se i chips sono disegnati correttamente. Uscita dal pulpito!!! (scala sinistra).
Il primo problema dipende dal chipset usato sulla vostra motherboard, dalla velocitá del bus e da altri settaggi del BIOS , e le fasi della luna. Il secondo problema dipende dalle opzioni di "refresh" (nascoste o sincronizzate), dallala velocitá del canale DMA del 1542 e (possibilmente) la velocitá di accesso I/O al bus. Il terzo lo si determina chiamando la Media Vision e chiedendo quale tipo di chip Symphony é incompatibile con il suo design lento. Attenzione , pensavano - le 3 o 4 volte che ho chiamato - che io abbia il cervello danneggiato. Dovevo essere molto astuto e diffidare di qualsiasi cosa mi dicevano su qualche pezzo di hardware, visto che non conoscevano molto bene neanche il loro.
La nuova SB Pro ha un chip OPL-3 FM , ma la vecchia versione 1 usava il chip OPL-2. Il "sound driver" prevede la presenza di un chip OPL-3. La versione 2.5 e successive del sound driver correggono questo problema.
Dipende dall'hardware, questo non é possibile con la maggior parte delle schede sonore . L'unica scheda supportata che é in grado di farlo é la ProAudioSpectrum16. Controlla la sezione sulla "bidirectional mode" nella Hacker's Guide to Voxware per ulteriori informazioni.
(Le ultime (evasive) news:Il "sound driver" 3.0.1 ora supporta la "
select()
system call" per il /dev/dsp
ed il
/dev/audio
. Questo dovrebbe essere utile per applicativi bidirezionali.
Controlla il file CHANGELOG
.)
Su '286 e macchine successive, l' IRQ 2 si trova in cascata con il secondo interrupt del controller. Equivale all' IRQ 9.
La Creative Labs non vuole rilasciare informazioni sulla programmazione per la ASP e per il chip Emu usati con questa scheda. Finchè non cambiano la loro politica , il supporto di queste schede per Linux non ci sará.
La scheda Gravis UltraSound ha capacitá similari alla AWE32, ed' é supportata da Linux. Schede basate su altri DSPs tipo la Analog Devices ADSP-21xx saranno supportate in futuro.
Questo puó succedere dopo un "soft-reboot" al DOS. Alle volte il messaggio di errore fá riferimento, erroneamente, ad un errore nel file CONFIG.SYS .
La maggior parte delle attuali schede sonore hanno la possibilitá di settare IRQ e DMA via software. Se usate settaggi differenti per Linux e per MS-DOS/Windows, potreste avere problemi. Alcune schede non accettano nuovi parametri senza un reset completo (i.e. spegnere il computer o usare il pulsantino di reset).
La soluzione piú semplice a questo problema consiste nell'effettuare un reboot completo tramite il pulsantino di reset o lo spegnimento della macchina anzichè un "soft reboot" (e.g. Ctrl-Alt-Del).
La soluzione corretta consiste nel settare gli stessi IRQ e DMA sia con MS-DOS che con Linux (o non usare DOS :-)).
Gli utilizzatori del porting del gioco della "ID software" DOOM per Linux dovrebbero essere interessati a queste notizie.
Per un corretto risultato sonoro usate la versione 2.90 o successive del "sound driver"; ha il supporto per la nuova modalitá "real-time DOOM mode".
I campioni sonori sono a 16-bit. Se avete una scheda a 8-bit c'é un programma che si chiama
sndcvt
che converte i dati da 16 a 8 bit al volo.
Dovete applicare la patch al "DOOM sound server";
i dettagli sono spiegati nel file README .
Se DOOM risultasse lento sul vostro sistema, disabilitando il sonoro (basta rinominare il file
sndserver
) dovrebbe aumentare le prestazioni.
Per default DOOM non supporta la musica (come nella versione DOS ). Il
programma musserver
aggiunge il supporto per la musica a DOOM per
Linux. E` reperibile a questo indirizzo :
ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz
.
Usando cavi di buona qualitá e provando la scheda in slot differenti dovrebbe aiutarvi a ridurre i disturbi. Se la scheda ha un controllo del volume ,potete provare diversi settaggi (il massimo é probabilmente il migliore).
Se usate un programma di mixer potete accertarvi che altri dispositivi di input siano settati a zero. (e.g. microphone)
Alcune schede sono disegnate semplicemente con cavi e componenti poco buoni e sono molto propense ai disturbi di fondo.
Finalmente, sul mio sistema ho scoperto che la opzione
no-hlt
alla riga di comando del kernel riduce il livello di disturbo.
Questa comunica al kernel di non usare l'istruzione "halt" mentre si esegue l' "idle process loop"
Potete inserirla manualmente al boot, o inserirvela con il comando
append = "no-hlt"
nel file di configurazione di LILO .
Se puoi eseguire ma non registrare, prova questi passaggi:
Alcuni cloni di schede sonore non sono compatibili al 100% con i registri della scheda originale ; questi contengono, alle volte, una circuiteria extra tipo mixers. Dovreste riuscire comunque ad usarli con Linux se prima li inizializzate con MS-DOS, ed eseguite un "soft boot" per Linux (i.e. Ctrl-Alt-Delete).
Un utilizzatore mi ha inoltre riportato che ha avuto migliori risultati usando LOADLIN piuttosto di LILO per boottare Linux dopo aver inizializzato la sua scheda sotto MS-DOS (questo accadeva con una scheda sonora della Diamond ).,
In veritá potrebbe funzionare sí e no. La soluzione giusta é ottenere dal costruttore informazioni sulle differenze della scheda in questione ed aggiungerle al "sound driver". Questo é stato fatto, ad esempio, per la scheda Sound Galaxy NX Pro.
Le schede sonore a 16-bit descritte come "SoundBlaster compatibile" in realtá sono compatibili solo con la 8-bit SoundBlaster Pro. Tipicamente hanno una modalitá a 16-bit che non é però compatibile con la SoundBlaster 16 e neppure con il "sound driver" di Linux.
Se peró la vostra scheda risulta compatibile con il Microsoft Windows Sound System, dovreste riuscire a farla lavorare a 16-bit se abilitate il supporto per il WSS nel "Linux sound driver". Dovrete inoltre (probabilmente) inizializzare la vostra scheda con il DOS per farla funzionare.
Qui ci sono alcuni buoni siti di internet per la ricerca di applicativi per il "sound" su Linux :
Il "sound driver" ora é supportato anche come un "kernel loadable module". Controlla il file : Readme.modules per i dettagli e le spiegazioni su come compilarlo ed usarlo.
Procurati il programma oplbeep
, che si trova
ftp://sunsite.unc.edu/.pub/linux/apps/sound/oplbeep-alpha.tar.gz
Alternativamente, con alcune schede sonore puoi connettere l'output del PC speaker alla scheda cosicchè tutti i suoni usciranno dalla scheda stessa.
Prossimo Capitolo, Precedente Capitolo
Indice di questo capitolo, Indice generale
Inizio del documento, Inizio di questo capitolo