Configurarea Linux pentru suportul de sunet include următorii pași:
- Instalarea unei plăci de sunet.
- Configurați Plug and Play (dacă este necesar).
- Configurarea și compilarea kernelului pentru a susține sunetul.
- Creați fișiere de dispozitiv.
- Linux boot și testarea kernel-ului Linux.
Dacă lucrați în Red Hat Linux, atunci există un utilitar numit sndconfig. care în majoritatea cazurilor detectează placa de sunet și configurează toate fișierele de configurare necesare pentru a încărca driverele de sunet corespunzătoare plăcii dvs. de sunet. Dacă lucrați la Red Hat, sper că o veți folosi. Dacă acest utilitar funcționează corect, puteți sări peste restul acestei secțiuni.
Dacă sndconfig nu funcționează, înseamnă că utilizați o altă distribuție Linux, sau doriți să utilizați metoda manuală, pentru a înțelege mai bine ceea ce faci, următoarele secțiuni descriu acești pași mai detaliat.
Pentru a instala echipamentul, urmați instrucțiunile producătorului sau cereți vânzătorului să instaleze cardul.
Cardurile vechi aveau de obicei comutatoare sau seturi de comutatoare pentru setarea canalelor IRQ, DMA etc; notați valorile utilizate. Dacă nu sunteți sigur, utilizați valorile implicite. Încercați, dacă este posibil, să evitați conflictele cu alte dispozitive (de exemplu, carduri Ethernet, adaptoare SCSI, porturi seriale și paralele).
De obicei, ar trebui să utilizați aceleași setări pentru porturile I / O, IRQ și DMA care se execută sub DOS. Cu toate acestea, în anumite cazuri (în special cu carduri PnP) puteți utiliza alte setări pentru a face cartela să funcționeze sub Linux. Trebuie să efectuăm mai multe experimente.
Mai întâi, uitați-vă la documentația pentru distribuția dvs. Linux. Are deja suport Plug and Play sau poate funcționa puțin diferit decât este descris aici. dacă trebuie să îl configurați singur, detaliile acestui proces pot fi găsite în paginile de ajutor ale utilităților isapnp. Pe scurt, procesul este următorul:
Dacă dintr-un motiv anume nu puteți sau nu doriți să utilizați pachetul isapnp, există și alte câteva modalități. Dacă utilizați cardul atunci când lucrați în Microsoft Windows 95 sau 98, puteți utiliza managerul de dispozitive pentru a configura cartela și apoi reporniți programabil în Linux utilizând programul LOADLIN. Asigurați-vă că atât Windows cât și Linux utilizează aceleași setări de hartă.
Dacă utilizați cardul în timp ce lucrați în DOS, puteți utiliza utilitarul icu. care vine cu plăci PnP SoundBlaster16, pentru a configura hărți în DOS și apoi pentru a reporni programatic în Linux folosind programul LOADLIN. Apoi, asigurați-vă că DOS și Linux utilizează aceleași setări de hartă.
Unele dintre driverele pentru plăci de sunet includ software-ul care este necesar pentru a iniția Plug and Play pentru card. Pentru detalii, consultați documentația șoferului pentru card.
Ar trebui să consultați Kernel Linux HOWTO pentru informații detaliate despre compilarea kernel-ului. Voi menționa aici numai lucruri specifice cărților de sunet.
Dacă nu ați reglat niciodată nucleul anterior pentru a susține sunetul, atunci este o idee bună să citiți fișierele de documentație corespunzătoare furnizate împreună cu driverul de sunet, în special informații referitoare la tipul de card. Fișierele pot fi găsite în directorul cu documentația kernel-ului, de obicei sunt instalate în directorul / usr / src / linux / Documentation / sound. Dacă nu aveți acest director, atunci utilizați fie un kernel foarte vechi, fie nu ați instalat codul sursă al kernel-ului.
Urmați procedura obișnuită pentru construirea unui kernel. În prezent există trei interfețe de procesare a configurației. Interfața grafică care rulează sub X11 poate fi pornită cu comanda "make xconfig". Un sistem de meniuri gestionate care necesită doar un ecran de text este invocat cu comanda "make menuconfig". Metoda originală, folosind "make config", pornește o interfață simplă bazată pe text.
Când configurați kernelul, există o mare varietate de tipuri de carduri de sunet disponibile și parametrii driver-elor utilizate. Ajutorul contextual din interiorul utilitarului de configurare trebuie să ofere o explicație a fiecărui parametru. Selectați opțiunile necesare.
După setarea parametrilor, trebuie să compilați și să instalați un nou kernel, așa cum este descris în Kernel HOWTO.
Pentru operații corecte, trebuie create fișiere de dispozitiv pentru driverul de sunet. În mod implicit, acestea sunt create în timpul instalării sistemului dvs. Linux. O verificare rapidă se poate face folosind comanda indicată mai jos. Dacă ieșirea este aceeași cu cea afișată (data va fi diferită), atunci fișierele dispozitivului sunt aproape normale.
Rețineți că dacă aveți fișierele corecte ale dispozitivului nu garantează nimic. Driverul trebuie încărcat sau compilat în kernel înainte ca dispozitivul să funcționeze (mai multe despre acest lucru mai târziu).
În cazuri rare, dacă credeți că fișierele dispozitivului sunt incorecte, le puteți recrea. Cele mai multe distribuții Linux au un script / dev / MAKEDEV, care poate fi utilizat în același scop.
Acum ar trebui să fiți gata să descărcați un nou kernel și să testați driverul de sunet. Urmați procedura obișnuită de instalare și încărcați un nou kernel (salvați kernelul vechi în caz de probleme).
Acestea trebuie să corespundă tipului de card și setărilor de comutare (dacă există).
Rețineți că mesajele de mai sus nu sunt afișate atunci când utilizați driver-ul de sunet ca un modul kernel încărcabile (cu excepția cazului în care o activați, de exemplu, insmod sunet trace_init = 1 echipa).
Când driverul de sunet se află în kernel, trebuie să fie afișate mesajele de inițializare a sunetului și trebuie să fie afișată inițializarea sunetului. Dacă acestea nu apar, indică faptul că nu există driver de sunet în kernel. În acest caz, ar trebui să verificați dacă ați instalat cu adevărat nucleul cu driverul de sunet activat.
Dacă nu apare nimic între liniile inițializării sunetului și inițializarea sunetului. acest lucru înseamnă că nu este detectat niciun dispozitiv de sunet. Cel mai probabil acest lucru înseamnă că nu ați permis tipul corect de driver, cardul nu este acceptat, porturile I / O sunt setate incorect sau că aveți o placă PnP care nu a fost configurată.
De asemenea, conducătorul auto poate afișa mesaje de eroare și avertismente în timpul procesului de încărcare. Urmăriți-le în timpul primei încărcări după configurarea driverului de sunet.
Apoi, ar trebui să verificați fișierul dispozitiv / dev / sndstat. Citirea fișierului de stare a driverului de sunet ar trebui să ofere informații suplimentare dacă driverul plăcii de sunet a fost inițializat corect. O ieșire simplă ar trebui să arate astfel:
Comanda de mai sus poate produce unele mesaje de eroare. "Nu există un astfel de fișier sau director" vă spune că trebuie să creați fișiere de dispozitiv (vezi pct. 4.3). "Nu există un astfel de dispozitiv" înseamnă că driverul de sunet nu a fost încărcat sau compilat în kernel. Reveniți la secțiunea 4.2 și remediați-o.
Dacă rândurile din secțiunea „config Card:“ fișierul / dev / sndstat listate în interiorul parantezelor (cum ar fi „(SoundBlaster la 0x220 irq 5 DRQ 1,5)“), aceasta înseamnă că dispozitivul a fost configurat, dar nu a fost detectat.
Acum sunteți gata să redați fișiere de sunet simple. Luați un simplu fișier de sunet și trimiteți-l la dispozitivul de sunet pentru a verifica rapid ieșirea de sunet, de exemplu
(Asigurați-vă că nu omiteți ">" în linia de comandă de mai sus).
Rețineți că, în general, utilizarea pisicii nu este cea mai bună metodă de a reda fișiere audio, este doar o verificare rapidă. Ar trebui să luați programul sonor adecvat (descris mai jos), care va face mai bine lucrarea.
Aceste comenzi funcționează dacă cel puțin un dispozitiv este afișat în secțiunea dispozitiv audio din fișierul / dev / sndstat. Dacă secțiunea dispozitivului audio este goală, trebuie să verificați de ce dispozitivul nu este recunoscut.
În cazul în care comenzile de mai sus întoarce „I / O eroare (eroare I / O)“, ar trebui să se uite la sfârșitul mesajelor kernel listate folosind comanda „dmesg“. Este posibil ca mesajul de eroare să fie imprimat acolo. Adesea, un astfel de mesaj "sunet: DMA (ieșire) a expirat - Eroare configurație IRQ / DRQ (sunet: DMA timp de așteptare (ieșire) - IRQ / DRQ eroare de configurare)?". Mesajul de mai sus indică faptul că șoferul nu a primit de la întreruperea de așteptat dispozitiv audio. În cele mai multe cazuri, acest lucru înseamnă că IRQ configurat sau canale DMA pentru conducătorul auto nu funcționează. Cel mai bun mod de a face să funcționeze - încercați toate numerele posibile DMA și IRQ, susținut de dispozitiv.
Un alt motiv posibil este că dispozitivul nu este compatibil cu dispozitivul pentru care driverul este configurat. Acesta este un caz destul de obișnuit în care plăcile de sunet compatibile SoundBlaster (Pro / 16) compatibile nu funcționează cu driverul SoundBlaster. În acest caz, ar trebui să încercați să găsiți un dispozitiv cu care placa dvs. de sunet este compatibilă (de exemplu, la cerere, grupului de știri comp.os.linux.hardware).
Acum puteți verifica înregistrarea sunetului. Dacă aveți opțiunea de a introduce un sunet, puteți efectua o verificare rapidă a acestui lucru folosind comenzi cum ar fi următoarele:
Evident, pentru ca acest lucru să funcționeze, aveți nevoie de un microfon conectat la o placă de sunet și trebuie să vorbiți despre el. De asemenea, aveți nevoie de un program de amestecare pentru a seta microfonul ca dispozitiv de intrare și pentru a nivela nivelurile de înregistrare.
Dacă testele au trecut, puteți fi siguri că dispozitivele audio ale DAC și ADC și software-ul funcționează. Dacă aveți probleme, consultați următoarea secțiune a acestui document.
Dacă aveți probleme în continuare după ce urmați instrucțiunile din acest document, iată câteva lucruri de verificat. Controalele sunt prezentate în ordinea crescândă a complexității. Dacă verificarea nu reușește, rezolvați această problemă înainte de a trece la etapa următoare.
Pasul 1: Asigurați-vă că rulați de fapt nucleul compilat.
Puteți verifica data kernel-ului pentru a vedea dacă ați executat actualul kernel pe care l-ați compilat cu suportul de sunet. Puteți face acest lucru cu comanda uname.
Dacă data nu se potrivește cu cea dată când ați compilat nucleul, atunci mai lucrați cu vechiul kernel. Ați reînceput cu adevărat? Dacă utilizați LILO, v-ați mutat cu adevărat (de obicei prin rularea lilo)? Dacă boot-ați de pe o dischetă, ați creat un nou disc de boot și l-ați folosit la boot time?
Pasul 2: Asigurați-vă că driverul de sunet este integrat în kernel.
Pasul 3: Kernelul detectează placa de sunet în timpul descărcării?
Dacă nu ați găsit cardul, atunci ceva nu este în regulă. Asigurați-vă că este într-adevăr instalat. Dacă placa de sunet rulează sub DOS, veți fi siguri că hardware-ul funcționează, deci problema este cel mai probabil cu configurarea kernel-ului. Fie că ați configurat cardul dvs. prin specificarea unui tip greșit, fie prin setarea parametrilor greșit sau dacă cardul dvs. nu este compatibil cu niciun driver de sunet Linux.
De asemenea, este posibil să aveți o placă de sunet compatibilă care necesită inițializare de către driverul DOS. Încercați să descărcați DOS și descărcați driverul de sunet furnizat de vânzător. Apoi, reporniți Linux (reboot "cald") apăsând Control-Alt-Delete. Asigurați-vă că numerele de port I / O ale cardului, setările DMA și IRQ pe Linux sunt aceleași cu cele utilizate pentru DOS. Citiți fișierul Readme.cards din pachetul driverului de sunet pentru instrucțiuni privind configurarea tipului de card.
Dacă cardul dvs. nu este menționat în acest document, este posibil ca driverul Linux să nu îl accepte. Puteți verifica acest lucru cu unele dintre legăturile listate la sfârșitul documentului.
Pasul 4: Puteți citi datele de pe dispozitivul dsp?
Încercați să citiți din / dev / audio utilizând comanda dd afișată anterior în acest document. Comanda ar trebui să funcționeze fără erori.
Dacă nu funcționează, probabil că problema este într-un conflict IRQ sau DMA sau un fel de incompatibilitate hardware (dispozitivul nu este acceptat de Linux sau driverul este configurat pentru un dispozitiv greșit).
O posibilitate improbabilă este echipamentul spart. Încercați să testați placa de sunet sub DOS pentru a exclude această posibilitate.
Când toți acești pași au eșuat
Dacă aveți în continuare probleme, iată câteva dorințe finale pentru lucruri pe care ar trebui să le încercați: