Linux Sound HOWTO
Jeff Tranter, tranter@pobox.com
v1.20, 24 Marzo 1999
Questo documento descrive il supporto per il suono di Linux. Vi è con
tenuto l'elenco dell'hardware sonoro supportato, vi è descritto come
configurare i driver del kernel e vi sono anche delle risposte alle
domande poste di frequente. L'intento è quello di portare i nuovi
utenti alla piena conoscenza del sistema sonoro in minor tempo e di
ridurre il traffico nei newsgroup Usenet e nelle mailing list. Le
prime tre sezioni sono state tradotte ex novo e le sezioni 4 e 7 sono
state aggiornate e parzialmente modificate da Marco Meloni
(tonno@stud.unipg.it). L'aggiornamento delle sezioni 4,5,6,7 è stato
compiuto sulla precedente traduzione di Giuliano Natali
(natali@stone.trew.it).
______________________________________________________________________
Indice Generale
1. Introduzione
1.1 Ringraziamenti
1.2 Nuove versioni di questo documento
1.3 Feedback
1.4 Regole di distribuzione
2. Tecnologia delle schede audio
3. Hardware supportato
3.1 Schede audio
3.2 Driver audio alternativi
3.3 PC Speaker
3.4 Porta parallela
4. Installazione
4.1 Installare la scheda audio
4.2 Configurare il Plug and Play
4.3 Configurare il kernel
4.4 Creazione dei file dispositivo
4.5 Boot di Linux e test dell'installazione
4.6 Risoluzione dei problemi
4.6.1 Passo 1: controllate che il kernel sia quello che avete compilato.
4.6.2 Passo 2: assicuratevi che nel kernel sia incluso il supporto del driver sonoro.
4.6.3 Passo 3: il kernel ha rilevato la vostra scheda al momento del boot?
4.6.4 Passo 4: potete leggere dati dal dispositivo dsp?
4.6.5 Se tutto questo non funziona
5. Applicazioni che supportano il suono
6. Risposte alle domande frequenti (FAQ)
6.1 Cosa sono i vari file dispositivo audio?
6.2 Come posso riprodurre un file audio?
6.3 Come posso registrare un file audio?
6.4 Posso avere più di una scheda?
6.5 Error: No such file or directory for sound devices
6.6 Error: No such device for sound devices
6.7 Error: No space left on device for sound devices
6.8 Error: Device busy for sound devices
6.9 Mi dà ancora l'errore di ``device busy''!
6.10 Playback parziale di un file sonoro digitale
6.11 Pause nella riproduzione di file MOD
6.12 Errori di compilazione quando compilo applicazioni sonore
6.13 SEGV quando eseguo applicazioni audio che prima funzionavano
6.14 Quali sono i bug e le limitazioni del driver sonoro?
6.15 Dove sono documentati gli ioctls() ecc. del driver sonoro?
6.16 Quanto deve essere potente la CPU per riprodurre o registrare senza pause?
6.17 Problemi con la PAS16 e un adattatore SCSI Adaptec 1542
6.18 È possibile registrare e riprodurre simultaneamente?
6.19 La mia SB16 è impostata su IRQ 2, ma configure non permette di scegliere questo valore di IRQ.
6.20 Sono supportate la SoundBlaster AWE32 o la SoundBlaster16 ASP?
6.21 Se sto usando Linux, e faccio un reboot con DOS, mi dà errori e/o le applicazioni sonore non funzionano.
6.22 Problemi con DOOM sotto Linux
6.23 Come posso ridurre il rumore nella mia scheda audio?
6.24 Posso riprodurre suoni, ma non registrarli
6.25 La mia scheda audio ``compatibile'' funziona solo se prima la inizializzo da MS-DOS.
6.26 La mia scheda audio ``compatibile'' SoundBlaster 16 bit funziona solo in modalità 8 bit sotto Linux.
6.27 Dove posso trovare applicazioni sonore per Linux?
6.28 Il driver sonoro può essere compilato come modulo caricabile?
6.29 Posso usare la scheda audio per rimpiazzare il beep di console?
6.30 Cos'è VoxWare?
6.31 Sox/Play/Vplay mi danno l'errore ``invalid block size 1024''
6.32 Le impostazioni del mixer vanno perse ogni volta che carico il modulo del driver sonoro
6.33 Solo l'utente root può effettuare registrazioni audio
6.34 È supportato l'hardware audio presente nel ThinkPad dell'IBM?
6.35 Le applicazioni si rifiutano di funzionare poiché la mia scheda audio non ha un mixer
6.36 Problemi con una SB16 CT4170
6.37 Come collegare una tastiera MIDI a una scheda audio
6.38 Problemi con l'IRQ 15 ed Ensoniq PCI 128
6.39 Dove posso trovare delle patch MIDI gratuite per Soft OSS
7. Riferimenti
______________________________________________________________________
11.. IInnttrroodduuzziioonnee
Questo è il Linux Sound HOWTO. Serve da piccola guida di riferimento
su tutto quello che dovete sapere per installare e configurare il
supporto per il suono sotto Linux. Vi sono risposte alle domande più
frequenti sul sonoro sotto Linux e riferimenti ad altri posti dove
ottenere informazioni su diversi argomenti collegati al suono generato
dal computer e alla musica.
La trattazione è limitata agli aspetti delle schede sonore pertinenti
a Linux. Per informazioni di carattere più generale sulle schede
audio, sull'aspetto del sonoro dei computer e sulla sintesi della
musica si vedano gli altri documenti elencati nella sezione
_R_i_f_e_r_i_m_e_n_t_i.
11..11.. RRiinnggrraazziiaammeennttii
Molte delle informazioni qui presenti vengono dalla documentazione
fornita con il codice sorgente del driver sonoro scritto da Hannu
Savolainen (hannu@opensound.com). Un grazie dunque ad Hannu, Alan Cox
ed a tutte le altre persone che hanno sviluppato i driver sonori ed i
loro programmi di utilità per Linux.
Grazie al pacchetto SGML Tools, questo HOWTO è disponibile in
molteplici formati, tutti generati da un unico file sorgente.
11..22.. NNuuoovvee vveerrssiioonnii ddii qquueessttoo ddooccuummeennttoo
Le nuove versioni di questo documento saranno postate periodicamente
sul newsgroup comp.os.linux.answers. Ne sarà anche fatto l'upload su
vari siti di ftp anonimo che archiviano questo tipo di informazioni
incluso .
Le versioni in ipertesto di questo e di altri Linux HOWTO sono
disponibili su molti siti del World-Wide-Web, incluso
. Molte distribuzioni di Linux su CD-ROM
includono gli HOWTO, spesso nella directory /usr/doc, e se ne possono
comperare copie stampate da diversi rivenditori. A volte gli HOWTO
presenti nei CD-ROM dei rivenditori, nei siti ftp ed in forma stampata
non sono aggiornati. Se la data di questo HOWTO è anteriore di più di
sei mesi è probabile che vi sia una nuova versione su Internet.
_S_i _n_o_t_i _a_n_c_h_e _c_h_e_, _p_e_r _l_a _n_a_t_u_r_a _d_i_n_a_m_i_c_a _d_i _I_n_t_e_r_n_e_t_, _t_u_t_t_i _i _l_i_n_k
_s_i_t_i _w_e_b _e _f_t_p _i_n _q_u_e_s_t_o _d_o_c_u_m_e_n_t_o _s_o_n_o _s_o_g_g_e_t_t_i _a _c_a_m_b_i_a_m_e_n_t_i_.
Traduzioni di questo documento sono disponibili nelle lingue seguenti:
Cinese:
Francese:
Giapponese:
Coreana:
Russa:
Spagnola:
Molte traduzioni di questo e di altri HOWTO sono anche su
e
.
Se traducete questo documento in un'altra lingua vi prego di farmelo
sapere e metterò qui un riferimento.
11..33.. FFeeeeddbbaacckk
Confido nei lettori per rendere questo HOWTO utile. Se avete qualche
suggerimento, correzione o commento vi prego di inviarmelo su
tranter@pobox.com, e cercherò di inglobarlo nella versione successiva.
Vorrei anche rispondere a delle domande di carattere generale sulle
schede audio sotto Linux, fin dove posso. Prima di porle vi prego di
leggere tutte le informazioni contenute in questo HOWTO e di mandarmi
informazioni dettagliate sul problema. Vi prego di non rivolgervi a me
per questioni che riguardano l'uso di schede audio sotto sistemi
operativi differenti da Linux.
Se pubblicate questo documento in un CD-ROM o in altra forma stampata,
una copia di cortesia sarebbe da me apprezzata. Scrivetemi per il mio
indirizzo di posta. Tenete anche in considerazione l'opportunità di
fare una donazione al Linux Documentation Project per aiutare il
progetto di una documentazione gratuita per Linux. Contattate il
coordinatore dei Linux HOWTO, Tim Bynum, linux-howto@metalab.unc.edu,
per maggiori informazioni.
11..44.. RReeggoollee ddii ddiissttrriibbuuzziioonnee
Copyright (c) 1995-1999 di Jeff Tranter. Questo documento può essere
distribuito nei termini descritti nella licenza LDP su
.
Copyright (c) 1995-1999 by Jeff Tranter. This document may be
distributed under the terms set forth in the LDP license at
.
22.. TTeeccnnoollooggiiaa ddeellllee sscchheeddee aauuddiioo
Questa sezione è intesa come panoramica _m_o_l_t_o generale sulla
tecnologia audio utilizzata nei computer, in modo da rendere più
agevole la comprensione dei concetti che verranno poi esposti in
questo documento. Per saperne di più si consulti un libro sull'audio
digitale o sull'elaborazione digitale dei segnali.
Il suono è _a_n_a_l_o_g_i_c_o; può assumere qualsiasi valore in un intervallo
continuo. I computer sono _d_i_g_i_t_a_l_i; a loro piace lavorare con valori
discreti. Le schede audio usano un dispositivo conosciuto come
_C_o_n_v_e_r_t_i_t_o_r_e _A_n_a_l_o_g_i_c_o_/_D_i_g_i_t_a_l_e (A/D o ADC) per convertire le tensioni
corrispondenti alle onde sonore analogiche in valori digitali o
numerici che possono essere quindi memorizzati. Analogamente, un
_C_o_n_v_e_r_t_i_t_o_r_e _D_i_g_i_t_a_l_e_/_A_n_a_l_o_g_i_c_o (D/A o DAC) converte valori numerici
in tensioni analogiche che possono a loro volta pilotare un
altoparlante, producendo il suono.
Il processo di conversione dall'analogico al digitale, conosciuto come
``campionamento'', introduce degli errori. Vi sono due fattori chiave
che servono a determinare quanto un segnale campionato si avvicini
all'originale. La _f_r_e_q_u_e_n_z_a _d_i _c_a_m_p_i_o_n_a_m_e_n_t_o è il numero di campioni
presi per unità di tempo (usualmente espressa in campioni per secondo
o Hertz). Una bassa frequenza di campionamento fornirà una resa poco
accurata del segnale analogico. L'ampiezza di campionamento è
l'intervallo di valori usati per rappresentare ogni campione,
usualmente espressa in bit. Più è grande l'ampiezza di campionamento,
più accurata sarà la resa del segnale campionato.
Le schede audio usano normalmente campioni di 8 o 16 bit a frequenze
di campionamento da circa 4000 a 44000 campioni al secondo. I campioni
possono contenere uno (mono) o due (stereo) canali.
La _s_i_n_t_e_s_i _F_M è una vecchia tecnica usata per produrre il suono. È
basata sulla combinazione di forme d'onda differenti (ad es. seno,
triangolo, quadrato). La sintesi FM è più semplice da implementare a
livello hardware della conversione D/A, ma è più difficile da
programmare e meno flessibile. Molte schede audio utilizzano la
sintesi FM per rimanere compatibili con le vecchie schede audio e il
vecchio software. Vengono normalmente resi disponibili diversi
generatori di suono indipendenti (_v_o_c_i).
La _s_i_n_t_e_s_i _t_r_a_m_i_t_e _w_a_v_e_t_a_b_l_e combina la flessibilità della conversione
D/A con la capacità di gestire canali multipli propria della sintesi
FM. In questa maniera delle voci digitalizzate possono essere caricate
in una area di memoria dedicata e quindi riprodotte, combinate e
modificate con solo un piccolo impiego di CPU. Tutte le attuali schede
audio supportano la sintetizzazione tramite wavetable.
Molte schede audio sono in grado di agire da _m_i_x_e_r, combinando i
segnali provenienti da entrate diverse e controllando i livelli di
guadagno.
_M_I_D_I sta per ``Musical Instrument Digital Interface'' (interfaccia
digitale per strumenti musicali) ed è un protocollo hardware e
software standard che permette agli strumenti musicali di comunicare
l'uno con l'altro. Gli ``eventi'' che vengono inviati tramite il bus
MIDI possono anche essere memorizzati in file MIDI per consentirne
successive modifiche e riascolti. Molte schede audio hanno
un'interfaccia MIDI. Quelle che non la possiedono possono comunque
riprodurre i file MIDI usando altre caratteristiche della scheda
audio.
I file _M_O_D sono un formato comunemente usato per la musica generata da
computer. Assieme alle informazioni sulle note musicali che devono
essere riprodotte, questi file contengono dei campioni digitalizzati
per gli strumenti (o le voci). I file MOD sono stati usati per la
prima volta sui computer Amiga ma possono essere ascoltati su altri
sistemi, Linux incluso, con del software adatto.
33.. HHaarrddwwaarree ssuuppppoorrttaattoo
Questa sezione elenca le schede audio e le interfacce che sono
attualmente supportate sotto Linux. Le informazioni qui presenti sono
basate sull'ultimo kernel che, al momento della stesura, risulta
essere il 2.2.4. Questo documento riguarda solo i driver sonori
inclusi nella distribuzione del sorgente del kernel di Linux (si veda
la sezione intitolata Driver sonori alternativi).
Per le ultime informazioni sulle schede audio supportate e sulle
funzioni dei driver si consultino i file acclusi alla distribuzione
del kernel di Linux, normalmente installati nella directory
/usr/src/linux/Documentation/sound.
Le informazioni contenute in questo HOWTO sono valide per la
implementazione di Linux su processori di tipo Intel.
Il driver sonoro dovrebbe funzionare anche con molte schede audio
nella implementazione per processori Alpha. Comunque qualche scheda
potrebbe far nascere conflitti delle porte I/O con altri dispositivi
installati nei sistemi Alpha anche se funziona perfettamente sulle
macchine i386, quindi non si può dire, in generale, se una data scheda
funzionerà oppure no senza averla provata.
Al momento della stesura di questo documento il driver sonoro non è
ancora funzionante nell'implementazione per PowerPC di Linux, ma
dovrebbe esserlo in futuro.
Le schede audio possono essere configurate nel kernel
nell'implementazione di Linux per MIPs, e qualche macchina MIPs ha
degli slot EISA e/o dell'hardware sonoro interno. Mi è stato detto che
il gruppo Linux-MIPs è interessato a una futura aggiunta del supporto
sonoro.
Il kernel di Linux include un driver separato nelle sue versioni per
Atari e Amiga, driver che implementa un sottoinsieme compatibile del
driver sonoro usato per la piattaforma Intel utilizzando l'hardware
per il suono interno a queste macchine.
La versione di Linux per SPARC attualmente supporta l'audio solo in
alcuni modelli di workstation Sun. Mi è stato detto che l'hardware
audio on-board funziona ma il dispositivo DSP esterno non è supportato
poiché Sun non ha reso pubbliche le sue specifiche.
33..11.. SScchheeddee aauuddiioo
Le seguenti schede audio sono supportate dal driver sonoro del kernel
di Linux. Qualche elemento di questa lista è un chip audio più che una
scheda audio. La lista è incompleta poiché vi sono altre schede audio
compatibili con queste che funzionano sotto Linux. Come se la
confusione fosse poca, dei produttori cambiano periodicamente il
design delle loro schede audio causando incompatibilità e continuano a
venderle come modello originario.
· Interfaccia MIDI 6850 UART
· Schede basate su AD1816/AD1816A
· ADSP-2115
· Schede basate su ALS-007 (Avance Logic)
· ATI Stereo F/X (fuori produzione)
· Acer FX-3D
· AdLib (fuori produzione)
· Audio Excel DSP 16
· AudioDrive
· CMI8330 (chip audio)
· Compaq Deskpro XL onboard sound
· Corel Netwinder WaveArtist
· Crystal CS423x
· ESC614
· ESS1688 (chip audio)
· ESS1788 (chip audio)
· ESS1868 (chip audio)
· ESS1869 (chip audio)
· ESS1887 (chip audio)
· ESS1888 (chip audio)
· ESS688 (chip audio)
· ES1370 (chip audio)
· ES1371 (chip audio)
· Ensoniq AudioPCI (ES1370)
· Ensoniq AudioPCI 97 (ES1371)
· Ensoniq SoundScape (e compatibili prodotte da Reveal e Spea)
· Gallant SC-6000
· Gallant SC-6600
· Gravis Ultrasound
· Gravis Ultrasound ACE
· Gravis Ultrasound Max
· Gravis Ultrasound con l'opzione di sampling a 16 bit
· HP Kayak
· Highscreen Sound-Booster 32 Wave 3D
· IBM MWAVE
· Logitech Sound Man 16
· Logitech SoundMan Games
· Logitech SoundMan Wave
· MAD16 Pro (chipset OPTi 82C928, 82C929, 82C930, 82C924)
· Media Vision Jazz16
· MediaTriX AudioTriX Pro
· Microsoft Windows Sound System (MSS/WSS)
· MiroSOUND PCM12
· Mozart (OAK OTI-601)
· OPTi 82C931
· Orchid SW32
· Personal Sound System (PSS)
· Pinnacle MultiSound
· Pro Audio Spectrum 16
· Pro Audio Studio 16
· Pro Sonic 16
· Roland MPU-40, interfaccia MIDI
· S3 SonicVibes
· SY-1816
· Sound Blaster 1.0
· Sound Blaster 2.0
· Sound Blaster 16
· Sound Blaster 16ASP
· Sound Blaster 32
· Sound Blaster 64
· Sound Blaster AWE32
· Sound Blaster AWE64
· Sound Blaster PCI 128
· Sound Blaster Pro
· Sound Blaster Vibra16
· Sound Blaster Vibra16X
· TI TM4000M notebook
· Terratec Base 1
· Terratec Base 64
· ThunderBoard
· Turtle Beach Maui
· Turtle Beach MultiSound Classic
· Turtle Beach MultiSound Fiji
· Turtle Beach MultiSound Hurricane
· Turtle Beach MultiSound Monterey
· Turtle Beach MultiSound Pinnacle
· Turtle Beach MultiSound Tahiti
· Turtle Beach WaveFront Maui
· Turtle Beach WaveFront Tropez
· Turtle Beach WaveFront Tropez+
· VIA chip set
· VIDC 16-bit sound
· Yamaha OPL2 (chip audio)
· Yamaha OPL3 (chip audio)
· Yamaha OPL3-SA1 (chip audio)
· Yamaha OPL3-SA2 (chip audio)
· Yamaha OPL3-SA3 (chip audio)
· Yamaha OPL3-SAx (chip audio)
· Yamaha OPL4 (chip audio)
Anche se molte schede audio sono dette ``SoundBlaster compatibili'',
molto poche, attualmente, sono abbastanza compatibili da funzionare
con il driver di Linux per la SoundBlaster. Queste schede normalmente
funzionano meglio usando il driver MAD16 o MSS/WSS. Solo le vere
schede SoundBlaster fatte dalla Creative Labs, che usano i chip custom
della Creative (per esempio, la SoundBlaster16 Vibra) e le schede
basate su MV Jazz16 e ESS688/1688 generalmente funzionano con il
driver per SoundBlaster. Provare a usare una ``scheda audio a 16 bit
compatibile con SoundBlaster Pro'' con il driver SoundBlaster si
rivela, normalmente, una perdita di tempo.
Il kernel di Linux supporta la porta SCSI di cui sono fornite alcune
schede audio (per esempio ProAudioSpectrum 16) e l'interfaccia
proprietaria di qualche drive CD-ROM (per esempio SoundBlaster Pro).
Date un'occhiata ai Linux SCSI HOWTO e CDROM HOWTO per maggiori
informazioni.
Assieme ai kernel 2.2 è anche distribuito un driver per le porte
joystick presenti su alcune schede audio.
Si noti che i driver sonoro, SCSI, CD-ROM e joystick sono
completamente indipendenti l'uno dall'altro.
33..22.. DDrriivveerr aauuddiioo aalltteerrnnaattiivvii
Il supporto per l'audio del kernel di Linux è stato originariamente
scritto da Hannu Savolainen. Hannu ha poi sviluppato Open Sound
System, una suite commerciale di driver audio venduta da 4Front
Technologies, che è disponibile su diversi sistemi Unix. La Red Hat
Software ha quindi sponsorizzato Alan Cox con l'obiettivo di
potenziare i driver audio rendendoli completamente modulari. Diverse
altre persone hanno poi dato il loro contributo con correzioni di
errori e hanno sviluppato driver aggiuntivi per le nuove schede audio.
Questi driver modificati sono stati inclusi nella distribuzione Red
Hat dalla versione 5.0 alla 5.2. Le modifiche sono quindi state
integrate nella distribuzione standard del kernel dalla versione 2.0.
Alan Cox è il curatore di driver audio della distribuzione standard
del kernel, mentre Hannu continua periodicamente a fornire codice
preso dal driver commerciale.
Open Sound System, il driver commerciale della 4Front Technologies
tende ad essere più facile da configurare e offre supporto per un
maggior numero di schede audio, particolarmente per quelle nuove. È
anche compatibile con le applicazioni scritte per il driver audio
incluso nella distribuzione standard del kernel. Lo svantaggio è che
dovrete pagare per averlo e comunque non avrete il codice sorgente.
Potete scaricare una copia di prova del prodotto prima di decidere se
comprarlo o no. Per maggiori informazioni si guardi sulla pagina web
della 4Front Technologies: .
Jaroslav Kysela e altri hanno cominciato a scrivere un driver audio
alternativo per la scheda audio Gravi UltraSound. Il progetto è stato
rinominato in _A_d_v_a_n_c_e_d _L_i_n_u_x _S_o_u_n_d _A_r_c_h_i_t_e_c_t_u_r_e (ALSA) ed è risultato
in un sistema di driver audio che gli autori credono essere una buona
alternativa per i driver audio del kernel. I driver ALSA offrono
supporto per molte schede audio diffuse, sono full duplex,
completamente modulari e compatibili con l'architettura audio del
kernel. Il sito principale del progetto ALSA è . È anche disponibile un "Alsa-sound-mini-HOWTO" che
tratta della compilazione e dell'installazione di questi driver.
Markus Mummert (mum@mmk.e-technik.tu-muenchen.de) ha scritto un
pacchetto driver per le schede audio Turtle Beach MultiSound
(classic), Tahiti e Monterey. La documentazione asserisce:
``È progettato per la registrazione/riproduzione su hard
disk di alta qualità, senza perdita di sincronizzazione nem
meno su un sistema occupato. Altre funzioni, come Wave syn
thesis, MIDI ed elaborazione digitale dei segnali (DSP), non
possono essere usate. Altresì la registrazione e la ripro
duzione contemporanee non sono possibili. In questo momento
sostituisce VoxWare ed è stato testato in diverse versioni
del kernel dalla 1.0.9 alla 1.2.1. Oltretutto è installabile
sui sistemi UN*X SysV386R3.2.''
Lo si può trovare su .
Kim Burgaard (burgaard@daimi.aau.dk) ha scritto un driver e dei
programmi di utilità per l'interfaccia MIDI Roland MPU-401. La voce
che lo riguarda sulla Linux Software Map ne dà questa descrizione:
``Un driver per le interfacce MIDI compatibili con Roland
MPU-401 (incluse Roland SCC-1 e RAP-10/ATW-10). Include una
serie di utilità tra le quali un player di file Standard
MIDI ed un registratore.
Molte migliorie sono state apportate dalla versione 0.11a.
Tra le altre cose il driver adesso si avvale di regole per
la condivisione degli IRQ e si attiene alla nuova interfac
cia del kernel per i moduli. La funzione di metronomo, la
possibilità di sincronizzare ad es. la grafica su una strut
tura di battute senza perdere in precisione, una interfaccia
avanzata per replay/registrazione/overdub e molto, molto
ancora.''
Lo si può trovare su
.
Altro utilizzo di una scheda audio per Linux è quello del modem per
radioamatori in packet radio. I recenti kernel 2.1.x includono un
driver che funziona con schede audio compatibili SoundBlaster e
Windows Sound System per implementare i protocolli packet 1200 bps
AFSK e 9600 bps FSK. Date un'occhiata al Linux AX25 HOWTO per altri
dettagli (fra parentesi sono radioamatore anche io -- il mio callsign
è VE3ICH).
33..33.. PPCC SSppeeaakkeerr
È disponibile un altro driver sonoro che non richiede hardware
aggiuntivo; infatti usa lo speaker del PC. È sicuramente più
compatibile a livello software con il driver della scheda audio ma,
come è normale aspettarsi, fornisce un output di qualità molto minore
e occupa la CPU per un tempo molto maggiore. I risultati sono di vario
tipo, poiché dipendono dalle caratteristiche di ogni singolo speaker.
Per maggiori informazioni date un'occhiata alla documentazione fornita
assieme alla distribuzione.
La versione attuale è la 1.1 e la si trova su
33..44.. PPoorrttaa ppaarraalllleellaa
Altra opzione è quella di costruire un convertitore digitale-analogico
utilizzando la porta parallela della stampante e qualche componente
aggiuntivo. Ciò porta a un output di qualità superiore rispetto allo
speaker del PC, ma genera ancora un pesante utilizzo di CPU. Il
pacchetto del driver per il PC speaker prevede questa opzione e
include le istruzioni per costruire l'hardware necessario.
44.. IInnssttaallllaazziioonnee
Configurare Linux per supportare il suono prevede i seguenti passaggi:
1. Installare la scheda sonora.
2. Configurare il Plug and Play (se disponibile)
3. Configurare e compilare il kernel con il supporto sonoro.
4. Creare i file dispositivo.
5. Effettuare il boot del kernel di Linux e testare l'installazione.
Se avete Red Hat Linux avete anche una utility chiamata sndconfig che
in molti casi rileverà la vostra scheda audio e imposterà tutti i
necessari file di configurazione per caricare i giusti driver audio
per la vostra scheda. Se avete una Red Hat vi suggerisco di provarla.
Se vi funziona allora potete saltare il resto delle istruzioni in
questa sezione.
Se sndconfig non riesce nel suo intento, state usando un'altra
distribuzione o volete seguire il metodo manuale per poter meglio
comprendere quello che state facendo, le prossime sezioni
descriveranno dettagliatamente tutti i passi da compiere.
44..11.. IInnssttaallllaarree llaa sscchheeddaa aauuddiioo
Seguite le istruzioni del produttore per l'installazione dell'hardware
o, meglio, richiedete al vostro rivenditore l'installazione della
scheda al momento dell'acquisto.
Le vecchie schede sonore usano switch o jumper per l'impostazione di
IRQ, canali DMA, ecc; trascrivete su un foglio i valori assegnati. Se
non siete sicuri, usate i parametri predefiniti. Nel limite del
possibile cercate di evitare conflitti con altro hardware installato
sul sistema (come schede Ethernet, SCSI, porte seriali e parallele) .
Usualmente si dovrebbero usare la stessa porta di I/O, IRQ e
impostazioni di DMA che si usano sotto DOS. In qualche caso
(particolarmente con schede PnP) si devono usare impostazioni diverse
per far funzionare le cose sotto Linux. Serve qualche prova.
44..22.. CCoonnffiigguurraarree iill PPlluugg aanndd PPllaayy
Attualmente diverse schede audio utilizzano il protocollo Plug and
Play per configurare le impostazioni degli indirizzi di I/O, irq e
canali DMA. Se avete una vecchia scheda che ha delle impostazioni
fisse o dei jumper (ponticelli) potete saltare alla prossima sezione.
Alla versione 2.2 del kernel non vi è ancora un completo supporto per
il Plug and Play. La soluzione preferita è quella che prevede
l'utilizzo dei tool isapnp che sono presenti in molte distribuzioni di
Linux (o che potete scaricare dal sito web della Red Hat
).
Date per prima cosa un'occhiata alla documentazione della vostra
distribuzione di Linux. Il supporto Plug and Play potrebbe essere già
configurato o potrebbe funzionare in maniera differente da come viene
qui descritto. Se dovete configurarvelo da soli potete trovare altri
dettagli nelle pagine di manuale del tool isapnp. In breve, la
procedura che dovrete seguire è la seguente:
· Utilizzate pnpdump per scoprire tutte le possibili impostazioni dei
vostri dispositivi Plug and Play, salvando il risultato nel file
/etc/isapnp.conf.
· Scegliete per la scheda audio delle impostazioni che non entrino in
conflitto con altri dispositivi presenti nel vostro sistema e
decommentate le giuste linee in /etc/isapnp.conf. Non dimenticatevi
di decommentare il comando (ACT Y) che si trova verso la fine.
· Assicuratevi che isapnp venga eseguito all'avvio del sistema, cosa
normalmente fatta da uno script di avvio. Fate il reboot del vostro
sistema o eseguite manualmente isapnp.
Se per qualche motivo non potete o non volete usare il tool isapnp, vi
sono altre soluzioni. Se utilizzate la scheda audio sotto Microsoft
Windows 95 o 98, potete usare il device manager per configurare la
scheda audio e quindi effettuare un soft boot di Linux usando il
programma LOADLIN. Assicuratevi che Windows e Linux utilizzino le
stesse impostazioni di configurazione della scheda.
Se utilizzate la scheda dal DOS potete usare l'utilità icu che viene
distribuita assieme alla SoundBlaster16 PnP per configurarla da DOS,
quindi effettuare un soft boot di Linux utilizzando LOADLIN. Ancora
una volta assicuratevi che sia DOS che Linux utilizzino le stesse
impostazioni della scheda.
Qualche driver per schede audio include il software necessario ad
inizializzare il Plug and Play per la scheda. Date un'occhiata alla
documentazione del driver per maggiori informazioni.
44..33.. CCoonnffiigguurraarree iill kkeerrnneell
Al momento della prima installazione normalmente si usa un kernel
precompilato. Questo kernel normalmente non supporta il suono. La
cosa migliore è, senza dubbio, la ricompilazione del kernel con
l'aggiunta dei driver che vi servono. Dovreste comunque ricompilare
il kernel perlomeno per aggiornare la versione e minimizzare la
grandezza del file stesso (vmlinuz) onde evitare di occupare troppo
spazio in memoria.
Il Linux Kernel HOWTO dovrebbe essere consultato per i dettagli su come
compilare un nuovo kernel. Qui procederò solamente a riportare alcuni
passaggi riguardanti il supporto sonoro.
Se, prima d'ora, non avete mai configurato il kernel per il supporto
sonoro sarebbe una buona idea leggere _t_u_t_t_i i Readme file inclusi con
il kernel sound driver ed in particolar modo le informazioni
specifiche riguardanti la vostra scheda sonora. La seguente
documentazione si trova normalmente nella directory del kernel sound
driver, che viene installata di default in
/usr/src/linux/drivers/sound. Se questa directory non è presente è
molto probabile che abbiate una versione molto vecchia o non abbiate
installato il codice sorgente.
Seguite la normale procedura per compilare il kernel. Attualmente vi
sono tre interfacce per il processo di configurazione. Un'interfaccia
utente grafica che gira sotto X11 e può essere lanciata con make
xconfig. Una basata su menu che richiede sono un display testuale è
disponibile con make menuconfig. Il metodo originale, usando make
config, offre una semplice interfaccia di testo.
Durante la configurazione del kernel vi saranno molte scelte da
effettuare per configurare correttamente il driver per la scheda che
possedete. L'help in linea di cui il programma di configurazione
dispone dovrebbe fornire un adeguato supporto a questa fase della
procedura. Scegliete meglio che potete.
Dopo aver configurato il kernel dovrete compilarlo ed installare il
nuovo kernel come descritto nel Kernel HOWTO.
44..44.. CCrreeaazziioonnee ddeeii ffiillee ddiissppoossiittiivvoo
Per un corretto funzionamento devono essere creati dei file
dispositivo per i dispositivi audio. Essi vengono creati di norma
durante l'installazione del vostro sistema Linux. Può essere fatto un
controllo veloce utilizzando il comando di cui si parla qui di
seguito. Se l'output è quello mostrato (la data può variare) allora i
file dispositivi sono quasi sicuramente a posto.
% ls -l /dev/sndstat
crw-rw-rw- 1 root root 14, 6 Apr 25 1995 /dev/sndstat
Si noti che il fatto che i file dispositivo siano a posto di per sé
non garantisce nulla. Anche il driver del kernel deve essere stato
caricato o compilato prima che le periferiche funzionino (se ne
parlerà più avanti).
In qualche raro caso, se si crede che i dispositivi siano errati, essi
possono essere ricreati. Diverse distribuzioni di Linux hanno lo
script /dev/MAKEDEV che può essere utilizzato a tale scopo.
44..55.. BBoooott ddii LLiinnuuxx ee tteesstt ddeellll''iinnssttaallllaazziioonnee
Dovreste essere pronti per eseguire il boot e testare il sound driver.
Seguite le normali procedure per installare e fare il boot del nuovo
kernel (non cancellate il vecchio kernel, può servire nel caso in cui
si incontrino problemi).
Durante il boot, controllate l'esistenza di un messaggio tipo questo
alla partenza (se passano troppo velocemente, li potete rileggere con
il comando dmesg):
Sound initialization started
at 0x220 irq 5 dma 1,5
at 0x330 irq 5 dma 0
at 0x388
Sound initialization complete
Deve corrispondere al tipo di scheda installata e al settaggio di IRQ
e jumper (se ci sono).
Si noti che i messaggi di cui sopra non vengono mostrati se si è
preferito utilizzare il driver come modulo caricabile del kernel (a
meno che non venga abilitato, ad esempio con insmod sound
trace_init=1).
Quando il driver sonoro viene compilato nel kernel i messaggi Sound
initialization started e Sound initialization complete devono
apparire. Se ciò non accadesse significa che non è presente un driver
sonoro nel kernel. In questo caso si avrà cura di controllare che il
kernel installato sia quello che è stato compilato con l'abilitazione
del driver sonoro.
Se non viene visualizzato nulla tra le righe Sound initialization
started e Sound initialization complete significa che non sono stati
rilevati dispositivi audio. Molto probabilmente significa che non è
stato abilitato il driver giusto, la scheda non è supportata, la porta
di I/O è sbagliata o che si ha una scheda PnP che non è stata
configurata.
Il driver può anche mostrare dei messaggi di errore e altre avvertenze
durante il boot. Si stia attenti a tali messaggi la prima volta che
viene effettuato il boot dopo aver configurato il driver sonoro.
Si dovrà successivamente controllare il file dispositivo /dev/sndstat.
Leggendo il file sullo stato del driver sonoro (/dev/sndstat) vengono
presentate informazioni aggiuntive sulla eventuale corretta
inizializzazione del driver sonoro. Ecco un esempio di output:
% 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
Il comando precedente può restituire alcuni messaggi di errore. ``No
such file or directory'' indica che si devono creare i file
dispositivo (vedi sezione 4.3). ``No such device'' significa che il
driver sonoro non è stato caricato o linkato nel kernel. Si ritorni
alla sezione 4.2 per rimediare a questo errore.
Se le linee della sezione ``Card config:'' di /dev/sndstat sono
visualizzate tra parentesi (tipo ``(SoundBlaster at 0x220 irq5 drq
1,5)''), significa che quel dispositivo è stato configurato ma non
rilevato.
Adesso siete pronti per eseguire un semplice file sonoro. Prendete un
qualsiasi file sonoro e reindirizzatelo sul dispositivo sonoro per
testarne il risultato, ad esempio:
% cat endoftheworld >/dev/dsp
% cat crash.au >/dev/audio
(State attenti a non dimenticare il ``>'' nel comando di cui sopra).
Si noti che, in generale, l'uso di cat non è la maniera più adatta per
riprodurre file audio, serve solo come piccolo controllo. Avrete
bisogno di un vero e proprio programma di riproduzione (se ne parla
più avanti) che farà un lavoro migliore.
Questo comando funzionerà se vi è almeno un dispositivo nella sezione
``audio devices'' di /dev/sndstat. Se la sezione ``audio devices'' è
vuota ci si dovrà accertare del perché il dispositivo non è stato
rilevato.
Se il comando precedente restituisce un ``I/O error'', dovreste dare
un'occhiata alla parte finale dei messaggi del kernel usando il
comando ``dmesg''. È probabile che vi si trovi un messaggio di errore.
Molto spesso il messaggio è ``Sound: DMA (output) timed out - IRQ/DRQ
config error?''. Questo messaggio significa che il driver non ha
utilizzato con successo l'interrupt impostato per comunicare con la
scheda audio. In molti casi significa che l'IRQ o il canale DMA
configurato nel driver non sono corretti. La maniera migliore di farlo
funzionare è quella di tentare con tutte le possibili combinazione di
DMA e IRQ supportati dal dispositivo audio.
Un'altra possibile ragione è costituita dall'incompatibilità del
dispositivo rilevato con il driver che si è scelto di installare. È
questo il caso delle schede che si dicono ``SoundBlaster (Pro/16)
compatibili'' ma che non funzionano con il driver per SoundBlaster.
In questo caso si dovrà scoprire con quale scheda audio è compatibilie
la propria (per esempio scrivendo un messaggio sul newsgroup
comp.os.linux.hardware).
Alcuni esempi di file sonori sono reperibili presso :
Adesso verificate la registrazione. Se avete la possibilità di usare
un dispositivo di input potete fare un test veloce in questo modo:
# registra 4 secondi di audio dal microfono
EDT% dd bs=8k count=4 sample.au
4+0 records in
4+0 records out
# esegue il suono registrato
% cat sample.au >/dev/audio
Ovviamente per far funzionare tutto ciò si dovrà aver connesso un
microfono alla scheda audio e vi si dovrà parlare. Forse avrete anche
bisogno di installare un programma mixer per impostare il microfono
come dispositivo di input e regolare il guadagno.
Se il test non dà problemi, potete ragionevolmente confidare nel fatto
che la scheda D/A -- A/D e il software funzionano. Al contrario se
avete riscontrato problemi controllate la sezione successiva di questo
documento.
44..66.. RRiissoolluuzziioonnee ddeeii pprroobblleemmii
Se comunque, dopo avere seguito le istruzioni dell'HOWTO, incontrate
problemi qui propongo alcune cose da controllare. I controlli sono
proposti in ordine progressivo di difficoltà. Se un controllo non
funzionasse, risolvete il problema prima di passare al controllo
successivo.
44..66..11.. PPaassssoo 11:: ccoonnttrroollllaattee cchhee iill kkeerrnneell ssiiaa qquueelllloo cchhee aavveettee ccoommppii
llaattoo..
Potete controllare la data del kernel per vedere se state usando
quello compilato con il supporto per il suono. Si può farlo usando il
comando uname :
% uname -a
Linux fizzbin 2.2.4 #1 Tue Mar 23 11:23:21 EST 1999 i586 unknown
o visualizzando il file /proc/version:
% cat /proc/version
Linux version 2.2.4 (root@fizzbin) (gcc version 2.7.2.3) #1 Tue
Mar 23 11:23:21 EST 1999
Se la data non corrisponde al giorno in cui avete compilato il kernel,
allora state usando un vecchio kernel. Avete eseguito il reboot? Se
usate LILO, lo avete reinstallato (normalmente eseguendo lilo)? Se
eseguite il boot da un floppy, ne avete creato uno nuovo di boot e lo
avete utilizzato per il boot?
44..66..22.. PPaassssoo 22:: aassssiiccuurraatteevvii cchhee nneell kkeerrnneell ssiiaa iinncclluussoo iill ssuuppppoorrttoo
ddeell ddrriivveerr ssoonnoorroo..
Il modo più facile per fare questo controllo è quello di dare
un'occhiata all'output di dev/sndstat come detto precedentemente. Se
l'output non è quello che ci si attendeva allora qualche cosa è andata
storta durante la configurazione o la compilazione del kernel. Fate
ripartire il processo di installazione, ricominciando dalla
configurazione e compilazione del kernel.
44..66..33.. PPaassssoo 33:: iill kkeerrnneell hhaa rriilleevvaattoo llaa vvoossttrraa sscchheeddaa aall mmoommeennttoo ddeell
bboooott??
Assicuratevi che il kernel abbia rilevato la scheda al momento del
boot. Dovreste avere visto un messaggio in fase di boot. Se il
messaggio è passato troppo velocemente potete richiamarlo con il
comando dmesg :
% dmesg
oppure
% tail /var/log/messages
Se la scheda non è stata trovata qualcosa è andato storto.
Assicuratevi che sia realmente installata. Se funziona sotto DOS
potete ragionevolmente sperare che l'hardware funzioni, probabilmente
è solo un problema di configurazione del kernel. Forse avete
configurato la scheda del tipo sbagliato o assegnato parametri
inesatti, o la scheda non è compatibile con nessuno dei driver sonori
del kernel di Linux.
Una possibilità è quella che la scheda sia una delle _c_o_m_p_a_t_i_b_i_l_i che
richiedono l'inizializzazione dal driver del DOS. Provate a fare il
boot da DOS e ad installare il driver fornito dal produttore della
scheda. Poi eseguite un boot a caldo di Linux usando Control-Alt-Canc.
Assicuratevi che gli indirizzi di I/O, DMA e le impostazioni degli IRQ
della scheda siano gli stessi sia per Linux che per DOS. Consultate
il file Readme.cards nei sorgenti della distribuzione del sound driver
per eventuali consigli sulla configurazione della scheda.
Se la scheda non compare nel documento, è possibile che il Linux sound
driver non la supporti. Controllate i riferimenti alla fine di questo
documento.
44..66..44.. PPaassssoo 44:: ppootteettee lleeggggeerree ddaattii ddaall ddiissppoossiittiivvoo ddsspp??
Provate a leggere dal dispositivo /dev/audio usando il comando dd
visto prima all'interno di questo documento. Il comando deve
funzionare senza errori.
Se non funziona probabilmente dipende da un conflitto di IRQ o DMA o
da qualche tipo di incompatibilità hardware (il dispositivo non è
supportato da Linux o il driver è stato configurato per un dispositivo
errato).
Una remota possibilità potrebbe essere un hardware non funzionante.
Provate a eseguire un test da DOS, se possibile, per vedere se è
questa la causa.
44..66..55.. SSee ttuuttttoo qquueessttoo nnoonn ffuunnzziioonnaa
Se ci sono ancora problemi, quelli che seguono sono gli ultimi
consigli su tentativi eventuali:
· rileggete attentamente questo HOWTO;
· leggetevi i riferimenti alla fine di questo documento, specialmente
i file della documentazione nei sorgenti del kernel;
· inviate una domanda su uno dei gruppi comp.os.linux o su altri
gruppi Usenet (comp.os.linux.hardware è una buona scelta; a causa
dell'altro livello di traffico su questi gruppi aiuta mettere la
parola ``sound'' nel subject del messaggio, in modo tale che i
giusti esperti lo notino);
· Usare un motore di ricerca per il Web/Usenet con un criterio di
ricerca intelligente può dare ottimi risultati velocemente. Una
scelta tipica è ;
· provate a usare l'ultimo kernel di Linux (ma solo come ultima
risorsa, gli ultimi kernel sperimentali potrebbero essere
instabili);
· inviate una mail all'autore del driver sonoro;
· inviate una mail all'autore del Sound HOWTO;
· avviate Emacs e digitate Esc-x doctor :-)
55.. AApppplliiccaazziioonnii cchhee ssuuppppoorrttaannoo iill ssuuoonnoo
Qui propongo un esempio di applicativi che dovreste usare se avete una
scheda sonora. Potete cercare anche nella Linux Software Map, negli
archivi di Internet (siti ftp), o sul vostro CD-ROM di Linux per
informazioni più aggiornate.
Come minimo, dovreste avere questi applicativi:
· utilità di conversione del formato audio (ad es. sox)
· programma mixer (ad es. aumix o xmix)
· registratore/riproduttore digitale (ad es. play o wavplay)
· riproduttore di file MOD (ad es. tracker)
· riproduttore di file MIDI (ad es. playmidi)
Esistono versioni con interfaccia testuale e versioni con interfaccia
grafica della maggior parte di questi applicativi. Vi sono anche altre
applicazioni esoteriche (come quelle che parlano o riconoscono il
parlato) che forse vorrete provare.
66.. RRiissppoossttee aallllee ddoommaannddee ffrreeqquueennttii ((FFAAQQ))
Questa sezione risponde a qualcuna delle domande che vengono
comunemente poste nei newsgroup Usenet e nelle mailing list.
Risposte ad altre domande possono essere trovate alla pagina web del
driver sonoro OSS.
66..11.. CCoossaa ssoonnoo ii vvaarrii ffiillee ddiissppoossiittiivvoo aauuddiioo??
Gran parte dei nomi dei dispositivi audio sono standard, ma in qualche
distribuzione di Linux potrebbero avere nomi leggermente differenti.
//ddeevv//aauuddiioo
Normalmente un link a /dev/audio0
//ddeevv//aauuddiioo00
Dispositivo audio compatibile con le workstation Sun (è solo un
implementazione parziale, non supporta l'interfaccia ioctl di
Sun, solo la codifica u-law)
//ddeevv//aauuddiioo11
Secondo dispositivo audio (se supportato dalla scheda audio o se
vi è più di una scheda audio installata)
//ddeevv//ddsspp
Normalmente un link /dev/dsp0
//ddeevv//ddsspp00
Primo dispositivo di campionamento digitale
//ddeevv//ddsspp11
Secondo dispositivo di campionamento digitale
//ddeevv//mmiixxeerr
Normalmente un link a /dev/mixer0
//ddeevv//mmiixxeerr00
Primo mixer audio
//ddeevv//mmiixxeerr11
Secondo mixer audio
//ddeevv//mmuussiicc
Interfaccia ad alto livello del sequencer
//ddeevv//sseeqquueenncceerr
Accesso a basso livello di MIDI, FM e GUS
//ddeevv//sseeqquueenncceerr22
Normalmente un link a /dev/music
//ddeevv//mmiiddii0000
Prima porta raw MIDI
//ddeevv//mmiiddii0011
Seconda porta raw MIDI
//ddeevv//mmiiddii0022
Terza porta raw MIDI
//ddeevv//mmiiddii0033
Quarta porta raw MIDI
//ddeevv//ssnnddssttaatt
Se letto riporta lo stato del driver sonoro (anche come
/proc/sound)
Il driver per l'altoparlante del PC fornisce i seguenti dispositivi:
//ddeevv//ppccaauuddiioo
Equivalente a /dev/audio
//ddeevv//ppccsspp
Equivalente a /dev/dsp
//ddeevv//ppccmmiixxeerr
Equivalente a /dev/mixer
66..22.. CCoommee ppoossssoo rriipprroodduurrrree uunn ffiillee aauuddiioo??
I file (.au) delle workstation Sun possono essere riprodotti
reindirizzandoli a /dev/audio . I file ``raw'' possono essere
riprodotti reindirizzandoli su /dev/dsp. È preferibile usare comunque
un programma tipo play, visto che riconosce la maggior parte di file e
imposta la scheda sonora sulla giusta frequenza di campionamento, ecc.
I programmi come wavplay o vplay (contenuti nel pacchetto snd-util)
daranno i migliori risultati con i file WAV. Comunque sia essi non
riconosceranno i file compressi Microsoft WAV ADPCM. Inoltre le
vecchie versioni di play (contenute nel pacchetto Lsox) non
funzioneranno perfettamente con i file WAV a 16 bit.
Il comando splay contenuto nel pacchetto snd-util può essere usato per
riprodurre la maggior parte dei file audio, se si impostano
manualmente i giusti parametri nella riga di comando.
66..33.. CCoommee ppoossssoo rreeggiissttrraarree uunn ffiillee aauuddiioo??
La lettura di /dev/audio o /dev/dsp produrrà dei dati campionati che
possono essere rediretti su un file. Un programma come vrec renderà
più agevole il controllo della frequenza di campionamento, della
durata, ecc. Probabilmente si avrà anche bisogno di un programma mixer
per selezionare il dispositivo di input appropriato.
66..44.. PPoossssoo aavveerree ppiiùù ddii uunnaa sscchheeddaa??
Con l'attuale driver sonoro è possibile avere diverse schede
SoundBlaster, SoundBlaster/Pro, SoundBlaster16, MPU-401 o MSS
contemporaneamente nello stesso sistema. L'installazione di due
SoundBlaster è possibile ma richiede la definizione delle macro
SB2_BASE, SB2_IRQ, SB2_DMA e (in qualche caso) SB2_DMA2 tramite la
modifica manuale di local.h. È anche possibile avere una SoundBlaster
e una PAS16 allo stesso tempo.
Con i nuovi kernel 2.0, che configurano il supporto per il suono
usando make config, al posto di local.h, si avrà bisogno di modificare
il file /usr/include/linux/autoconf.h. Dopo la parte contenente le
linee:
#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)
si aggiungano queste linee (con i valori giusti per il proprio
sistema):
#define SB2_BASE 0x330
#define SB2_IRQ (7)
#define SB2_DMA (2)
#define SB2_DMA2 (2)
I seguenti driver non permettono installazioni multiple:
· GUS (limitazione del driver)
· MAD16 (limitazione dell'hardware)
· AudioTrix Pro (limitazione dell'hardware)
· CS4232 (limitazione dell'hardware)
66..55.. EErrrroorr:: NNoo ssuucchh ffiillee oorr ddiirreeccttoorryy ffoorr ssoouunndd ddeevviicceess
Si devono creare i file dispositivo per il driver sonoro. Controllate
la sezione sulla ``Creazione dei file dispositivo'' . Se ci sono,
assicuratevi che abbiano il corretto ``minor'' e ``major number''
(alcune vecchie distribuzioni di Linux sui CD-ROM non creano i file
dispositivo corretti al momento dell'installazione).
66..66.. EErrrroorr:: NNoo ssuucchh ddeevviiccee ffoorr ssoouunndd ddeevviicceess
Non avete eseguito il boot di un kernel compilato con il supporto per
il suono o la configurazione dell'indirizzo di I/O non corrisponde al
vostro hardware. Controllate se avete usato il kernel giusto e
verificate che l'impostazione dei parametri della vostra scheda,
assegnati in fase di configurazione del driver sonoro, corrisponda
esattamente all'impostazione della scheda stessa.
66..77.. EErrrroorr:: NNoo ssppaaccee lleefftt oonn ddeevviiccee ffoorr ssoouunndd ddeevviicceess
Può succedere se provate a registrare dati attraverso /dev/audio o
/dev/dsp senza aver creato i necessari file dispositivo. Il
dispositivo sonoro ora è un file normale, e ha riempito la vostra
partizione. Dovete eseguire lo script documentato nella sezione
``Creazione dei file dispositivo'' in questo documento.
Si può incorrere in questo errore anche con Linux 2.0 e successivi se
non vi è abbastanza RAM di sistema libera per aprire il dispositivo.
Il driver audio richiede almeno due pagine (8k) di RAM fisica contigua
per ogni canale DMA. Questo accade a volte nelle macchine con meno di
16M di RAM o in quelle che sono rimaste accese per molto tempo.
Potrebbe essere possibile liberare della memoria RAM compilando ed
eseguendo il seguente programma C prima di provare a utilizzare il
dispositivo audio di nuovo:
main() {
int i;
char mem[500000];
for (i = 0; i < 500000; i++)
mem[i] = 0;
exit(0);
}
66..88.. EErrrroorr:: DDeevviiccee bbuussyy ffoorr ssoouunndd ddeevviicceess
Il dispositivo audio può essere aperto da un solo processo per volta.
Molto probabilmente qualche altro processo sta usando il dispositivo
in questione. Una maniera per esserne sicuri è quella di utilizzare 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 dispositivo. Per accedere nuovamente al
dispositivo audio si deve aspettare che il processo termini o si
procede a un ``kill'' del processo stesso. Per vedere accessi al
dispositivo fatti da altri utenti il comando fuser deve essere
eseguito come utente root.
In qualche sistema si dovrà essere root per vedere con il comando
fuser i processi degli altri utenti.
66..99.. MMii ddàà aannccoorraa ll''eerrrroorree ddii ````ddeevviiccee bbuussyy''''!!
In accordo con quello che dice Brian Gough, per le schede SoundBlaster
che usano il canale DMA 1 vi è un potenziale conflitto con il driver
dello streamer QIC-02, che usa il canale DMA 1, causando errori del
tipo ``device busy''. Se si sta usando FTAPE probabilmente si è
abilitato questo driver. Come dice il FTAPE-HOWTO il driver QIC-02 non
è essenziale per l'uso di FTAPE; è richiesto solo il driver QI-117.
La riconfigurazione del kernel con l'inclusione del driver QI-117 e
l'esclusione del driver QI-02 consente a FTAPE ed al driver sonoro di
coesistere.
66..1100.. PPllaayybbaacckk ppaarrzziiaallee ddii uunn ffiillee ssoonnoorroo ddiiggiittaallee
Il sintomo è normalmente che il file audio suona per circa un secondo
e poi si blocca completamente oppure riporta un errore tipo: ``missing
IRQ'' o ``DMA timeout''. Probabilmente avete delle impostazioni degli
IRQ o DMA sbagliate. Verificate che la configurazione del kernel
corrisponda alle impostazioni dei jumper della vostra scheda e che gli
stessi non siano in conflitto con qualche altra scheda installata nel
sistema.
Un altro sintomo è il file audio che provoca un _l_o_o_p. Questo è
normalmente causato da un conflitto di IRQ.
66..1111.. PPaauussee nneellllaa rriipprroodduuzziioonnee ddii ffiillee MMOODD
L'esecuzione dei file MOD richiede un grande impiego di CPU. O avete
troppi processi attivi o il vostro computer è troppo lento per
l'esecuzione in ``real time''. Avete alcune possibilità:
· Provate ad eseguire il file con una minore frequenza di
campionamento o in modalità ``mono''
· Eliminate altri processi attivi
· Compratevi un computer più veloce
· Comprate una scheda sonora più potente (ad es. Gravis UltraSound)
Se avete una scheda Gravis UltraSound, dovete usare uno dei programmi
per eseguire i file mod scritti specificatamente per la GUS (ad es.
gmod).
66..1122.. EErrrroorrii ddii ccoommppiillaazziioonnee qquuaannddoo ccoommppiilloo aapppplliiccaazziioonnii ssoonnoorree
La versione 1.0c e precedenti del driver sonoro usavano uno schema
diverso e incompatibile dell'ioctl() . Si ottenga il nuovo codice o si
effettuino i necessari cambiamenti per adattarlo al nuovo driver
sonoro. Controllate il file Readme del driver sonoro per i dettagli.
Controllate comunque di usare l'ultima versione di soundcard.h e di
ultrasound.h quando compilate l'applicazione. Guardate le istruzioni
per l'installazione all'inizio di questo testo.
66..1133.. SSEEGGVV qquuaannddoo eesseegguuoo aapppplliiccaazziioonnii aauuddiioo cchhee pprriimmaa ffuunnzziioonnaavvaannoo
Questo è probabilmente lo stesso problema affrontato nella domanda
precedente.
66..1144.. QQuuaallii ssoonnoo ii bbuugg ee llee lliimmiittaazziioonnii ddeell ddrriivveerr ssoonnoorroo??
Si controllino i file inclusi con i sorgenti del driver sonoro del
kernel.
66..1155.. DDoovvee ssoonnoo ddooccuummeennttaattii ggllii iiooccttllss(()) eecccc.. ddeell ddrriivveerr ssoonnoorroo??
Attualmente la migliore documentazione che non sia il codice sorgente
è disponibile sul sito web della 4Front Technologies,
. Un'altra fonte di informazioni è la _L_i_n_u_x
_M_u_l_t_i_m_e_d_i_a _G_u_i_d_e, di cui si parla nella sezione ``Riferimenti''.
66..1166.. QQuuaannttoo ddeevvee eesssseerree ppootteennttee llaa CCPPUU ppeerr rriipprroodduurrrree oo rreeggiissttrraarree
sseennzzaa ppaauussee??
Non vi è una facile risposta a questa domanda, poiché dipende da:
· uso di campioni PCM o sintesi FM
· frequenza di campionamento e dimensioni del campione
· quale applicazione di usa per riprodurre o registrare
· hardware della scheda audio
· velocità di I/O del disco, clock della CPU, dimensione della cache
ecc.
In generale ogni 386 dovrebbe essere in grado di riprodurre con
facilità campioni o musica sintetizzata tramite FM con una scheda
audio a 8 bit.
La riproduzione dei file MOD, però, richiede un considerevole impiego
di CPU. Test sperimentali hanno mostrato che riprodurre a 44KHz
richiede più del 40% della potenza di un 486/50 e che un 386/25
difficilmente può andare più in là dei 22KHz (il tutto con una scheda
audio a 8 bit come la SoundBlaster). Una scheda come la Gravis
Ultrasound dispone di maggiori funzioni nel suo hardware ed impiegherà
meno tempo di CPU.
Queste affermazioni sottointendono che il computer non stia eseguendo
nessun altro programma che richieda un forte uso della CPU.
La conversione di file audio o l'aggiunta di effetti usando un
programma di utilità come sox è molto più veloce se si dispone di un
coprocessore matematico (o di una CPU con FPU on board). Comunque il
driver del kernel non esegue nessun calcolo in virgola mobile.
66..1177.. PPrroobblleemmii ccoonn llaa PPAASS1166 ee uunn aaddaattttaattoorree SSCCSSII AAddaapptteecc 11554422
(La spiegazione seguente è stata fornita da seeker@indirect.com)
Linux riconosce il 1542 all'indirizzo 330 (predefinito) o 334, e la
PAS permette l'emulazione MPU-401 solo a 330. Anche se si disabilita
MPU-401 via software, c'è ancora qualcosa che entra in conflitto con
il 1542 se esso usa il suo indirizzo preferenziale. Spostare il 1542
su 334 rende tutti felici.
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 a incontrare problemi. I DMA 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
impostare 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 le
impostazioni della EEPROM, così la modifica diventa permanente e non
avete bisogno di aggiungere una riga nel CONFIG.SYS del DOS, e potete
avviare 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 a
eccezione della PAS16. La BBS della Media Vision propone il programma
SYMPFIX.EXE che, si suppone, risolva il problema attivando il bit di
diagnostica nel controller del bus della Symphony, ma non è garantito
totalmente. Avete bisogno di:
· Contattare il distributore della scheda madre per sostituire la
vecchia versione del chip del bus
· Cambiare la scheda madre
· Comprare un altro tipo di scheda sonora
Young Microsystem propone un aggiornamento della scheda che importa
per circa $30 (USA); altri produttori 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;
_n_e_s_s_u_n_o 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 _p_e_r_l_o_m_e_n_o 12MHz di velocità
del bus se i chip sono progettati correttamente. Uscita dal pulpito
(scala sinistra).
Il primo problema dipende dal chipset usato sulla vostra scheda madre,
dalla velocità del bus e da altre impostazioni del BIOS, e dalle fasi
della luna. Il secondo problema dipende dalle opzioni di ``refresh''
(nascoste o sincronizzate), dalla velocità del canale DMA del 1542 e
(forse) dalla 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. Fate attenzione: 3 su 4 dei
tecnici con cui mi hanno fatto parlare erano degli idioti. Dovevo
diffidare di _q_u_a_l_s_i_a_s_i cosa mi dicessero su altro hardware, visto che
non conoscevano molto bene neanche il loro.
66..1188.. ÈÈ ppoossssiibbiillee rreeggiissttrraarree ee rriipprroodduurrrree ssiimmuullttaanneeaammeennttee??
I driver di qualche scheda audio supportano la modalità full duplex.
Si faccia riferimento alla documentazione della 4Front Technologies
per informazioni su come utilizzare questa particolarità.
66..1199.. LLaa mmiiaa SSBB1166 èè iimmppoossttaattaa ssuu IIRRQQ 22,, mmaa ccoonnffiigguurree nnoonn ppeerrmmeettttee ddii
sscceegglliieerree qquueessttoo vvaalloorree ddii IIRRQQ..
Sui 286 e successivi l'IRQ 2 è collegato in cascata al secondo
controller di interrupt. È equivalente all'IRQ 9.
66..2200.. SSoonnoo ssuuppppoorrttaattee llaa SSoouunnddBBllaasstteerr AAWWEE3322 oo llaa SSoouunnddBBllaasstteerr1166 AASSPP??
Nel passato la Creative Labs non voleva rendere pubbliche le
informazioni di programmazione di queste schede. Adesso hanno cambiato
opinione e un driver per AWE è oggi incluso nei kernel Linux 2.1.x.
66..2211.. SSee ssttoo uussaannddoo LLiinnuuxx,, ee ffaacccciioo uunn rreebboooott ccoonn DDOOSS,, mmii ddàà eerrrroorrii
ee//oo llee aapppplliiccaazziioonnii ssoonnoorree nnoonn ffuunnzziioonnaannoo..
Questo può succedere dopo un ``soft-reboot'' al DOS. Alle volte il
messaggio di errore fa riferimento, erroneamente, a un errore nel file
CONFIG.SYS.
La maggior parte delle attuali schede sonore hanno la possibilità di
impostare IRQ e DMA via software. Se usate impostazioni differenti per
Linux e per MS-DOS/Windows, potreste avere problemi. Alcune schede non
accettano nuovi parametri senza un reset completo (ovvero, 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'' (ovvero Ctrl-Alt-Canc).
La soluzione corretta consiste nell'impostare gli stessi IRQ e DMA sia
con MS-DOS che con Linux (o non usare DOS :-)).
66..2222.. PPrroobblleemmii ccoonn DDOOOOMM ssoottttoo LLiinnuuxx
Gli utilizzatori del porting del gioco della ID Software DOOM per
Linux potrebbero essere interessati a queste notizie.
Per un corretto risultato sonoro usate la versione 2.90 o successive
del driver sonoro; ha il supporto per la nuova modalità in real-time
DOOM Mode.
I campioni sonori sono a 16-bit. Se avete una scheda audio a 8 bit
potete comunque far funzionare il sonoro usando uno dei programmi
disponibili su .
Se DOOM risultasse lento sul vostro sistema, disabilitando il sonoro
(basta rinominare il file sndserver) dovrebbero aumentare le
prestazioni.
La musica in DOOM non è attivata per predefinizione (come nella
versione DOS). Il programma musserver aggiunge il supporto per la
musica a DOOM per Linux. È reperibile a questo indirizzo:
.
66..2233.. CCoommee ppoossssoo rriidduurrrree iill rruummoorree nneellllaa mmiiaa sscchheeddaa aauuddiioo??
L'uso di cavi schermati di buona qualità e provare la scheda audio su
slot differenti può aiutare a ridurre il rumore. Se la scheda audio ha
una regolazione per il volume si possono provare le differenti
posizioni consentite (il massimo è probabilmente la scelta migliore).
Si usi un programma mixer per assicurarsi che le entrate non volute
(ad es. il microfono) siano poste a guadagno zero.
Philipp Braunbeck dice di aver trovato sulla sua scheda audio ESS-1868
un jumper che permetteva di escludere l'amplificatore della scheda
stessa, che altrimenti produceva rumore.
Su un sistema 386 ho scoperto che l'opzione di avvio del kernel no-hlt
riduce il livello di rumore. Serve a dire al kernel di non usare
l'istruzione halt mentre esegue il loop del processo idle. Potete
provarla anche voi manualmente al boot o attraverso LILO usando il
comando append="no-hlt" nel vostro file di configurazione di LILO.
Qualche scheda audio semplicemente non è progettata con una buona
schermatura e messa terra ed è quindi esposta a questo tipo di
problemi.
66..2244.. PPoossssoo rriipprroodduurrrree ssuuoonnii,, mmaa nnoonn rreeggiissttrraarrllii
Se potete riprodurre suoni, ma non registrarli, provate a seguire
questi passi:
· Usate un programma mixer per selezionare la sorgente appropriata
(ad es. il microfono)
· Usate un programma mixer per impostare al massimo il livello di
guadagno in input
· Se potete, provate a registrare da MS-DOS per determinare se si
tratta di un problema hardware
A volte i canali DMA usati per registrare e per riprodurre sono
differenti. In questo caso la causa più probabile del malfunzionamento
è che i canali DMA siano stati impostati in maniera errata.
66..2255.. LLaa mmiiaa sscchheeddaa aauuddiioo ````ccoommppaattiibbiillee'''' ffuunnzziioonnaa ssoolloo ssee pprriimmaa llaa
iinniizziiaalliizzzzoo ddaa MMSS--DDOOSS..
In molti casi una scheda ``SoundBlaster compatibile'' funzionerà
meglio sotto Linux se configurata con un driver diverso da quello
SoundBlaster. Molte schede audio dicono di essere compatibili (ad es.
``compatibile SB Pro 16 bit'' o ``compatibile SB 16 bit'') ma
normalmente la modalità SoundBlaster è solo un trucco per mantenere la
compatibilità con i giochi di DOS. Molte schede hanno una modalità
nativa a 16 bit che probabilmente sarà supportata dalle recenti
versioni di Linux (2.0.1 e successive).
Solo con qualche scheda audio (normalmente abbastanza vecchia) è
necessario provare a farla funzionare in modalità SoundBlaster. Le
sole schede audio recenti che fanno eccezione a questa regola sono
quelle basate su Mwave.
66..2266.. LLaa mmiiaa sscchheeddaa aauuddiioo ````ccoommppaattiibbiillee'''' SSoouunnddBBllaasstteerr 1166 bbiitt ffuunn
zziioonnaa ssoolloo iinn mmooddaalliittàà 88 bbiitt ssoottttoo LLiinnuuxx..
Le schede audio a 16 bit definite SoundBlaster compatibili sono in
effetti compatibili con la SoundBlaster Pro 8 bit. Normalmente hanno
una modalità a 16 bit che non è compatibile con la SoundBlaster 16 e
non è compatibile con il driver sonoro di Linux.
Potreste riuscire a farle funzionare in modalità 16 bit usando il
driver MAD16 o MSS/WSS.
66..2277.. DDoovvee ppoossssoo ttrroovvaarree aapppplliiccaazziioonnii ssoonnoorree ppeerr LLiinnuuxx??
Ecco qua qualche buon archivio su cui andare a cercare applicazioni
sonore specifiche per Linux:
·
·
·
·
·
·
Si veda anche la sezione ``Riferimenti'' di questo documento.
66..2288.. IIll ddrriivveerr ssoonnoorroo ppuuòò eesssseerree ccoommppiillaattoo ccoommee mmoodduulloo ccaarriiccaabbiillee??
Con i kernel più recenti il driver sonoro può anche essere compilato e
utilizzato nella forma di diversi moduli caricabili.
Si dia un'occhiata al file /usr/src/linux/Documentation/sound, e
specialmente al file Introduction e README.modules.
66..2299.. PPoossssoo uussaarree llaa sscchheeddaa aauuddiioo ppeerr rriimmppiiaazzzzaarree iill bbeeeepp ddii ccoonnssoollee??
Provate il programma oplbeep, che si trova su
Altra variante è il programma beep su
Il pacchetto modutils contiene un programma di esempio e una patch per
il kernel che consente di chiamare un programma esterno per generare
suoni su richiesta del kernel.
In alternativa con qualche scheda audio è possibile connettere
l'output dello speaker del PC alla scheda audio in modo tale che tutti
i suoni vengano dagli speaker della scheda audio.
66..3300.. CCooss''èè VVooxxWWaarree??
La versione commerciale dei driver sonori commercializzati da 4Front
Technologies era stata chiamata, in precedenza _V_o_x_W_a_r_e, _U_S_S (Unix
Sound System), e anche _T_A_S_D (Temporarily Anonymous Sound Driver). È
adesso venduta come _O_S_S (Open Sound System). Alla versione presente
nel kernel si fa spesso riferimento con il nome _O_S_S_/_F_r_e_e.
Per maggiori informazioni si veda il sito web della 4Front
Technologies . Ho scritto un articolo su
OSS/Linux nel numero di Giugno 1997 del Linux Journal.
66..3311.. SSooxx//PPllaayy//VVppllaayy mmii ddaannnnoo ll''eerrrroorree ````iinnvvaalliidd bblloocckk ssiizzee 11002244''''
Una modifica del driver sonoro effettuata nella versione 1.3.67 ha
reso inutilizzabili alcuni programmi di riproduzione che (non
correttamente) controllano che la chiamata al ioctl
SNDCTL_DSP_GETBLKSIZE sia più grande di 4096. Gli ultimi driver sonori
sono stati corretti in modo da evitare allocazioni di frammenti più
piccoli di 4096 byte, per risolvere il problema con i programmi di
utilità più vecchi.
66..3322.. LLee iimmppoossttaazziioonnii ddeell mmiixxeerr vvaannnnoo ppeerrssee ooggnnii vvoollttaa cchhee ccaarriiccoo iill
mmoodduulloo ddeell ddrriivveerr ssoonnoorroo
Il driver sonoro può essere compilato come modulo caricabile e si può
utilizzare kerneld per caricarlo e scaricarlo automaticamente. Ciò
può far sorgere un problema: ogni volta che si ricarica il modulo le
impostazioni del mixer ritornano ai loro valori predefiniti. Per
qualche scheda audio questi possono essere troppo alti (ad es.
SoundBlaster16) o troppo bassi. Una soluzione è stata trovata da
Markus Gutschke (gutschk@uni-muenster.de): si inserisce una linea come
la seguente nel proprio file /etc/conf.modules:
options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75
Questo fa in modo che il vostro programma mixer (in questo caso viene
utilizzato setmixer) venga eseguito immediatamente dopo che il driver
sonoro è stato caricato. Il parametro dma_buffersize è finto, serve
solo perché il comando "options" richiede che venga impostata
un'opzione. Si modifichi la linea come si desidera per utilizzare i
propri programmi mixer e livelli di guadagno.
Se il driver sonoro è stato compilato nel kernel e si vogliono
impostare i guadagni dal mixer al momento dell'avvio del sistema,
potete inserire una chiamata al programma mixer in un file di avvio
del sistema, come è /etc/rc.d/rc.local.
66..3333.. SSoolloo ll''uutteennttee rroooott ppuuòò eeffffeettttuuaarree rreeggiissttrraazziioonnii aauuddiioo
Per predefinizione lo script in Readme.linux che crea i file
dispositivo sonori imposta i permessi di accesso a tali file in
maniera tale da consentirne la lettura dall'utente root. Questo per
tappare un buco nella sicurezza del sistema. In un sistema di
computer in rete gli utenti esterni possono effettuare un login su un
PC Linux con scheda audio e microfono e ascoltare ciò che viene detto.
Se ciò non vi preoccupa potete tranquillamente cambiare i permessi di
accesso ai file usati nello script.
Con le impostazioni predefinite gli utenti possono comunque riprodurre
file audio. Questo non costituisce un rischio per la sicurezza del
sistema ma sono una fonte di potenziale disturbo.
66..3344.. ÈÈ ssuuppppoorrttaattoo ll''hhaarrddwwaarree aauuddiioo pprreesseennttee nneell TThhiinnkkPPaadd ddeellll''IIBBMM??
Le informazioni su come utilizzare la scheda audio mwave che si trova
sui computer laptop ThinkPad di IBM sotto Linux possono essere trovate
nel file /usr/src/linux/Documentation/sound/mwave, che fa parte della
distribuzione del sorgente del kernel.
66..3355.. LLee aapppplliiccaazziioonnii ssii rriiffiiuuttaannoo ddii ffuunnzziioonnaarree ppooiicchhéé llaa mmiiaa sscchheeddaa
aauuddiioo nnoonn hhaa uunn mmiixxeerr
Alcune vecchie schede SoundBlaster a 8 bit non avevano un circuito
mixer. Vi sono delle applicazioni che insistono nel voler accedere al
mixer, e non possono funzionare con questo tipo di schede. Jens Werner
(werner@bert.emv.ing.tu-bs.de) ci suggerisce un rimedio: basta creare
un link da /dev/mixer a /dev/null e tutto dovrebbe funzionare a
puntino.
66..3366.. PPrroobblleemmii ccoonn uunnaa SSBB1166 CCTT44117700
Da: Scott Manley (spm@star.arm.ac.uk):
Sembra che un nuovo tipo di SoundBlaster sia in commercio --
e ci venga venduta come una SB16 -- il numero di modello
indicato sulla scheda è il CT4170. Queste schede hanno un
solo canale DMA e quindi, dopo che le avrete configurate, il
kernel avrà grossi problemi nell'accedere al canale DMA 16
bit. La soluzione è impostare il secondo DMA a 1 in modo
tale che la scheda si comporti come le altre.
66..3377.. CCoommee ccoolllleeggaarree uunnaa ttaassttiieerraa MMIIDDII aa uunnaa sscchheeddaa aauuddiioo
Da: Kim G. S. OEyhus (kim@pvv.ntnu.no):
Ho cercato su Internet e nella documentazione che riguarda
il supporto sonoro come fare una cosa semplice come connet
tere l'output MIDI di una tastiera all'input MIDI di una
scheda audio. Non ho trovato nulla. Il problema è che
entrambe usano lo stesso dispositivo, /dev/midi, almeno se
utilizzate il driver OSS. Ho trovato un modo di farlo, che
vorrei condividere con voi. Quello che dico si applica a un
sintetizzatore molto semplice, con completo supporto del
MIDI:
Collegare una master keyboard MIDI a una scheda audio via
MIDI
Una master keyboard MIDI è una tastiera senza alcun sinte
tizzatore e con solo un connettore MIDI out. Questo può
essere collegato a una porta 15-pin D-SUB presente in molte
schede audio con un opportuno cavo.
Una simile tastiera può essere utilizzata per controllare il
sintetizzatore MIDI presente nella scheda audio, facendolo
diventare un semplice sintetizzatore controllato da
tastiera.
Si compili il programma seguente, ad esempio con 'gcc -o
prog prog.c' e lo si mandi in esecuzione:
#include
main()
{
int fil, a;
char b[256];
fil=open("/dev/midi", O_RDWR);
for(;;)
{
a=read(fil, b, 256);
write(fil, b, a);
}
}
66..3388.. PPrroobblleemmii ccoonn ll''IIRRQQ 1155 eedd EEnnssoonniiqq PPCCII 112288
Da: Matthew Inger (mattinger@mindless.com):
Come far funzionare una scheda Ensoniq PCI 128
Il problema che si presentava era che la scheda cercava di
utilizzare l'interrupt 15 come impostazione predefinita (a
causa del Plug and Play). Questo interrupt è utilizzato dal
controller ide secondario e non può essere condiviso da
altri dispositivi. Si deve quindi forzare in qualche maniera
il es1370 a usare un altro interrupt (ad esempio l'interrupt
11 come avviene da Windows).
Che ci crediate o no mi sono inventato da solo una
soluzione.
Ecco ciò che dovete fare:
a) nel BIOS dovrete dire al vostro computer che non avete un
sistema operativo Plug and Play. Mi sembra che nel mio BIOS
sia fra le opzioni avanzate.
b) nelle impostazioni del bus PCI del BIOS, impostate il
computer in maniera tale che riservi l'interrupt 15 per i
vecchi dispositivi ISA. Nel mio bios, fra le opzioni avan
zate, vi è una sezione dedicata alle impostazioni PCI. In
questa sezione vi è una parte chiamata Resource Exclusion, è
qui che dovete agire.
Quando farete il reboot di Linux potrete utilizzare la
scheda sonora (non mi ricordo se appare nei messaggi di boot
come accadeva prima oppure no). Per essere del tutto sicuri,
ho rieseguito sndconfig per far uscire il messaggio di test,
che in effetti non si sentiva granché, ma comunque si sen
tiva. Invece l'output di un CD audio si sente perfetta
mente.
Non preoccupatevi di Windows, ho provato le mie due schede:
modem ISA e scheda audio e funzionavano senza problemi.
Il problema potrebbe essere che il vostro BIOS sarà differ
ente dal mio ma dovete solo immaginarvi dove poter trovare
le due impostazioni di cui ho parlato prima. Buona fortuna.
66..3399.. DDoovvee ppoossssoo ttrroovvaarree ddeellllee ppaattcchh MMIIDDII ggrraattuuiittee ppeerr SSoofftt OOSSSS
Soft OSS è un sintetizzatore wavetable via software incluso nel driver
sonoro del kernel, compatibile con la scheda Gravis Ultrasound. Per
far funzionare il driver vi serviranno dei file patch MIDI compatibili
con la GUS. La documentazione le chiama ``public domain MIDIA patchset
available from several ftp sites''.
Come spiegato sul sito web della 4Front Technologies
possono essere scaricate da
.
77.. RRiiffeerriimmeennttii
Se avete una scheda audio che supporta un'interfaccia CDROM o SCSI, il
Linux SCSI HOWTO e il Linux CD-ROM HOWTO contengono altre informazioni
che potrebbero esservi utili.
Il Sound Playing HOWTO descrive come eseguire differenti tipi di file
audio e musicali sotto Linux.
Il Linux SoundBlaster AWE32/64 Mini-HOWTO descrive come far funzionare
una scheda audio SoundBlaster 32 o 64 sotto Linux.
Informazioni sulla programmazione possono essere trovate sul sito web
della 4Front Technologies .
Le seguenti FAQ sono spedite regolarmente sul newsgroup Usenet
news.announce e archiviate su
:
· PCsoundcards/generic-faq (FAQ generali su PC con scheda audio)
· PCsoundcards/soundcard-faq (FAQ di comp.sys.ibm.pc.soundcard)
· PCsoundcards/gravis-ultrasound/faq (FAQ di Gravis UltraSound)
· audio-fmts/part1 (Descrizione del formato del file audio)
· audio-fmts/part2 (Descrizione del formato del file audio)
Le FAQ contengono anche dei riferimenti a mailing list e siti che
trattano di prodotti specifici. Nei seguenti newsgroup Usenet si parla
dei problemi riguardanti il suono e/o la musica:
· alt.binaries.sounds.* (vari gruppi su cui postare file audio)
· alt.binaries.multimedia (per postare file multimediali)
· alt.sb.programmer (Sulla programmazione della SoundBlaster)
· comp.multimedia (Riguardante la multimedialità)
· comp.music (Teoria e ricerca sulla musica generata da computer)
· comp.sys.ibm.pc.soundcard.* (vari gruppi su schede audio per PC
IBM)
Si può trovare un sito Web dedicato alla multimedialità su
. Altro buon sito per il MIDI
per Linux e le applicazioni per l'audio è
. La Creative Labs ha un sito Web
all'indirizzo . MediaTrix ha un sito Web
all'indirizzo .
Le mailing list su Linux contengono un certo numero di ``canali''
dedicati a diversi argomenti, incluso l'aspetto sonoro. Per sapere
come entrare a farne parte, inviate un messaggio con la parola
``help'' come corpo del messaggio a majordomo@vger.rutgers.edu. Queste
mailing list non sono quelle adatte per domande sulla configurazione
della scheda audio e così via, sono state create per discussioni
legate allo sviluppo.
Come detto più volte, il driver sonoro del kernel contiene vari file
Readme con delle utili informazioni sul driver della scheda audio.
Normalmente sono nella directory /usr/src/linux/drivers/sound.
Altre informazioni su OSS, il driver sonoro commerciale per Linux e
altri sistemi operativi Unix compatibili, le si può trovare sul sito
Web di 4Front Technologies, .
La _L_i_n_u_x _S_o_f_t_w_a_r_e _M_a_p (LSM) è un riferimento insostituibile per
trovare del software per Linux. La ricerca della LSM per parola chiave
_s_o_u_n_d è una buon metodo per identificare applicazioni relative
all'hardware sonoro. La LSM può essere trovata su vari siti anonimi di
FTP, incluso . Vi sono
anche diversi siti web che hanno una database delle applicazioni per
Linux. Uno di questi è .
Il Linux Documentation Project ha prodotto diversi libri su Linux,
incluso _L_i_n_u_x _I_n_s_t_a_l_l_a_t_i_o_n _a_n_d _G_e_t_t_i_n_g _S_t_a_r_t_e_d. Questi sono
disponibili liberamente su FTP anonimo nei più grandi archivi di Linux
o possono essere comprati già stampati.
Infine, un messaggino senza vergogna: se volete imparare molto di più
sulla multimedialità sotto Linux (specialmente su quanto concerne la
programmazione e le applicazioni per CD-ROM e scheda audio) date
un'occhiata al mio libro _L_i_n_u_x _M_u_l_t_i_m_e_d_i_a _G_u_i_d_e, ISBN 1-56592-219-0,
edito da O'Reilly and Associates. È disponibile la versione inglese e
le traduzioni in francese e giapponese sono in fase di stampa. Per
avere altri dettagli chiamate 800-998-9938 nel Nord America o date
un'occhiata alla pagina Web su
o alla mia
pagina .