Linux Sound-HOWTO, czyli Dźwięk w Linuxie - Jak To Zrobić?
Linux Sound-HOWTO, czyli Dźwięk w Linuxie - Jak To Zrobić?
Autor: Jeff Tranter,
jeff_tranter@pobox.com
v1.16, 5 stycznia 1997
Wersja polska: Paweł Olszewski
alder@amg.net.pl
v1.01, 23 marca 1997
Ten dokument opisuje obsługę dźwięku w Linuxie. Zawiera listę urządzeń
dźwiękowych pracujących z Linuxem, wyjaśnia jak skonfigurować sterowniki
dołączane do jądra i odpowiada na często zadawane pytania. Zamiarem autora
jest szybsze wprowadzenie nowych użytkowników w temat i zmniejszenie ruchu
sieciowego w grupach dyskusyjnych Usenetu i pocztowych listach
dyskusyjnych.
1. Wprowadzenie
Oto dokument Linux Sound HOWTO, czyli Dźwięk w Linuxie - Jak To Zrobić? Z
założenia ma to być szybki poradnik obejmujący wszystko, co potrzebujesz
wiedzieć aby zainstalować i skonfigurować obsługę dźwięku pod
Linuxem. Udzielono tu odpowiedzi na często zadawane pytania, a także
zamieszczono odnośniki do innych źródeł informacji na rozmaite tematy
związane z dźwiękiem i muzyką generowaną za pomocą komputerów.
Zakres pracy jest ograniczony do problematyki kart dźwiękowych, odnoszącej
się do Linuxa. Więcej informacji na temat kart dźwiękowych i generowania
dźwięku i muzyki z pomocą komputera znajdziesz w dokumentach wymienionych w
rozdziale Źróła Informacji.
1.1 Podziękowania
Wiele z tych informacji pochodzi z dokumentacji dostarczonej wraz ze
sterownikiem dźwięku, napisanym przez Hannu Savolainena (
hannu@voxware.pp.fi). Składam
podziękowania Hannu i wielu innym ludziom, którzy tworzyli sterowniki
dźwięku do jądra Linuxa i programy narzędziowe.
Dzięki pakietowi
Linuxdoc-SGML ten dokument HOWTO jest dostępny w kilku formatach,
wygenerowanych z jednego wspólnego pliku źródłowego.
1.2 Historia Wersji
Wersja 1.1pierwsza wersja; wysłana jedynie do kanału SOUND
pocztowej listy aktywistów Linuxa
Wersja 1.2niewielkie uaktualnienia; pierwsza wersja dostępna w
archiwach internetowych
Wersja 1.3skonwertowana do formatu SGML; obecnie dostępna w
kilku formatach dzięki narzędziom Linuxdoc-SGML Matta Welsha; zmiana
wyglądu z powodu nowego formatu, jedynie niewielkie zmiany w treści
Wersja 1.4niewielkie poprawki w SGMLu; dodana odpowiedź na temat
niekompatybilności kontrolera SCSI Adaptec1542A i karty PAS16
Wersja 1.5sterownik dźwięku w wersji 2.5a jest teraz w
dystrybucji jądra 1.1; uwaga na temat obsłgi GUS-MAX; inne nieznaczne poprawki
Wersja 1.6dodana informacja o błędzie "no space on device"
("brak przestrzeni na urządzeniu"); dodana uwaga o tym, że Podręcznik
Hackera (Hacker's Guide) znajduje się w "ukrytym" katalogu; dodane pytanie
o tryb dwukierunkowy; informacja o błędach "device busy" ("urządzenie
zajęte"); inne nieznaczne poprawki
Wersja 1.7dodane informacje o ASP i AWE32; dostępny jest VoxWare
2.9; odpowiedź na pytanie o używanie IRQ2; odnośniki do dokumentów HOWTO o
dźwięku i SCSI
Wersja 1.8dodane pytanie o błędy pod DOSem; wiele niewielkich
poprawek celem uaktualnienia względem wersji 2.90 sterownika dźwięku;
informacja o grze DOOM; odpowiedź na temat redukcji szumów
Wersja 1.9pytania o nagrywanie i karty-klony
Wersja 1.10napomknienie, że HOWTO dostępne jest przez WWW, jako
dokumenty do druku i w innych wersjach językowych; informacja na temat
konfliktu DMA ze sterownikiem napędu taśmowego QIC; informacja o karcie
Sound Galaxy NX Pro i myszy szeregowej Logitech
Wersja 1.11Długo oczekiwane uaktualnienie (byłem zajęty);
dokument objęty licencją GPL; uaktualnienie do wersji 3.0 sterownika
dźwięku; informacja o wielu nowo obsługiwanych kartach; więcej informacji o
konfiguracji i usuwaniu błędów; masa nowych odnośników do stron HTML;
uaktualnienie zgodnie z formatem CD-ROM HOWTO.
Wersja 1.12nowe sterowniki w jądrze 1.3.34; nowe nazwy urządzeń
dźwiękowych; adres 1542 to 334 a nie 333; wyjaśnienie statusu Emu i ASP
Creative Labs; wskazanie do stron WWW Creative Labs i MediaTrix
Wersja 1.13wzmianka o nazwie VoxWare; uaktualnienie o najnowsze
obsługiwane karty dźwiękowe i opcje konfiguracji; pytanie o obsługę Plug
and Play; problem rozmiarów bloku; nowe opcje w xconfig i menuconfig;
narzędzia modutils mają obsługę dźwięku; usunięcie pocztowej listy
dyskusyjnej vger; wyróżnienie adresu strony WWW autora; inne niewielkie
zmiany
Wersja 1.14Audio Excell DSP16 nie jest obecnie obsługiwana
(powinna znowu działać za kilka miesięcy); zmiany w programie configure;
dostępne jest włoska wersja językowa tego HOWTO; trick - jak ustawiać
wzmocnienie miksowania podczas ładowania modułu obsługi dźwięku; ostatnia
stabilna wersja jądra to 2.0; now nazwa sterownika dźwięku; pytanie o prawa
dostępu root'a na plikach urządzeń dźwiękowych
Wersja 1.15usunięcie kilku bardzo starych i obecnie
nieaktualnych pytań; nowy adres e-mail autora; poprawione kilka odwołań do
najnowszych pakietów programów; więcej informacji o książce nt.
multimediów; niewielkie poprawki pisowni i gramatyki
Wersja 1.16wiele uaktualnień i poprawek od Hannu Savolainena;
dodany sześciomiesięczny "okres przydatności do użycia"; nowy URL do strony
WWW dotyczącej książki, dodany odnośnik do hiszpańskiej wersji językowej;
niewielkie poprawki poprawki pisowni i gramatyki
1.3 Nowe wersje tego dokumentu
Nowe wersje oryginału tego dokumentu będą okresowo wysyłane do gupy
dyskusyjnej
comp.os.linux.answers. Będą również załadowywane do rozmaitych
anonimowych archiwów ftp, zbierających tego typu informacje, jak np.
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/.
Wersje hipertekstowe tego i innych dokumentów Linux HOWTO są dostępne na
wielu serwerach WWW w Internecie, w tym pod adresem
http://sunsite.unc.edu/mdw/mdw.html. Większość CD-ROMowych
dystrybucji Linuxa zawiera dokumenty HOWTO, często w katalogu
/usr/doc/, jak również dokumenty te dostępne są u kilku producentów
w postaci drukowanej. Czasami dokumenty HOWTO z dystrybucji na płytach
CD-ROM, archiwów ftp i w formie drukowanej są nieaktualne. Jeśli z daty
wydania tego dokumentu wynika, że ma on więcej niż 6 miesięcy,
prawdopodobnie nowsza wersja jest już dostępna w Internecie.
Wersja polska znajduje się wraz z pozostałymi dokumentami Linux-HOWTO w
wersji polskiej w archiwum
ftp://ftp.jtz.org.pl/HOWTO/Oryginalna, angielska wersja tego dokumentu:
ftp://sunsite.unc.edu/pub/Linux/HOWTO/.
Francuska wersja tego dokumentu :
ftp://ftp.ibp.fr/pub2/linux/french/docs/HOWTO/.
Japońska wersja tego dokumentu :
http://yebisu.ics.es.osaka-u.ac.jp/linux/.
Włoska wersja tego dokumentu :
http://www.psico.unipd.it/ildp/docs/HOWTO/Sound-HOWTO.html.
Hiszpańska wersja tego dokumentu :
http://www.insflug.nova.es/howtos/online/sonido/sonido-COMO.html.
Jeśli przetłumaczysz oryginał na inną wersję językową, daj znać autorowi, a
do powyższej listy dodany zostanie odpowiedni odnośnik.
1.4 Informacja zwrotna
Polegam na Tobie, czytelniku, aby uczynić ten dokument użytecznym. Jeśli
masz jakieś sugestie, poprawki lub komentarze, proszę wyślij je do mnie,
jeff_tranter@pobox.com, a ja spróbuje włączyć je do
następnej wersji.
Wyrażam również chęć udzielania odpowiedzi na ogólne pytania dotyczące kart
dźwiękowych tak dobrze jak tylko potrafię. Jednak zanim zapytasz mnie,
zapoznaj się proszę z całym niniejszym HOWTO, a wysyłając pytanie
dołącz dokładną informację na temat problemu.
Jeśli opublikujesz ten dokument na dysku CD-ROM lub w wersji drukowanej,
byłbym wdzięczny za przesłanie mi jednego egzemplarza. Napisz e-mail, to
podam mój adres pocztowy. Warto w takiej sytuacji również rozważyć datek na
rzecz Projektu Dokumentacji Linuxa (Linux Documentation Project), co
wspomoże ideę darmowej dokumentacji do Linuxa. W sprawie dokładniejszych
informacji skontaktuj się z koordynatorem projektu Linux HOWTO, Gregiem
Hankinsem
mailto:gregh@sunsite.unc.edu.
1.5 Polityka Dystrybucji
Prawa autorskie 1995-1997 Jeff Tranter.
Ten HOWTO jest darmową dokumentacją; możesz go rozprowadzać i/lub
modyfikować na zasadach określonych w Generalnej Publicznej Licencji GNU
(GPL) przez Fundację Darmowego Oprogramowania (Free Software Foundation);
Licencja w wersji 2 lub (zgodnie z Twoim uznaniem) jakakolwiek późniejsza.
Dokument ten rozprowadzany jest w nadziei, że będzie przydatny, jednak bez
żadnej gwarancji; nawet bez domniemanej gwarancji przeznaczenia lub
przydatności do konkretnego celu. Więcej szczegółów znajdziesz w
Generalnej Publicznej Licencji GNU.
Możesz otrzymać kopię Generalnej Publicznej Licencji GNU, jeśli napiszesz
do Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
2. Technologia Kart Dźwiękowych
Ten rozdział jest bardzo skrótowym przeglądem technologii dźwięku
komputerowego, który ma na celu ułatwić ci zrozumienie później używanych
pojęć. Aby dowiedzieć się więcej, powinieneś odwołać się do książek o
dźwięku cyfrowym lub cyfrowym przetwarzaniu sygnałów dźwiękowych.
Dźwięk jest zjawiskiem analogowym; może przyjmować dowolne wartości z
ciągłego przedziału. Komputery są cyfrowe; lubią pracować z
wartościami dyskretnymi. Karty dźwiękowe wykorzystują urządzenie zwane
Konwerterem Analogowo - Cyfrowym (A/D lub ADC) do konwersji napięć
odpowiadających analogowym falom dźwiękowym do postaci cyfrowych lub
numerycznych wartości, które można przechowywać w pamięci. Podobnie,
Konwerter Cyfrowo - Analogowy (D/A lub DAC) przekształca wartości
numeryczne z powrotem na napięcia analogowe, które w efekcie mogą sterować
głośnikiem, produkując dźwięk.
Proces przetwarzania postaci analogowej na cyfrową, zwany próbkowaniem,
obciążony jest pewnym błędem. Dwa czynniki są najważniejsze przy
określaniu, jak wiernie próbkowany dźwięk odwzorowuje analogowy
oryginał. Częstotliwość próbkowania to liczba próbek pobranych w danej
jednostce czasu (najczęściej określana w próbkach na sekundę lub
Hertzach). Przy niskiej częstotliwości próbkowania analogowy sygnał
odwzorowany będzie mniej dokładnie. Rozmiar próbki to zakres wartości
używanych do opisania każdej próbki, zazwyczaj oznaczony w bitach. Im
większy rozmiar próbki, tym dokładniejszy będzie sygnał cyfrowy.
Karty dźwiękowe najczęściej używają próbek 8- lub 16-bitowych przy
częstotliwościach próbkowania od około 4000 do 44.000 próbek na
sekundę. Próbki mogą również zawierać jeden kanał (mono) lub dwa kanały
(stereo).
Synteza FM jest starszą techniką wytwarzania dźwięku. Polega na
łączeniu różnych fal dźwiękowych (np. sinusoidalnej, trójkątnej,
kwadratowej). Syntezę FM łatwiej jest zaimplementować sprzętowo niż
konwersję D/A, ale za to trudniej ją oprogramować. Jest ona również mniej
elastyczna. Wiele kart dźwiękowych obsługuje syntezę FM dla celów wstecznej
kompatybilności ze starszymi kartami i programami. Zazwyczaj zawierają one
kilka niezależnych generatorów dźwięku lub głosów.
Synteza Wavetable łączy elastyczność konwersji D/A z wielokanałowymi
możliwościami syntezy FM. W tej technologii przetworzone na postać cyfrową
głosy mogą być załadowane do dedykowanego obszaru pamięci, a następnie
odtwarzane, łączone i modyfikowane przy niewielkim obciążeniu procesora.
Wszystkie najlepsze karty dźwiękowe obsługują syntezę wavetable.
Większość kart dźwiękowych daje możliwość miksowania - łączenia
sygnałów z różnych źródeł wejściowych i kontrolowania poziomów głośności.
MIDI jest skrótem od nazwy Musical Instrument Digital Interface
(Cyfrowy Interfejs Instrumentów Muzycznych) i jest standardowym protokołem
sprzętowym i programowym pozwalającym instrumentom muzycznym na
komunikowanie się ze sobą. Sygnały przesłane po szynie MIDI mogą być
również przechowywane w plikach MIDI do późniejszej obróbki i
odtwarzania. Wiele kart dźwiękowych zawiera interfejs MIDI. Te, które go
nie mają, nadal mogą odgrywać pliki MIDI przy użyciu zintegrowanych w
karcie funkcji.
Pliki MOD są powszechnym formatem utworów generowanych za pomocą
komputerów. Obok informacji o nutach, które mają być zagrane, pliki te
zawierają cyfrowe próbki instrumentów (inaczej zwane głosami). Pliki MOD po
raz pierwszy pojawiły się na komputerach Amiga, ale mogą być odtwarzane z
pomocą stosownego oprogramowania na innych systemach, z Linuxem włącznie.
3. Obsługiwane Urządzenia
W tym rozdziale wymieniono karty graficzne i interfejsy, które są obecnie
obsługiwane przez Linuxa. Informacja tutaj zawarta oparta jest na
najnowszych w trakcie pisania tego dokumentu jądrach Linuxa.
Sterownik dźwięku ma swą własną numerację wersji. Ostatnie stabilne jądro
Linuxa to wersja 2.0.27, wykorzystująca sterownik dźwięku w wersji
3.5.4-960630.
Autor sterownika dźwięku, Hannu Savolainen, zazwyczaj również udostępnia
nowsze wersje sterownika dźwięku zanim włączane są one do standardowej
dystrybucji jądra Linuxa. Najbardziej aktualna lista obsługiwanych kart
znajduje się pod adresem
http://www.4front-tech.com/ossfree/new_cards.html (USA) lub
http://personal.eunet.fi/pp/voxware/new_cards.html (Europa).
Na tych stronach wyszczególnione jest, która wersja sterownika dźwięku jest
wymagana przy danym typie karty dźwiękowej, lub czy sterownik danej karty
jest nadal w fazie rozwoju. Plik
/usr/src/linux/drivers/sound/Readme.cards, rozprowadzany wraz ze
sterownikiem dźwięku do jądra, zawiera informację o obsługiwanych kartach,
ale nie zawsze jest aktualny.
Sterownik dźwięku powinien również działać z większością kart dźwiękowych
na platformie Alpha. Jednakże, niektóre karty mogą wywoływać konflikty na
portach I/O innych urządzeń systemów opartych na Alpha, nawet jeśli działają
one poprawnie na komputerach i386, więc ogólnie rzecz biorąc nie można z
góry określić, czy dana karta będzie działać, zanim się faktycznie nie
spróbuje.
W czasie, gdy to piszę, sterownik dźwięku nie działa jeszcze na wersji
Linuxa na systemy z procesorem PowerPC, ale w przyszłości obsługa ta
powinna się pojawić.
Wygląda na to, że sterownik dźwięku można dołączyć do jądra w wersji Linuxa
na systemy MIPs, ale obawiam się że nie specjalnie działa (czy komputery
MIPs mają w ogóle sloty ISA?).
Jądro Linuxa zawiera osobne sterowniki dla wersji na Atari i Amigę, które
implementują kompatybilny podzestaw sterownika na platformę Intel, przy użyciu
wbudowanych w te komputery urządzeń.
Wersja Linuxa na systemy SPARC nie ma obecnie obsługi dźwięku (podobnie jak
Amiga i Atari, komputery SPARC mają wbudowane urządzenia dźwiękowe, więc
można to załatwić nowym sterownikiem).
3.1 Karty Dźwiękowe
Następujące karty dźwiękowe obsługiwane są przez sterownik dźwięku jądra
Linuxa:
ATI Stereo F/X (nie jest już produkowana)
AdLib (nie jest już produkowana)
Ensoniq SoundScape (i kompatybilne firm Reveal i Spea)
Gravis Ultrasound
Gravis Ultrasound ACE
Gravis Ultrasound Max
Gravis Ultrasound z opcjonalnym próbkowaniem 16-bitowym
Logitech Sound Man 16
Logitech SoundMan Games
Logitech SoundMan Wave
MAD16 Pro (układy OPTi 82C928, 82C929, 82C930, 82C924)
Media Vision Jazz16
MediaTriX AudioTriX Pro
Microsoft Windows Sound System (MSS/WSS)
Mozart (OAK OTI-601)
Orchid SW32
Personal Sound System (PSS)
Pro Audio Spectrum 16
Pro Audio Studio 16
Pro Sonic 16
Roland MPU-401 interfejs MIDI
Sound Blaster 1.0
Sound Blaster 16
Sound Blaster 16ASP
Sound Blaster 2.0
Sound Blaster AWE32
Sound Blaster Pro
TI TM4000M notebook
ThunderBoard
Turtle Beach Tropez ("classic", ale nie Plus)
Turtle Beach Maui
Yamaha FM synthesizers (OPL2, OPL3 i OPL4)
6850 UART interfejs MIDI
Należy zauważyć, że karty Plug and Play (PnP) nie są w pełni kompatybilne
ze starszymi modelami bez PnP tego samego urządzenia. Dla przykładu,
SoundBlaster16 PnP nie jest w pełni zgodna z oryginalną kartą
SoundBlaster16. Podobnie jest w przypadku kart Soundscape PnP i GUS
PnP. Więcej informacji o Plug and Play znajdziesz w dalszej części tego
dokumentu.
Następujące karty nie są obsługiwane, z powodu, że są przestarzałe,
bądź dlatego, że producent nie chce udostępnić informacji programistycznych
niezbędnych do napisania sterownika.
Pro Audio Spectrum (oryginalna)
Pro Audio Spectrum+
starsze (oparte o Sierra Aria) karty dźwiękowe firmy Diamond
Inne karty dźwiękowe, które określa się jako kompatybilne z jedną z
obsługiwanych kart dźwiękowych mogą działać, jeśli są zgodne sprzętowo
(tj. na poziomie rejestrów).
Mimo faktu, iż większość kart dźwiękowych tytułuje się mianem
"kompatybilnych z SoundBlaster", bardzo niewiele z obecnie sprzedawanych
kart jest wystarczająco kompatybilnych, aby pracować z linuxowym
sterownikiem karty SoundBlaster. Karty te najczęściej pracują lepiej pod
kontrolą sterownika MSS/WSS lub MAD16. Jedynie prawdziwe karty
SoundBlaster, produkowane przez Creative Labs, zawierające oryginalne
układy (tzn. SoundBlaster16 Vibra), karty MV Jaz16 i oparte o ESS688/1688
działają dobrze ze sterownikiem SoundBlaster. Próba użycia ustawienia
"16-bitowa karta dźwiękowa kompatybilna z SoundBlaster Pro" to zazwyczaj
tylko strata czasu.
Jądro Linuxa obsługuje port SCSI wbudowany w niektóre karty dźwiękowe
(np. ProAudioSpectrum 16) i firmowy interfejs do niektórych napędów CD-ROM
(np. Soundblaster Pro). Więcej informacji znajdziesz w dokumentach
Linux SCSI HOWTO oraz
Linux CDROM HOWTODostępny jest także ładowalny moduł jądra obsługujący porty joysticka -
również te, które znajdują się na niektórych kartach dźwiękowych.
Zauważ, że obsługa SCSI, CD-ROM, joysticka i sterowniki dźwiękowe w jądrze
są od siebie całkowicie niezależne.
Najnowsze informacje o sterowniku kart dźwiękowych znajdziesz na stronie
WWW Hannu Savolainena, której adres wymieniony jest w rozdziale Źródła Informacji.
3.2 Dodatkowe Sterowniki Dźwięku
Dostępnych jest też kilka "nieoficjalnych" sterowników dźwięku, nie
włączonych do dystrybucji jądra Linuxa, używanych zamiast standardowego
sterownika dźwięku.
Komercyjną wersję sterownika dźwięku pod Linuxa sprzedaje firma 4Front
Technologies. Oferowana przez nich wersja ma kilka dodatkowych funkcji w
porównaniu ze sterownikiem włączonym do dystrybucji jądra Linuxa. Więcej
informacji na ten temat znajdziesz na stronie WWW
4Front Technologies.
Markus Mummert (
mum@mmk.e-technik.tu-muenchen.de) stworzył pakiet sterowników do
kart Turtle Beach MultiSound (classic), Tahiti i Monterey. W dokumentacji
czytamy:
"Jest on zaprojektowany do wysokiej jakości zapisu/odczytu z dysku twardego
bez utraty synchronizacji nawet na obciążonych systemach. Inne funkcje,
takie jak synteza fal, MIDI i cyfrowy procesor sygnałowy (DSP) nie mogą być
używane. Nie jest również możliwe jednoczesne odtwarzanie i
nagrywanie. Obecnie zastępuje on VoxWare i był testowany na kilku wersjach
jądra, od 1.0.9 do 1.2.1. Można go również zainstalować na systemach UN*X
SysV386R3.2."
Można je znaleźć pod adresem
http://www.cs.colorado.edu/~mccreary/tbeach.
Kim Burgaard (
burgaard@daimi.aau.dk) napisał sterownik i programy narzędziowe do
interfejsu MIDI Roland MPU-401. Opis z mapy oprogramowania Linuxa jest
następujący:
"Sterownik do interfejsów MIDI w pełni zgodnych z Roland MPU-401 (w tym
również Roland SCC-1 i RAP-10/ATW-10). Wraz ze sterownikiem otrzymujemy
użyteczny zestaw programów narzędziowych, w skład którego wchodzą między
innymi odtwarzacz i rejestrator standardowych plików MIDI (Standard MIDI
Files)."
Od czasu wydania wersji 0.11a dokonano licznych ulepszeń. Między innymi,
sterownik zawiera obecnie procedury dzielenia pracy IRQ i można go
skompilować z nowym interfejsem modułów jądra. Opcja pracy z metronomem,
możliwość synchronizowania np. grafiki na podstawie rytmu bez utraty
precyzji, zaawansowany interfejs powtarzania/nagrywania/nadpisywania i
wiele, wiele więcej."
Można to znaleźć pod adresem :
ftp://sunsite.unc.edu/pub/Linux/kernel/sound/mpu401-0.2.tar.gz.
3.3 Głośnik PC (PC Speaker)
Dostępny jest sterownik dźwięku, nie wymagający żadnych dodatkowych
urządzeń dźwiękowych; wykorzystuje on wewnętrzny głośnik PC. Jest on w
większości programowo zgodny ze sterownikiem kart dźwiękowych, jednak jak
można się było spodziewać, jakość uzyskiwanego dźwięku jest znacznie gorsza
i procesor jest znacznie bardziej obciążony. Wyniki bywają różne, zależnie
od charakterystyki danego głośnika. Więcej informacji znajdziesz w
dokumentach dołączonych do sterownika głośnika PC.
Bieżąca wersja to 0.9b i można ją zdobyć pod adresem
ftp://ftp.informatik.hu-berlin.de/pub/os/linux/hu-sound/
3.4 Port Równoległy
Innym wyjściem jest skonstruowanie konwertera cyfrowo-analogowego w oparciu
o równoległy port drukarki i kilka dodatkowych komponentów. Jakość dźwięku
w tym przypadku jest lepsza niż na głośniku PC, ale nadal sterownik
konsumuje dużo czasu procesora. Wskazówki dotyczące budowy takiego
konwertera, oraz odpowiedni sterownik zawiera wcześniej wspomniany pakiet
sterujący do głośnika PC.
4. Instalacja
Konfiguracja obsługi dźwięku przez Linuxa sprowadza się do następujących
kroków:
Instalacja karty dźwiękowej.
Konfiguracja i kompilacja jądra z obsługą dźwięku.
Stworzenie plików urządzeń.
Przeładowanie jądra Linuxa i testowanie ustawień.
Następne rozdziały szczegółowo opisują każdy z tych kroków.
4.1 Instalacja Karty Dźwiękowej
Postąp zgodnie ze wskazówkami producenta odnośnie instalacji sprzętu, lub
zleć instalację dostawcy twojego komputera.
Starsze karty dźwiękowe mają zazwyczaj przełączniki lub jumpery pozwalające
dobrać ustawienia IRQ, kanałów DMA, itd.; zapisz sobie wartości, które
ustawisz. Jeśli nie masz pewności, wykorzystaj ustawienia fabryczne. W
miarę możliwości próbuj unikać konfliktów karty z innymi urządzeniami
(np. kartami ethernet, kontrolerami SCSI, portami szeregowymi i
równoległymi).
Zazwyczaj powinieneś używać te same ustawienia portu I/O, IRQ i DMA, które
działają pod DOSem. Jednak w niektórych przypadkach (szczególnie przy
kartach PnP) dla poprawnego działania karty pod Linuxem ustawienia będą
musiały być inne. Może się przydać metoda doświadczalna.
4.2 Konfigurowanie jądra
Przy wstępnej instalacji Linuxa prawdopodobnie użyłeś jądra
prekompilowanego. Jądra te zazwyczaj nie zawierają obsługi
dźwięku. Najlepiej przekompilować jądro samemu z takimi sterownikami, jakie
są Ci potrzebne. Możesz również chcieć przekompilować jądro aby uaktualnić
je do nowszej wersji lub aby zwolnić nieco pamięci przez zminimalizowanie
jego rozmiarów.
Szczegóły odnośnie kompilacji jądra znajdziesz w
Linux Kernel HOWTO po polsku (lub w oryginale
Linux Kernel HOWTO). Wspomnę tutaj tylko o kilku kwestiach specyficznych
dla kart dźwiękowych.
Jeśli nigdy wcześniej nie konfigurowałeś obsługi dźwięku w jądrze, dobrze
byłoby, abyś przeczytał wszystkie dokumenty Readme dołączone do
sterowników dźwięku do jądra, w szczególności informację o konkretnym typie
karty dźwiękowej, której używasz. Następujące pliki informacyjne można
znaleźć w katalogu kodu źródłowego sterownika dźwięku do jądra, zazwyczaj
/usr/src/linux/drivers/sound:
CHANGELOG - opis zmian w poszczególnych wersjach
COPYING - ograniczenia rozprowadzania i prawa autorskie
Readme - najświeższe i najważniejsze informacje
Readme.aedsp16 - informacje o karcie dźwiękowej Audio Excel DSP 16
Readme.cards - uwagi na temat konfigurowania konkretnych kart
Readme.linux - uwagi o instalacji osobnych wersji sterownika dźwięku
Readme.modules - jak skompilować sterownik dźwięku do postaci modułu ładowalnego
Readme.v30 - nowe funkcje w wersji 3.0 sterownika dźwięku
experimental.txt - uwagi o opcjach eksperymantalnych
Postąp zgodnie ze zwykłą procedurą tworzenia jądra. Obecnie dostępne są
trzy interfejsy ułatwiające konfigurowanie jądra. Graficzny interfejs
działający w X11 można wywołać wpisując "make xconfig". Interfejs oparty o
okienkowe menu, wymagający jedynie trybu tekstowego jest dostępny jako
"make menuconfig". Pierwotna metoda, wywoływana przez "make config", to
prosty, tekstowy interfejs.
Szczególnie uważnie należy korzystać z "make xconfig" i "make
menuconfig". Należy dokładnie prześledzić wszystkie pytania
Yes/No. Domyślną odpowiedzią na te pytania jest zawsze 'No' (nie), co nie
we wszystkich przypadkach jest poprawne. W szczególności opcja "/dev/dsp
and /dev/audio support" (CONFIG_AUDIO) powinna zazwyczaj być włączona.
W tym dokumencie przyjąłem założenie, że konfigurować będziesz jądro metodą
tradycyjną "make config" - odpowiadając na kolejne pytania, chociaż sam
proces jest podobny w innych przypadkach.
Są również dwie różne metody konfigurowania dźwięku. Pierwsza to
tzw. "stara" metoda (jedyna dostępna w jądrach przed wersją
2.0.0). Wykorzystuje ona osobny program konfiguracyjny, będący częścią
sterownika dźwięku. Sposób ten jest skuteczny w przypadku więszości kart
dźwiękowych z wyjątkiem kilku rzadkich modeli, które wymagają dodatkowych
sterowników "niskopoziomowych" (miroSOUND, AWE32 i AEDSP16).
Druga, "nowa" metoda, jest lepiej zintegrowana z okienkowym systemem
konfiguracji jądra. Nie działa ona w przypadku kart, które wymagają pliku
załadowanego od producenta. Należą do nich karty PSS, SM Wave, AudioTrix
Pro i TurtleBeach Tropez/Maui. Przy tych kartach konieczne jest użycie
starej metody.
"make xconfig" wywołuje zawsze "nową" metodę. Przy "make menuconfig" możesz
wybrać między "starą" i "nową" metodą w okienku konfiguracji dźwięku. Jeśli
natomiast używasz "make config", domyślnie wybierana jest "stara"
metoda. Jednak jeśli już raz skorzystałeś z "nowej" metody, będzie ona
również używana przez "make config". Przełączyć się do "starej" metody
możesz wówczas przez uruchomienie "make menuconfig" i wybranie jej w menu.
Zalecany sposób to użycie "make menuconfig" w połączeniu ze "starą"
metodą. Wiele problemów konfiguracji dźwięku powstaje (przynajmniej
częściowo) z powodu niepoprawnego użycia "nowej" metody.
Możliwe jest również skompilowanie sterownika dźwięku do postaci
ładowalnego modułu jądra. Na początek zalecam wkompilowanie sterownika do
rezydentnej części jądra. Z chwilą, gdy już zostanie przetestowany i działa
poprawnie, możesz spróbować opcję modułu.
Po uruchomieniu make config, włącz obsługę dźwięku odpowiadając "y" na
pytanie:
Sound card support (CONFIG_SOUND) [M/n/y/?]
Po zakończeniu pytań konfiguracyjnych skompilowany i uruchomiony zostanie
program konfiguracji dźwięku, który następnie wypyta cię o pożądane opcje
dotyczące kart dźwiękowych. Odpowiadaj na te pytania ostrożnie,
nieprawidłowa odpowiedź może spowodować, że pewne dalsze pytania w ogóle
nie zostaną zadane. Dla przykładu, nie odpowiadaj "yes" na pierwsze pytanie
(PAS16) jeśli rzeczywiście nie masz PAS16. Nie włączaj większej ilości kart
niż faktycznie potrzebujesz obsłużyć, gdyż jedynie zajmuje to
pamięć. Dodatkowo, niektóre sterowniki (jak MPU-401) mogą kłócić się z
kontrolerem SCSI i uniemożliwiać ładowanie jądra.
Wymieniam poniżej opisy poszczególnych opcji konfiguracji. Odpowiedz "y"
(tak) lub "n" (nie) na każde pytanie. Pokazywana jest odpowiedź domyślna,
więc "[Y/n/?]" oznacza domyślnie "y", a "[N/y/?]" oznacza, że domyślnym
ustawieniem jest "n". Aby użyć ustawienie domyślne po prostu naciśnij
Enter, ale pamiętaj, że wartość ta niekoniecznie jest poprawna.
Wpisując znak zapytania ("?") otrzymasz krótką informację opisującą daną
opcję konfiguracji.
Zauważ również, że nie wszystkie pytania muszą uzyskać odpowiedź. Program
konfiguracyjny może wyłączyć pewne pytania zależnie od wcześniejszych
odpowiedzi. Może również wybierać pewne opcje automatycznie.
Old configuration exists in /etc/soundconf. Use it [Y/n/?]
(W /etc/soundconf znaleziono poprzednią konfigurację. Użyć ją [Y/n/?])Jeśli wcześniej kompilowałeś jądro z obsługą dźwięku, mogą być zapisane
ustawienia poprzedniej konfiguracji. Jeśli chcesz użyć poprzednio wybrane
opcje, odpowiedz "y". Jeśli chcesz spróbować innej konfiguracji lub
uaktualniłeś jądro do nowszej wersji, powinieneś odpowiedzieć "n" i przejść
przez procedurę konfiguracji.
ProAudioSpectrum 16 support [Y/n/?]
(Obsługa ProAudioSpectrum 16 [Y/n/?])Odpowiedz "y" tylko jeśli masz kartę Pro Audio Spectrum 16,
ProAudio Studio 16 lub Logitech SoundMan 16. Nie odpowiadaj "y" jeśli masz
jakąś inną kartę firmy Media Vision lub Logitech, gdyż nie są one
kompatybilne z PAS16.
SoundBlaster support [Y/n/?]
(Obsługa kart SoundBlaster [Y/n/?])Odpowiedz "y" jeśli masz oryginalną kartę SoundBlaster produkcji Creative
Labs, lub klon w 100% kompatybilny (jak np. Thunderboard lub SM
Games). Jeśli twoja karta jest na liście obsługiwanych kart, zerknij na
instrukcje do tej konkretnej karty zawarte w pliku Readme.cards
zanim odpowiesz na to pytanie. Przy nieznanych kartach możesz odpowiedzieć
"y" jeśli w opisie dostarczonym z kartą stwierdzono, że jest kompatybilna z
SoundBlasterem.
Gravis Ultrasound support [Y/n/?]
(Obsługa Gravis Ultrasound [Y/n/?])Odpowiedz "y" jeśli masz kartę GUS lub GUS MAX. Odpowiedz "n" gdy ich nie
masz, ponieważ sterownik zżera sporo pamięci.
MPU-401 support (NOT for SB16) [Y/n/?]
(Obsługa MPU-401 (NIE dotyczy SB16) [Y/n/?])Bądź ostrożny z tym pytaniem. Interfejs MPU-401 jest obsługiwany przez
prawie wszystkie karty dźwiękowe. Jednakże, pewne obsługiwane przez Linuxa
karty mają własne sterowniki do MPU-401. Włączenie opcji MPU-401 dla tych
kart wywoła konflikty. Trochę kłopotów spowodować może również włączenie
opcji MPU-401 dla sprzętu, który tak naprawdę nie ma MPU-401. Jeśli twoja
karta znalazła się na liście obsługiwanego sprzętu, przeczytaj informacje
dotyczące tej konkretnej karty w pliku Readme.cards. Bezpiecznie
jest odpowiedzieć "y" jeśli masz prawdziwą kartę interfejsu MIDI MPU-401.
6850 UART Midi support [Y/n/?]
(Obsługa MIDI 6850 UART [Y/n/?])Bezpiecznie jest odpowiedzieć "n" na to pytanie we wszystkich
przypadkach. Interfejs 6850 UART używany jest bardzo rzadko.
PSS (ECHO-ADI2111) support [Y/n/?]
(Obsługa PSS (ECHO-ADI2111) [Y/n/?])Odpowiedz "y" tylko jeśli masz karty Orchid SW32, Cardinal DSP16 lub jakieś
inne oparte na układzie PSS (AD1848 codec + kość ADSP-2115 DSP + kość Echo
ESC614 ASIC).
16 bit sampling option of GUS (not GUS MAX) [Y/n/?]
(Opcja 16-bitowego próbkowania w GUS (nie dotyczy GUS MAX) [Y/n/?])Odpowiedz "y" jeśli masz zainstalowaną 16-bitową kartę siostrzaną na swojej
karcie GUS. Odpowiedz "n" jeśli masz kartę GUS MAX. Odpowiedź "y" przy tej opcji
powoduje wyłączenie obsługi GUS MAX.
GUS MAX support [Y/n/?]
(Obsługa GUS MAX [Y/n/?])Odpowiedz "y" tylko jeśli masz kartę GUS MAX.
Microsoft Sound System support [Y/n/?]
(Obsługa Microsoft Sound System [Y/n/?])Ponownie, pomyśl dobrze, zanim odpowiesz tutaj "y". Bezpiecznie jest wybrać
"y" jeśli masz oryginalną kartę Windows Sound System wyprodukowaną przez
Microsoft, lub kartę Aztech SG 16 Pro (lub NX16 Pro). Możesz również
odpowiedzieć "y" jeśli twoja karta nie była wymieniona wcześniej w tym
dokumencie. Przy kartach obsługiwanych przez VoxWare, przejrzyj instrukcje
do konkretnej karty w pliku Readme.cards. Niektóre karty mają
własną obsługę MSS i w ich przypadku włączenie tej opcji wywoła konflikty.
Ensoniq Soundscape support [Y/n/?]
(Obsługa kart Ensoniq Soundscape [Y/n/?])Odpowiedz "y" jeśli masz kartę dźwiękowoą opartą na układzie Ensoniq
SoundScape. Takie karty produkowane są co najmniej przez Ensoniq, Spea i
Reveal (Reveal robi także inne karty).
MediaTriX AudioTriX Pro support [Y/n/?]
(Obsługa MediaTriX AudioTriX Pro [Y/n/?])Odpowiedz "y" jeśli masz kartę AudioTriX Pro.
Support for MAD16 and/or Mozart based cards?
(Obsługa kart MAD16 i/lub opartych na układzie Mozart?)Odpowiedz "y" jeśli twoja karta ma układ interfejsu audio Mozart (OAK
OTI-601) lub MAD16 (OPTi 82C928 or 82C929). Owe układy są obecnie dość
popularne, więc możliwe jest, że wiele kart no-name ma jeden z
nich. Dodatkowo, układ MAD16 montowany jest w niektórych kartach znanych
producentów takich jak Turtle Beach (Tropez), Reveal (kilka modeli) i
Diamond (ostatnie).
Support for Crystal CS4232 based (PnP) cards [Y/n/?]
(Obsługa kart Pnp opartych na Crystal CS4232 [Y/n/?])Odpowiedz "y" jeśli masz kartę opartą na układzie Crystal CS4232.
Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers
[Y/n/?]
(Obsługa Turtle Beach Wave Front (Maui, Tropez))Odpowiedz "y" jeśli masz jedną z tych kart.
SoundBlaster Pro support [Y/n/?]
(Obsługa SoundBlaster Pro [Y/n/?]Włącz tę opcję jeśli masz kartę SoundBlaster Pro lub SoundBlaster 16. Włącz
ją również jeśli masz jakikolwiek klon SoundBlaster Pro. Odpowiedź "n"
oszczędza trochę pamięci, ale "y" to bezpieczniejsze wyjście.
SoundBlaster 16 support [Y/n/?]
(Obsługa SoundBlaster 16 [Y/n/?]Włącz jeśli masz kartę SoundBlaster 16 (również AWE32).
Audio Excel DSP 16 initialization support [Y/n/?]
(Obsługa inicjalizacji Audio Excel DSP 16 [Y/n/?])Włącz tę opcję, jeśli masz kartę Audio Excel DSP16. Więcej informacji
znajdziesz w pliku Readme.aedsp16.
Następnie program konfiguracyjny zadaje kilka pytań o serwisy wyższego
poziomu. Zalecana jest odpowiedź "y" na każde z tych pytań. Odpowiadaj "n"
tylko wówczas, gdy jesteś pewien, że nie będziesz danej opcji potrzebować.
/dev/dsp and /dev/audio support (usually required) [Y/n/?]
(Obsługa /dev/dsp i /dev/audio (zazwyczaj wymagana) [Y/n/?])Odpowiedź "n" wyłącza /dev/dsp i /dev/audio, urządzenia
konwerterów A/D i D/A. Odpowiedz "y".
MIDI interface support [Y/n/?]
(Obsługa interfejsu MIDI [Y/n/?])Odpowiedź "n" wyłącza urządzenia /dev/midixx i dostęp do
jakichkolwiej portów MIDI wykorzystujących /dev/sequencer i
/dev/music. Opcja ta również wpływa na wszystkie urządzenia
kompatybilne z MPU-401 i/lub General MIDI.
FM synthesizer (YM3812/OPL-3) support [Y/n/?]
(Obsługa syntezatora FM (YM3812/OPL-3) [Y/n/?])Odpowiedz na to pytanie "y".
/dev/sequencer support [Y/n/?]
(Obsługa /dev/sequencer [Y/n/?])Odpowiedź "n" wyłącza /dev/sequencer i /dev/music
Do you want support for the mixer of SG NX Pro ?
(Czy chcesz obsługę mixera SG NX Pro?)Odpowiedz "y" jeśli masz kartę dźwiękową Sound Galaxy NX Pro i życzysz
sobie mieć obsługę jej rozszerzonych funkcji miksowania.
Do you want support for the MV Jazz16 (ProSonic etc.) ?
(Czy chcesz obsługę MV Jazz16 (ProSonic itd.)?)Odpowiedz "y" jeśli masz kartę dźwiękową MV Jazz16.
Do you have a Logitech SoundMan Games [Y/n/?]
(Czy masz kartę Logitech SoundMan Games[Y/n/?]) Odpowiedz "y" jeśli masz kartę dźwiękową Logitech SoundMan Games.
Po zadaniu powyższych pytań program konfiguracyjny pyta o szczegółowe
informacje dotyczące konfiguracji karty. Zazwyczaj chodzi o adresy I/O i
parametry IRQ i DMA. Przy niektórych kartach program pyta o pewne pliki,
które mają być użyte w trakcie instalacji karty. Są one używane przez karty
posiadające układ DSP lub mikroprocesor, który musi być zainicjalizowany
poprzez załadowanie pliku programu (mikrokodu) do pamięci karty. W
niektórych przypadkach plik mikrokodu dopisywany jest do pliku .h przez
program konfiguracyjny, a następnie włączany do sterownika w trakcie
kompilacji. Przeczytaj informacje dotyczące twojej karty w pliku
Readme.cards.
Na końcu zostaniesz zapytany:
The sound driver is now configured.
Save copy of this configuration to /etc/soundconf [Y/n/?]
(Sterownik dźwięku jest teraz skonfigurowany.
Zapisać kopię tej konfiguracji do pliku /etc/soundconf [Y/n/?])
Najczęściej powinieneś wpisać "y" abyś miał możliwość wykorzystanie tej
samej konfiguracji sterownika dźwięku następnym razem przy kompilacji jądra.
Jeśli uaktualniasz sterownik dźwięku do nowszej wersji, upewnij się, że
pliki /usr/include/sys/soundcard.h i
/usr/include/sys/ultrasound.h są dowiązaniami symbolicznymi do
odpowiadających im plików w katalogu /usr/include/linux, lub że po
prostu zawierają wiersze odpowiednio #include
<linux/soundcard.h> i #include
<linux/ultrasound.h>.
Jesteś teraz gotowy do kompilacji i instalacji nowego jądra.
4.3 Tworzenie Plików Urządzeń
Dla poprawnego działania urządzeń dźwiękowych, należy stworzyć dla nich
pliki urządzeń. Zazwyczaj tworzone są one automatycznie podczas instalacji
systemu Linux. Można przeprowadzić szybki test przy użyciu poniższych
poleceń. Jeśli wynik jest zgodny z poniższym (różne będą daty utworzenia
plików), prawie na pewno pliki urządzeń dźwiękowych są ustawione poprawnie.
% ls -l /dev/sdnstat
crw-rw-rw- 1 root root 14, 6 Apr 25 1995 /dev/sndstat
Pamiętaj, że samo posiadanie odpowiednich plików urządzeń niczego jeszcze
nie gwarantuje. Sterownik jądra musi być załadowany lub wkompilowany zanim
urządzenia zaczną pracować (więcej o tym później).
W sporadycznych przypadkach, jeśli przekonany jesteś, że pliki urządzeń są
niepoprawne, możesz je utworzyć ponownie przy użyciu krótkiego skryptu
powłoki zamieszczonego na końcu pliku Readme.linux w katalogu
/usr/src/linux/drivers/sound. Powinieneś powinieneś uruchomić ten
skrypt jako root. Dodatkowo, większość dystrybucji Linuxa zawiera skrypt
/dev/MAKEDEV, który można wykorzystać do tych celów.
Jeśli używasz sterownika dźwięku do głośnika PC, przeczytaj dokumentację
dołączoną do pakietu aby ustalić, czy konieczne jest stworzenie jakichś
plików urządzeń.
4.4 Przeładowywanie Linuxa i Testowanie Instalacji
Powinieneś być teraz gotów do przeładowania nowego jądra i sprawdzenia
sterowników dźwięku. Postąp zgodnie ze swoją zwykłą procedurą instalacji i
przeładowywania jądra (oczywiście trzymaj poprzednie jądro gdzieś pod ręką na
wypadek kłopotów).
Sound initialization started
<Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
<Sound Blaster 16> at 0x330 irq 5 dma 0
<Yamaha OPL3 FM> at 0x388
Sound initialization complete
Opis powinien pasować do typu twojej karty dźwiękowej i ustawień
przełączników (jeśli takowe są).
Pamiętaj, że powyższy komunikat nie jest wyświetlany, jeśli używasz
ładowalnego modułu jądra (chyba, że to włączysz, np. tak: "insmod sound
trace_init=1").
Jeśli sterownik dźwięku jest wkompilowany w jądro, powinny się pojawić
komunikaty "Sound initialization started" ("Inicjalizacja dźwięku
rozpoczęta") oraz "Sound initialization complete" ("Inicjalizacja dźwięku
zakończona"). W przeciwnym wypadku, jądro nie zawiera sterownika
dźwięku. Powinieneś wówczas sprawdzić, czy rzeczywiście zainstalowane
zostało nowe jądro, które skompilowałeś po włączeniu obsługi dźwięku.
Jeśli między napisami "Sound initialization started" i "Sound
initialization complete" nie pojawią się żadne wiersze, oznacza to, że nie
wykryte zostały żadne urządzenia dźwiękowe. Najprawdopodobniej nie masz
włączonego odpowiedniego sterownika, karta nie jest obsługiwana, podałeś
zły port I/O lub masz kartę PnP, która nie została skonfigurowana.
W trakcie ładowania sterownik może również wyświetlać komunikaty o błędach
i ostrzeżenia. Obserwuj je podczas ładowania sterownika po raz pierwszy po
kompilacji.
Następnie powinieneś sprawdzić plik urządzeń
/dev/sndstat. Odczytanie statusu tego pliku powinno udzielić ci
dodatkowych informacji o tym, czy sterownik dźwięku poprawnie rozpoczął
pracę. Przykładowy wynik powinien wyglądać mniej więce tak:
% 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
Powyższe polecenie może wywołać kilka komunikatów błędu. "No such file or
directory" ("Nie ma takiego pliku lub katalogu") oznacza, że musisz
stworzyć pliki urządzeń (patrz rozdział 4.3). "No such device" ("Nie ma
takiego urządzenia") oznacza, że sterownik dźwięku nie jest dołączony lub
załadowany do jądra. Cofnij się do rozdziału 4.2 aby to poprawić.
Jeśli wiersze w sekcji "Card config:" ("Konfiguracja karty:") /dev/sndstat
są wyświetlone w nawiasach (jak np. "(SoundBlaster at 0x220 irq 5 drq
1,5)"), oznacza to, że urządzenie to zostało skonfigurowane, ale nie wykryte.
Powinieneś teraz móc odtworzyć prosty plik dźwiękowy. Zdobądź przykładowy
plik dźwiękowy i wyślij go do urządzenia dźwiękowego, tzn.
% cat endoftheworld >/dev/dsp
% cat crash.au >/dev/audio
(Upewnij się, że nie pomijasz ">" w powyższym poleceniu).
Pamiętaj jednak, że używanie cat nie jest, ogólnie rzecz biorąc,
poprawną metodą odtwarzania plików dźwiękowych, to tylko szybki test. Na
pewno przyda ci się stosowny program odtwarzający dźwięk (opisane później),
który zrobi to lepiej.
Polecenie to zadziała tylko jeśli na liście urządzeń dźwiękowych w pliku
/dev/sndstat masz co najmniej jedno urządzenie. Jeśli część wymieniająca
urządzenia dźwiękowe jest pusta, powinieneś sprawdzić, dlaczego urządzenie
nie zostało wykryte.
Jeśli powyższe polecenie zwróci "I/O error" ("Błąd wejścia/wyjścia"),
powinieneś zerknąć na końcówkę komunikatów jądra przy użyciu polecenia
"dmesg". Prawdopodobne jest, że znajdziesz tam komunikat o błędzie "Sound:
DMA (output) timed out - IRQ/DRQ config error?" (Dźwięk: DMA (wyjście)
przekroczenie limitu czasowego - błąd konfiguracji IRQ/DRQ?"). Powyższy
komunikat oznacza, że sterownik nie uzyskał oczekiwanego przerwania od
karty dźwiękowej. W większości przypadków oznacza to, że IRQ lub kanał DMA
ustawione w sterowniku nie działają. Najlepszą metodą ich uruchomienia jest
spróbowanie wszystkich możliwych kanałów DMA i numerów IRQ obsługiwanych
przez urządzenie.
Inną możliwą przyczyną jest fakt, że urządzenie nie jest kompatybilne z
urządzeniem, dla którego skonfigurowany jest sterownik dźwięku. Najczęściej
tak jest np. gdy karta teoretycznie "kompatybilna z SoundBlaster (Pro/16)"
nie działa ze sterownikiem SoundBlaster. W tym przypadku powinieneś
spróbować dowiedzieć się, z jakim urządzeniem twoja karta jest kompatybilna
(np. wysyłając pytanie do grupy dyskusyjnej comp.os.linux.hardware).
Kilka próbnych plików dźwiękowych znaleźć można pod adresem
ftp://tsx-11.mit.edu/pub/linux/packages/sound/snd-data-0.1.tar.ZMożesz teraz sprawdzić nagrywanie dźwięku. Jeśli masz możliwość nagrywania,
przeprowadź szybki test używając poleceń typu:
# nagranie 4 sekund dźwięku z mikrofonu
EDT% dd bs=8k count=4 </dev/audio >sample.au
4+0 records in
4+0 records out
# odtworzenie dźwięku
% cat sample.au >/dev/audio
Oczywiście, aby to zadziałało, musisz mieć mikrofon podłączony do karty
dźwiękowej i powinieneś do niego coś powiedzieć. Możesz również potrzebować
program miksujący aby ustawić mikrofon jako urządzenie wejściowe i
dostosować poziom nagrywania.
Jeśli przejdziesz przez te testy, możesz być dosyć pewny, że sprzęt i
oprogramowanie konwersji dźwięku D/A i A/D działają poprawnie. Jeśli
napotkasz problemy, zerknij do następnego rozdziału tego dokumentu.
4.5 Usuwanie błędów
Jeśli nadal masz problemy mimo postąpienia zgodnie z instrukcjami w tym
dokumencie, oto kilka rzeczy, które powinieneś sprawdzić. Testy są
uszeregowane względem rosnącego stopnia złożoności. Jeśli test się nie
powiedzie, usuń problem zanim przejdziesz do następnego etapu.
Krok 1: Upewnij się, że rzeczywiście uruchomiłeś jądro, które skompilowałeś.
Możesz zerknąć na datę i czas utworzenia pliku jądra aby sprawdzić, czy
uruchomione jest to, w które wkompilowałeś obsługę dźwięku. Możesz to
zrobić za pomocą polecenia uname:
% uname -a
Linux fizzbin 2.0.0 #1 Tue Jun 4 16:57:55 EDT 1996 i386
lub wyświetlając zawartość pliku /proc/version
% cat /proc/version
Linux version 2.0.0 (root@fizzbin) (gcc version 2.7.0) #1 Tue Jun 4 16:57:55 EDT 1996
Jeśli data i czas nie zgadzają się z momentem, w którym kompilowałeś jądro,
uruchomione jest starsze jądro. Czy rzeczywiście przeładowałeś system?
Jeśli używasz LILO, czy przeinstalowałeś je (zazwyczaj poprzez uruchomienie
/etc/lilo/install)? Jeśli ładujesz system z dyskietki, czy
stworzyłeś nową dyskietkę startową i użyłeś jej do załadowania systemu?
Krok 2: Upewnij się, że sterowniki dźwięku wkompilowane są w jądro.
Najprostszą metodą jest sprawdzenie zawartości "/dev/sndstat", jak to
opisano wcześniej. Jeśli zawartość nie jest taka, jakiej się spodziewamy,
coś musiało pójść nie tak w trakcie konfigurowania lub kompilacji jądra.
Rozpocznij ponownie proces instalacji, począwszy od konfiguracji i
kompilacji jądra.
Krok 3: Czy jądro wykryło kartę dźwiękową w trakcie ładowania?
Upewnij się, że karta dźwiękowa została wykryta w trakcie przeładowywania
systemu. Powinieneś zobaczyć komunikat ładowania. Jeśli komunikaty
przewinęły się za szybko poza krawędź ekranu, możesz je zazwyczaj przywołać
przy użyciu polecenia dmesg:
% dmesg
lub
% tail /var/adm/messages
Jeśli karta nie została znaleziona, coś poszło niepomyślnie. Upewnij się,
że jest rzeczywiście zainstalowana. Jeśli karta pracuje pod DOS, możesz być
dosyć pewny, że sprzęt działa poprawnie, więc najprawdopopdobniej jest
jakiś problem z konfiguracją jądra. Albo wkompilowałeś zły typ karty lub
złe parametry, albo twoja karta nie jest kompatybilna z żadnym ze
sterowników dźwięku do jądra Linuxa.
Jest także możliwe, że twoja karta dźwiękowa jest jednym z tych
"kompatybilnych" modeli, które wymagają inicjalizacji przez sterownik pod
DOS. Spróbuj załadować DOS, a następnie sterownik dostarczony przez
producenta karty. Następnie załaduj Linuxa używająć miękkiego przeładowania
przez Control-Alt-Delete. Upewnij się, że ustawienia portu I/O karty,
DMA i IRQ są takie same, jak użyte pod DOS. Wskazówki na temat
konfigurowania danego typu karty znajdziesz w pliku Readme.cards.
Jeśli twoja karta dźwiękowa nie jest wymieniona w tym dokumencie, możliwe
jest, że sterowniki Linuxa jej nie obsługują. Aby się skonsultować w tej
sprawie, możesz sprawdzić kilka odnośników zamieszczonych na końcu tego dokumentu.
Krok 4: Czy możesz pobierać dane z urządzenia dsp?
Spróbuj odczytać coś z urządzenia /dev/audio przy użyciu programu
dd wymienionego wcześniej w tym dokumencie. Polecenie powinno
działać bezbłędnie.
Jeśli nie działa, są szanse, że problem polega na konflikcie IRQ lub DMA
lub niekompatybilności jakiegoś rodzaju sprzętu (urządzenie nie jest
obsługiwane przez Linuxa lub sterownik jest skonfigurowany dla innego
urządzenia)
Daleka ewentualność to wadliwy sprzęt. Jeśli to możliwe, przetestuj kartę pod
DOSem, aby się upewnić.
Jeśli Wszystko Inne Zawiedzie
Jeśli nadal masz problemy, oto kilka ostatecznych sugestii, co możesz
jeszcze sprawdzić:
dokładnie przeczytaj ponownie ten dokument HOWTO
przeczytaj dokumenty źródłowe, wymienione na końcu tego dokumentu, w
szczególności strony WWW Hannu Savolainena i stosowne pliki Readme
dołączone do kodów źródłowych jądra Linuxa
wyślij pytanie do jednej z grup dyskusyjnych comp.os.linux
lub innych (dobry wybór to comp.os.linux.hardware; z powodu dużego
ruchu w tych grupach, dobrze jest umieszczać słowo "sound" ("dźwięk") w
temacie wysyłanego artykułu, aby eksperci mogli łatwo to zauważyć)
użycie przeszukiwarki WWW/Usenetu z inteligentinie dobranymi kryteriami
przeszukiwania może szybko przynieść bardzo dobre wyniki. Jednym z takich
wyjść jest
http://www.altavista.com.
spróbuj użyć najświeższe jądro Linuxa (ale jedynie w ostateczności,
ostatnie jądra "rozwojowe" (development) mogą być niestabilne).
wyślij pocztę do autora sterownika dźwięku
wyślij pocztę do autora Sound HOWTO
odpal emacsa i wpisz Esc-x doctor :-)
5. Programy Obsługujące Dźwięk
Podaję tutaj przykładowe typy programów, które mogłyby ci się przydać,
jeśli masz kartę dźwiękową pod Linuxem. Aby znaleźć więcej bieżących
informacji, możesz sprawdzić Mapę Oprogramowania na Linuxa (Linux Software
Map), archiwa internetowe i/lub pliki na krążku z dystrybucją Linuxa.
Jako minimum, z pewnością będziesz potrzebować następujące programy
obsługujące dźwięk:
program do konwersji formatów plików dźwiękowych (np. Sox)
program miksujący (mikser) (np. aumix lub xmix)
odtwarzacz/rejestrator plików dźwiękowych (np. play lub wavplay)
odtwarzacz plików MOD (np. tracker)
odtwarzacz plików MIDI (np. playmidi)
W przypadku większości z powyższych programów, istnieją zarówno wersje
tekstowe, jak i wzbogacone o interfejs użytkownika. Istnieją również
bardziej ezoteryczne programy (np. synteza i rozpoznawanie mowy), które
mogłbyś zechcieć spróbować.
6. Odpowiedzi Na Często Zadawane Pytania
W tym rozdziale udzielono odpowiedzi na niektóre pytania spośród często
zadawanych w pocztowych grupach dyskusyjnych i grupach Usenetu.
Odpowiedzi na więcej pytań można również znaleźć na stronie WWW sterownika
dźwięku OSS.
6.1 Czym są różne pliki urządzeń dźwiękowych?
Są to najbardziej "typowe" nazwy plików urządzeń, niektóre dystrybucje
używają nieco innych nazw.
/dev/audiozazwyczaj dowiązanie do /dev/audio0
/dev/audio0urządzenie dźwiękowe, kompatybilne ze stacjami
roboczymi Sun (tylko częściowa implementacja, nie obsługuje interfejsu
ioctl Sun, tylko kodowanie u-law)
/dev/audio1drugie urządzenie dźwiękowe (jeśli jest obsługiwane
przez kartę dźwiękową lub jeśli masz więcej zainstaowanych kart niż jedną)
/dev/dspzazwyczaj dowiązanie do /dev/dsp0
/dev/dsp0pierwsze urządzenie cyfrowego próbkowania
/dev/dsp1drugie urządzenie cyfrowego próbkowania
/dev/mixerzazwyczaj dowiązanie do /dev/mixer0
/dev/mixer0pierwszy mikser dźwięku
/dev/mixer1drugi mikser dźwięku
/dev/musicinterfejs wysokiego poziomu sequencera
/dev/sequencerniskopoziomowy dostęp do MIDI, FM, i GUS
/dev/sequencer2zazwyczaj dowiązanie do /dev/music
/dev/midi00pierwszy surowy port MIDI
/dev/midi01drugi surowy port MIDI
/dev/midi02trzeci surowy port MIDI
/dev/midi03czwarty surowy port MIDI
/dev/sndstatwyświetla status sterownika dźwięku jeśli przeczytany
Sterownik głośnika PC udostępnia następujące urządzenia:
/dev/pcaudioodpowiednik /dev/audio
/dev/pcspodpowiednik /dev/dsp
/dev/pcmixerodpowiednik /dev/mixer
6.2 Jak mogę odtworzyć próbkę dźwiękową?
Pliki dźwiękowe stacji roboczych Sun (.au) można odtworzyć wysyłając je do
urządzenia /dev/audio. Surowe próbki (pliki raw) można wysłać do
/dev/dsp. Jednak zazwyczaj przyniesie to kiepskie efekty i lepiej
jest używać program taki jak play, ponieważ rozpoznaje on
większość typów plików i ustawia odpowiednią częstotliwość próbkowania i
inne parametry na karcie.
Programy takie jak wavplay lub vplay (w pakiecie snd-util) dadzą najlepsze
rezultaty z plikami WAV. Jednakże nie rozpoznają one plików WAV
skompresowanych metodą Microsoft ADPCM. Starsze wersje programu play (z
pakietu Lsox) nie działają również zbyt dobrze z 16-bitowymi plikami WAV.
Polecenie splay wchodzące w skład pakietu snd-util może być używane do
odtwarzania większości plików dźwiękowych jeśli odpowiednie parametry
podasz ręcznie w wierszu polecenia.
6.3 Jak mogę nagrać próbkę?
Odczyt /dev/audio lub /dev/dsp zwróci próbkowane dane,
które można przekierować do pliku. Program taki jak vrec ułatwia
kontrolowanie częstotliwości próbkowania, czas nagrania, itp. Może ci się
również przydać programowy mikser do wybierania stosownego urządzenia
wejściowego.
6.4 Czy mogę mieć więcej niż jedną kartę dźwiękową?
Przy obecnym sterowniku dźwięku jest możliwe posiadanie kilku kart
SoundBlaster, SoundBlaster/Pro, SoundBlaster16, MPU-401 lub MSS
jednocześnie w tym samym komputerze. Instalacja dwóch SoundBlasterów jest
możliwa, ale wymaga zdefiniowania makr SB2_BASE, SB2_IRQ, SB2_DMA oraz (w
niektórych przypadkach) SB2_DMA2 przez ręczną edycję pliku local.h. Możliwe
jest również posiadanie karty SoundBlaster jednocześnie z PAS16.
Następujące sterowniki nie zezwalają na posiadanie wielokrotnych urządzeń:
GUS (ograniczenie sterownika)
MAD16 (ograniczenie sprzętowe)
AudioTrix Pro (ograniczenie sprzętowe)
CS4232 (ograniczenie sprzętowe)
6.5 Błąd urządzeń dźwiękowych "No such file or directory"
(Błąd: Nie znaleziono pliku lub katalogu)
Musisz stworzyć pliki urządzeń dźwiękowych. Przeczytaj rozdział o tworzeniu
plików urządzeń. Jeśli masz pliki urządzeń, upewnij się, że mają poprawne
liczby główną i poboczną (niektóre starsze dystrybucje Linuxa na CD-ROM nie
tworzą odpowiednich plików urządzeń przy instalacji).
6.6 Błąd urządzeń dźwiękowych "No such device"
(Błąd: Nie znaleziono urządzenia)
Nie przeładowałeś jądra zawierającego sterownik dźwięku lub adres I/O nie
odpowiada twojemu sprzętowi. Sprawdź, czy uruchomione jest świeżo
skompilowane jądro i upewnij się, że ustawienia wpisane w trakcie
konfigurowania sterownika odpowiadają charakterystyce sprzętu.
6.7 Błąd urządzeń dźwiękowych "No space left on device"
(Błąd: Brak wolnej przestrzeni na urządzeniu)
Może się to zdarzyć jeśli próbowałeś nagrywać dane na /dev/audio lub
/dev/dsp bez stworzenia niezbędnego pliku urządzeń. Urządzenie dźwiękowe
jest teraz zwykłym plikim, który wypełnił twoją partycję. Powinieneś
uruchomić skrypt opisany w rozdziale Tworzenie Plików Urządzeń
niniejszego dokumentu.
Może się to również przytrafiać przy jądrach Linuxa 2.0 i późniejszych
jeśli nie ma wystarczającej ilości wolnej pamięci RAM w momencie, gdy
zaczynamy używać urządzenie. Sterownik dźwięku wymaga co najmniej dwóch
stron (8k) fizycznie ciągłej przestrzeni RAM dla każdego kanału DMA. Zdarza
się to czasami na komputerach z mniej niż 16M pamięci RAM, lub
działających przez bardzo długi czas. Możliwe jest zwolnienie nieco pamięci
RAM przez skompilowanie i uruchomienie następującego programu w języku C
przed ponowną próbą skorzystania z urządzenia.
main() {
int i;
char mem[500000];
for (i = 0; i < 500000; i++)
mem[i] = 0;
exit(0);
}
6.8 Błąd urządzeń dźwiękowych "Device busy"
(Błąd: Urządzenie zajęte)
Tylko jeden proces może korzystać z danego urządzenienia dźwiękowego w
danym momencie. Najprawdopodobniej jakiś inny proces korzysta z urządzenia,
z którym mamy problem. Jedną z metod sprawdzenia tego jest użycie polecenia
fuser:
% fuser -v /dev/dsp
/dev/dsp: USER PID ACCESS COMMAND
tranter 265 f.... tracker
W powyższym przykładzie, polecenie fuser wykazało, że proces 265 korzysta z
urządzenia. Usunięcie procesu lub poczekanie aż się skończy umożliwi ponwne
korzystanie z urządzenia.
6.9 Nadal pojawiają się błędy "urządzenie zajęte"!
Zdaniem Briana Gough, przy kartach SoundBlaster używających 1 kanału DMA
istnieje potencjalny konflikt ze sterownikiem napędów taśmowych QIC-02,
który również korzysta z DMA 1, co wywołuje błędy "device busy" (urządzenie
zajęte). Zgodnie z FTAPE-HOWTO sterownik QIC-02 nie jest niezbędny aby
używać FTAPE; wymagany jest jedynie sterownik QIC-117. Przekonfigurowanie
jądra aby używało sterownika QIC-117 zamiast QIC-02 umożliwi koegzystencję
FTAPE i sterownika dźwięku.
6.10 Niepełne odtwarzanie pliku z dźwiękiem cyfrowym
Symptom polega zawyczaj na tym, że próbka jest odgrywana przez mniej więcej
sekundę, a następnie zatrzymuje się lub wyświetlany jest komunikat "missing
IRQ" (brak IRQ) lub "DMA timeout" (przekroczenie limitu czasowego
DMA). Najprawdopodobniej masz niepoprawnie ustawione parametry IRQ i
DMA. Sprawdź, czy konfiguracja jądra odpowiada ustawieniom na
przełącznikach karty i że nie kłócą się one z jakąś inną kartą.
Innym objawem są próbki dźwiękowe, które się "zapętlają". Jest to zazwyczaj
spowodowane konfliktem IRQ.
6.11 W trakcie odtwarzania plików MOD pojawiają się przerwy
Odtwarzanie plików MOD wymaga dość znacznej pracy procesora. Być może masz
zbyt wiele działających procesów lub twój komputer jest zbyt wolny, aby
odtwarzać w czasie rzeczywistym. Masz następujące możliwości:
spróbuj odtwarzać je przy niższej częstotliwości próbkowania lub w
trybie monofonicznym
wyeliminuj inne procesy
kup szybszy komputer
kup silniejszą kartę dźwiękową (np. Gravis UltraSound)
Jeśli masz kartę Gravis UltraSound, powinieneś używać jednego z programów
do odtwarzania plików MOD, napisanych specjalnie dla karty GUS
(np. gmof).
6.12 Błędy przy kompilacji programów dźwiękowych
Wersja 1.0c i wcześniejsze sterownika dźwięku wykorzystywały inny i
niekompatybilny schemat ioctl(). Zdobądź nowsze kody źródłowe lub
nanieś niezbędne poprawki aby przystosować dany program do nowego
sterownika dźwięku. Więcej szczegółów znajdziesz w pliku Readme
sterownika dźwięku.
Upewnij się również, że używasz ostatnią wersję soundcard.h i
ultrasound.h przy kompilacji programów. Zerknij na wskazówki
instalacyjne na początku tego tekstu.
6.13 SEGV przy uruchamianiu programów dźwiękowych, które wcześniej działały
Jest to prawdopodobnie taki sam problem, jaki opisano w poprzednim pytaniu.
6.14 Jakie znane błędy lub ograniczenia ma sterownik dźwięku?
Zobacz pliki Readme i CHANGELOG dostarczone z kodem
źródłowym sterownika dźwięku do jądra.
6.15 Gdzie znajdę opis odwołań ioctl() sterownika dźwięku?
Są one częściowo opisane w Hacker's Guide to VoxWare (Podręcznik
Hackera do VoxWare), obecnie dostępny w formie dokumentu
draft. Ostatnia wersja to draft 2 i można ją znaleźć w
ftp://nic.funet.fi/pub/OS/Linux/ALPHA/sound. Pamiętaj, że ten
katalog jest "ukryty" i nie pojawia się w liście katalogów. Jeśli wejdziesz
do tego katalogu i użyjesz polecenia FTP "dir", pliki tam będą.
W trakcie pisania tego dokumentu nowa dokumentacja pojawiła się na stronie
WWW firmy 4Front Technologies.
Innym źródłem informacji jest Przewodnik po Multimediach w Linuxie, opisany
w rozdziale Źródła Informacji.
6.16 Jaki procesor jest konieczny do odtwarzania lub nagrywania bez przestojów?
Nie ma odpowiedzi na to pytanie, ponieważ zależy to od następujących
czynników:
czy używane jest próbkowanie PCM lub synteza FM
częstotliwość próbkowania i rozmiar próbki
który program jest używany do nagrywania bądź odtwarzania
urządzenie karty dźwiękowej
przepustowość dysku, szybkość zegara procesora, rozmiar pamięci
podręcznej, itd.
Ogólnie rzecz biorąc, każdy komputer 386 powinien z łatwością być w stanie
odtwarzać próbki lub muzykę powstałą przez syntezę FM na 8-bitowej karcie.
Jednakże odtwarzanie plików MOD wymaga dość dużej pracy procesora. Niektóre
eksperymentalne pomiary wykazały, że odtwarzanie przy częstotliwości 44kHz
wymaga ponad 40% prędkości 486/50 i komputer 386/25 będzie miał już kłopoty
z próbkami powyżej 22kHz (takie są na 8-bitowych kartach, takich jak
SoundBlaster). Karty takie jak Gravis UltraSound przeprowadzają więcej
operacji sprzętowo i odciążają procesor.
Powyższe stwierdzenia są prawdziwe przy zakłożeniu, że komputer nie
prowadzi żadnych działań obciążających procesor.
Dokonywanie konwersji plików dźwiękowych lub dodawanie efektów przy użyciu
programów narządziowych jak np. sox jest również szybsze jeśli masz
koprocesor matematyczny (lub procesor z wbudowanym FPU). Sterownik jądra
sam w sobie nie wykonuje jednak żadnych obliczeń zmiennoprzecinkowych.
6.17 Problemy z kartą PAS16 i kontrolerem SCSI Adaptec 1542 SCSI
(następujące wyjaśnienie udostępnił seeker@indirect.com)
Linux rozpoznaje 1542 jedynie pod adresem 330 (domyślnie) lub 334, a PAS
zezwala na emulację MPU-401 jedynie pod adresem 330. Nawet jeśli wyłączysz
MPU-401 programowo, coś nadal chce się kłócić z 1542, jeśli jest on pod
preferowanym adresem domyślnym. Przełączenie 1542 pod adres 334 wszystkich
uszczęśliwi.
Dodatkowo, zarówno 1542, jak i PAS-16 korzystają z 16-bitowego DMA, więc
jeśli próbkujesz przy 16 bitach i 44kHz w stereo i zapisujesz plik na dysku
SCSI podczepionym pod 1542, jesteś o krok od kłopotów. DMA zachodzą na
siebie i nie ma wystarczająco dużo czasu na odświeżenie RAM, więc dostajesz
okrutny komunikat ``PARITY ERROR - SYSTEM HALTED'' (BŁĄD PARZYSTOŚCI -
SYSTEM ZAWIESZONY), bez jakichkolwiek wskazówek, jak do tego doszło. Tym
gorzej, że kilku innych producentów napędów QIC-117 zaleca ustawianie czasu
włączania/wyłączania magistrali w taki sposób, że 1542 pozostaje włączony
nawet dłużej niż zwykle. Zdobądź program SCSISEL.EXE z BBSu firmy Adaptec
lub kilku innych miejsc w Internecie i zmniejszaj czas BUS ON lub zwiększaj
BUS OFF dopóki problem nie zniknie, następnie ustaw je jeszcze ździebko
dalej. SCISEL zmienia ustawienia EEPROM, więc jest to bardziej trwałe niż
poprawka w wierszu sterownika pod DOS w CONFIG.SYS i będzie działać jeśi
załadujesz bezpośrednio Linuxa (nie jest tak przy poprawce w
DOSie). Następny problem z głowy.
Ostatni problem - starsze układy Symphony drastycznie zmniejszały czas
cykli I/O aby przyspieszyć dostęp do magistrali. Żadna karta spośród
różnych, którymi się bawiłem nie miała żadnych problemów ze
zmniejszonym czasem, za wyjątkiem PAS-16. BBS firmy Media Vision udostępnia
SYMPFIX.EXE, który ma usuwać problem przez zmianę bitu diagnostycznego w
kontrolerze magistrali Symphony, ale nie jest to wystarczająca
gwarancja. Mogą być konieczne:
spowodowanie, aby sprzedawca płyty głównej wymienił starszą wersję
układu magistrali
wymiana płyty głównej, lub
kupno innego typu karty dźwiękowej
Firma Young Microsystems uzupełnia płyty główne, które importuje, za mniej
więcej $30 (US); inni producenci mogą też to robić jeśli jesteś w
stanie dociec, kto sprowadził lub wyprodukował płytę główną (życzę
szczęścia). Problem tkwi w układzie interfejsu magistrali ProAudio, o ile
mi wiadomo; nikt nie kupuje karty dźwiękowej za $120 żeby zaraz
wetknąć ją w 6MHz AT. Większość z nich działa znakomicie na komputerach
25-40MHz 386/486 i powinna być w stanie obsłużyć co najmniej 12MHz
magistralę, o ile układy są poprawnie zaprojektowane.
Pierwszy problem zależy od układów użytych na płycie głównej, prędkości
magistrali i innych ustawień BIOS, oraz fazy księżyca. Drugi problem zależy
od ustawienia opcji odświeżania (ukryte lub synchroniczne), prędkości DMA
1542 i (być może) prędkości I/O magistrali. Trzeci można wykryć dzwoniąc do
Media Vision i pytając, który rodzaj kości Symphony jest
niekompatybilny. Bądź jednak ostrzeżony - 3 z 4 techników, z którymi
rozmawiałem miało uszkodzenie mózgu. Byłbym bardzo ostrożny zanim bym
uwierzył w cokolwiek, co powiedzieli o czyimś sprzęcie, ponieważ nawet
swojego nie znają za dobrze.
6.18 Czy jest możliwe jednoczesne nagrywanie i odtwarzanie próbek?
Z powodu ograniczeń sprzętowych, nie jest to możliwe na większości kart
dźwiękowych. Niektóre nowsze karty to umożliwiają. Więcej informacji
znajdziesz w rozdziale o "trybie dwukierunkowym" w Podręczniku Hackera
do VoxWare.
6.19 Mój SB16 jest ustawiony na IRQ 2, ale configure nie pozwala ustawić tej wartości.
Na '286 i starszych komputerach, przerwanie IRQ 2 jest przeniesione do
drugiego kontrolera przerwań. Jest ono równoważne IRQ 9.
6.20 Czy SoundBlaster AWE32 lub SoundBlaster16 ASP są obsługiwane?
Dawniej, firma Creative Labs nie chciała udostępniać informacji dla
programistów o tych kartach. Zmienili jednak swą politykę i sterownik do
AWE wchodzi obecnie w skład sterowników w jądrach Linuxa 2.1.x.
6.21 Jeśli uruchomię Linuxa, po czym załaduje DOS, dostaję błędy i/lub programy dźwiękowe działają niepoprawnie.
Zdarza się to po miękkim przełądowaniu DOS. Czasami komunikat o błędzie
myląco odnosi się do rzekomego błędu w pliku CONFIG.SYS.
Większość obecnych kart dźwiękowych ma programowo konfigurowalne ustawienia
IRQ i DMA. Jeśli używasz inne ustawienia na Linuxie i MS-DOS/Windows,
możesz napotkać problemy. Niektóre karty dźwiękowe nie przyjmują nowych
ustawień bez całkowitego przeładowania (wyłączenie zasilania lub wciśnięcie
przycisku reset).
Szybkim rozwiązaniem tego problemu jest pełne przeładowanie
komputera przy użyciu przycisku reset lub przez wyłączenie i włączenie
zasilania, a nie przeładowanie miękkie (np. przez Ctrl-Alt-Del).
Poprawne rozwiązanie upewnienie się, że pod MS-DOS i Linuxem używane są te
same ustawienia (lub nie używaj DOS :-).
6.22 Problemy z uruchamianiem gry DOOM pod Linuxem
Użytkownikom linuxowej wersji gry DOOM firmy ID software mogą się te uwagi
przydać.
Aby uzyskać poprawny dźwięk wyjściowy, potrzebujesz sterownik dźwięku w
wersji 2.90 lub późniejszej; ma on obsługę "trybu DOOM" w czasie rzeczywistym.
Próbki dźwiękowe są 16-bitowe. Jeśli masz kartę 8-bitową, możesz nadal
usłyszeć dźwięk przy użyciu jednego z kilku programów dostępnych w
ftp://sunsite.unc/edu/pub/Linux/games/doom.
Jeśli gra DOOM działa wolno na twoim komputerze, wyłączenie dźwięku (przez
zmianę nazwy pliku sndserver) może ją przyspieszyć.
Domyślnie DOOM nie obsługuje dźwięku (jak w wersji na DOS). Program
musserver dodaje obsługę dźwięku do DOOMa pod Linuxem. Możesz go
znaleźć pod adresem
ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz.
(Ostatnie przełomowe wieści: zdaje się, że sterownik dźwięku do gry DOOM
nie chce działać z jądrami 2.0.x. Informuje o błędzie związanym z
/dev/sequencer.)
6.23 Jak mogę zredukować szumy zbierane przez moją kartę dźwiękową?
Użycie dobrej jakości ekranowanych kabli i próbowanie karty w różnych
slotach może pomóc w redukowaniu poziomu szumów. Jeśli karta dźwiękowa ma
regulator głośności, możesz spróbować jego różne ustawienia (maksymalne
jest prawdopodobnie najlepsze).
Użycie programowego miksera pozwala ci się upewnić, że niepożądane sygnały
wejściowe (np. mikrofon) są ustawione na zerowym poziomie.
Konstrukcja niektórych kart dźwiękowych nie zapewnia dobrego ekranowania i
uziemienia, przez co zbierają one sporo szumów.
Na koniec, w moim systemie odkryłem, że opcja jądra no-hlt w linii
polecenia zmniejsza poziom szumów. Przekazuje ona do jądra informację, aby
nie używana była instrukcja halt w trakcie przetwarzania pętli biernego
procesu. Możesz sprawdzić to ręcznie w trakcie ładowania systemu, lub
ustawić przez dodanie polecenia append="no-hlt" do pliku
konfiguracyjnego LILO.
6.24 Mogę odtwarzać dźwięki, ale nie mogę nagrywać.
Jeśli możesz odtwarzać dźwięk, ale nie nagrywać, spróbuj zrobić następujące
rzeczy:
użyj programowego miksera aby wybrać stosowne urządzenie (np. mikrofon)
przy użyciu miksera ustaw poziomy wejściowe na maksymalne
jeśli możesz, spróbuj przetestować nagrywanie na karcie pod MS-DOSem,
aby sprawdzić, czy nie ma problemu sprzętowego.
Czasami do nagrywania używany jest inny kanał DMA niż do odtwarzania. W tym
przyoadku najbardziej prawdopodobnym powodem będzie niepoprawne ustawienie
DMA dla nagrywania.
6.25 Moja "kompatybilna" karta dźwiękowa działa tylko wówczas, gdy zainicjalizuję ją pod MS-DOS.
W większości przypadków karty "kompatybilne z SoundBlaster" będą działać
lepiej pod Linuxem jeśli zostaną skonfigurowane ze sterownikiem innym niż
SoundBlaster. Większość kart jest teoretycznie kompatybilna
(tzn. "kompatybilna z 16-bitową SB Pro" lub "16-bitowa kompatybilna z SB"),
ale zwykle ów tryb SoundBlaster jest tylko sztuczką dodaną dla
kompatybilności gier pod DOSem. Większość kart ma 16-bitowy macierzysty
tryb, który jest prawdopodobnie obsługiwany przez ostatnie wersje jądra
Linuxa (2.0.1 i późniejsze).
Tylko przy niektórych (zazwyczaj raczej starych) kartach niezbędna jest
próba uruchomienia ich w trybie SoundBlaster. Jedyne nowsze karty, które są
wyjątkami od tej reguły są karty oparte na Mwave.
6.26 Moja 16-bitowa karta "kompatybilna" z SoundBlaster działa pod Linuxem jedynie w trybie 8-bitowym.
16-bitowe karty opisane jako kompatybilne z SoundBlaster są rzeczywiście
kompatybilne jedynie z 8-bitową kartą SoundBlaster Pro. Mają zazwyczaj
16-bitowy tryb, który nie jest kompatybliny z SoundBlaster 16 oraz
sterownikiem dźwięku w Linuxie.
Może ci się udać uruchomić kartę w trybie 16-bitowym przy użyciu sterownika
MAD16 lub MSS/WSS.
6.27 Gdzie mogę znaleźć programy dźwiękowe pod Linuxa?
Oto kilka dobrych archiwów, które możesz przekopać w poszukiwaniu programów
obsługujących dźwięk pod Linxem:
ftp://sunsite.unc.edu:/pub/Linux/kernel/sound/
ftp://sunsite.unc.edu:/pub/Linux/apps/sound/
ftp://tsx-11.mit.edu:/pub/linux/packages/sound/
ftp://nic.funet.fi:/pub/OS/Linux/util/sound/
ftp://nic.funet.fi:/pub/OS/Linux/xtra/snd-kit/
ftp://nic.funet.fi:/pub/OS/Linux/ALPHA/sound/
6.28 Czy sterownik dźwięku może być skompilowany jako ładowalny moduł jądra?
Przy ostatnich jądrach sterownik dźwięku może być skompilowany do postaci
modułu.
Szczegóły znajdziesz w plikach
/usr/src/linux/drivers/sound/Readme.modules i
/usr/src/linux/Documentation/modules.txt (lub
/usr/src/linux/README).
6.29 Czy mogę użyć kartę dźwiękową aby zastąpić systemowy sygnał na konsoli?
Spróbuj program oplbeep, znajdujący się pod adresem
ftp://sunsite.unc.edu/pub/Linux/apps/sound/oplbeep-alpha.tar.gzInny wariant to program beep, znajdujący się tu:
ftp://sunsite.unc.edu/pub/Linux/kernel/patches/misc/modreq_beep.tgzPakiet modutils zawiera przykładowy program i poprawkę do jądra, które
pozwalają uruchamiać dowolny program zewnętrzny generujący dźwięki gdy jest
to wymagane przez jądro.
Dodatkowo, przy niektórych kartach dźwiękowych możesz podłączyć wyjście
głośnika PC do karty - wówczas wszystkie dźwięki wydobywają się z głośników
podłączonych do karty.
6.30 Co to jest VoxWare?
Sterowniki dźwięku do jądra obsługują kilka różnych systemów kompatybilnych
z Unixem, opartych na architekturze Intel. Można je zdobyć jako osobny
pakiet, oddzielony od jądra. Do lutego 1996 autor nazywał oprogramowanie
"VoxWare". Niestety, nazwa ta została zarejestrowana przez
VoxWare Incorporated i nie można jej
używać. Nowa nazwa sterownika to OSS/Free.
Open Sound System (OSS - Otwarty System Dźwiękowy) jest komercyjnie
dostępnym steronikiem dźwięku dla różnych systemów Unix, sprzedawanym przez
4Front Technologies. Darmowa wersja, znana jako OSS/Free będzie nadal
udostępniana za darmo na systemy Linux.
Więcej informacji znajdziesz na stronie WWW firmy 4Front Technologies -
http://www.4front-tech.com/.
Inne nazwy, na jakie mogłeś się natknąć, które były używane wcześniej w
odniesieniu do tego samego sterownika to TASD (Tymczasowo Anonimowy
Sterownik Dźwięku) oraz USS (Unix Sound System - System Dźwięku dla Unixa).
6.31 Czy karty Plug and Play są obsługiwane?
Pełna obsługa Plug and Play powinna pojawić się w Linuxie 2.1. Tymczasem,
istnieje kilka rozwiązań, pozwalających uruchomić karty Plug and Play.
Jeśli masz nowszy system Pentium z BIOSem Plug and Play, powinien się on
automatycznie zająć konfigurowaniem kart. Upewnij się, że ustawiłeś
sterownik dźwięku w Linuxie na takie same parametry adresu I/O, IRQ i
kanału DMA, jakie użyte zostały przez BIOS.
Istnieje pakiet programów narzędziowych do Plug and Play dla Linuxa, który
można wykorzystać do ustawienia karty. Można go znaleźć na stronach WWW Red
Hat :
http://www.redhat.com/ (może być także włączony do twojej
dystrybucji Linuxa).
Jeśli używasz kartę pod Windows95, możesz użyć menedżera urządzeń do
ustawienia karty, następnie miękko przeładować Linuxa przy użyciu programu
LOADLIN. Upewnij się, że Windows95 i Linux używają tych samych ustawień
karty.
Jeśli używasz kartę pod DOSem, do konfigurowania karty pod DOS możesz użyć
program narzędziowy icu, dostarczany z kartami SoundBlaster16
PnP. Następnie miękkie przeładowanie Linuxa za pomocą programu
LOADLIN. Ponownie, upewnij się, że Linux i DOS używają tych samych ustawień
karty.
Komercyjny sterownik dźwięku OSS obsługuje kartę dźwiękową SoundBlaster16
PnP. Możesz nabyć ten sterownik od 4Front Technologies.
6.32 Sox/Play/Vplay wypisuje "invalid block size 1024" (błędny rozmiar bloku 1024)
Zmiana w sterowniku dźwięku w wersji 1.3.67 zepsuła kilka programów
odtwarzających dźwięk, które (niepoprawnie) sprawdzały, czy wynik odwołania
ioctl SNDCTL_DSP_GETBLKSIZE jest większy niż 4096. Programy narzędziowe
włączone do ostatniego pakietu snd-util-3.x.tar.gz (pod adresem
ftp://ftp.4front-tech.com/ossfree.) obecnie obsługują to poprawnie.
Ostatnie wersje sterownika dźwięku zostały również poprawione celem
uniknięcia alokacji fragmentów krótszych niż 4096 bajtów, co rozwiązuje
problem ze starszymi programami.
6.33 Dlaczego sterownik dźwięku ma własny program konfiguracyjny?
Sterownik dźwięku obsługuje wiele różnych parametrów
konfiguracyjnych. Program configure z pakietu sterownika dźwięku
sprawdza wiele zależności między parametrami. Narzędzia używane do
konfigurowania jądra nie umożliwiają takiego stopnia funkcjonalności.
Powiedziawszy powyższe, ostatnie jądra opcjonalnie pozwalają na użycie
standardowych narzędzi konfiguracji jądra do ustawiania sterownika dźwięku
(patrz wcześniejszy rozdział - "Konfigurowanie Jądra").
6.34 Ustawienia miksera są zerowane za każdym razem gdy załaduję moduł sterownika dźwięku
Możesz skompilować sterownik dźwięku jako moduł ładowalny i używać
kerneld do jego automatycznego ładowania i usuwania. Może to wywołać
jeden problem - za każdym przeładowaniem modułu ustawienia miksera
powracają do wartości domyślnych. Przy niektórych kartach może to być zbyt
głośno (np. SoundBlaster16), lub za cicho. Markus Gutschke
(gutschk@uni-muenster.de) znalazł następujące rozwiązanie. Wpisz
poniższy wiersz do pliku /etc/conf.modules:
options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75
Spowoduje to, że twój program miksujący (w tym przypadku setmixer)
zostanie uruchomiony niezwłocznie po załadowaniu sterownika
dźwięku. Parametr dma_buffsize jest jedynie sztuczną wartością,
niezbędną ze względu na wymagany jakikolwiek parametr linii
polecenia. Zmień polecenie zgodnie z potrzebami, aby dopasować ustawienia
głośności.
Jeśli wkompilowałeś sterownik dźwięku do jądra i chcesz ustawiać poziomy
głośności w trakcie ładowania jądra, możesz wywołać program miksujący w
jednym z systemowych plików startowych, jak np. /etc/rc.d/rc.local.
6.35 Jedynie użytkownik root może nagrywać dźwięk
Domyślnie, skrypt w Readme.linux, który tworzy pliki urządzeń dźwiękowych
ustawia prawa dostępu tak, że urządzenia odczytywane mogą być jedynie przez
użytkownika root. Jest tak, aby uniknąć możliwej dziury w systemie. W
środowisku sieciowym, zewnętrzni użytkownicy mogliby potajemnie podłączyć
się zdalnie do systemu z kartą dźwiękową i mikrofonem i podsłuchiwać. Jeśli
cię to nie martwi, możesz zmienić prawa dostępu ustanowione przez skrypt.
Przy domyślnych ustawieniach, użytkownicy nadal mogą odtwarzać pliki
dźwiękowe. Nie jest to ryzykowne z punktu widzenia bezpieczeństwa, ale może
być potencjalnie denerwujące.
7. Źródła Informacji
Jeśli masz kartę dźwiękową, która zawiera interfejs CD-ROM lub SCSI,
dodatkowe informacje, które mogłyby ci się przydać są w dokumentach Linux
SCSI HOWTO oraz Linux
CD-ROM HOWTO
Sound Playing HOWTO opisuje sposoby użycia różnych typów plików
dźwiękowych i muzycznych pod Linuxem.
Istnieje stary dokument, zwany Podręcznik Hackera do WoxWare, dostępny
pod adresem
ftp://nic.funet.fi/pub/OS/Linux/ALPHA/sound/. Większość zawartej tam
informacji została zastąpiona dokumentami w
http://www.4front-tech.com/pguide, ale rozdział o /dev/sequencer
może nadal być przydatny.
Następujące dokumenty FAQ są regularnie wysyłane do grupy dyskusyjnej
Usenetu
news.announce, a także
archiwizowane pod adresem
ftp://rtfm.mit.edu/pub/usenet/news.answers:
PCsoundcards/generic-faq (FAQ na temat zwykłych kart dźwiękowych na PC)
PCsoundcards/soundcard-faq (FAQ comp.sys.ibm.pc.soundcard)
PCsoundcards/gravis-ultrasound/faq (FAQ o Gravis UltraSound)
audio-fmts/part1 (Opisy formatów plików dźwiękowych)
audio-fmts/part2 (Opisy formatów plików dźwiękowych)
Dokumenty FAQ wymieniają również kilka list pocztowych i archiwów
dotyczących konkretnych produktów. Następujące grupy dyskusyjne Usenetu
omawiają kwestie dźwięku i/lub pokrewne:
alt.binaries.sounds.* (różne grupy do wysyłania plików dźwiękowych)
alt.binaries.multimedia (do wysyłania plików multimedialnych)
alt.sb.programmer
(programowanie kart Soundblaster)
comp.multimedia
(o multimediach)
comp.music (teoria i badania muzyki
komputerowej)
comp.sys.ibm.pc.soundcard.* (różne grupy dotyczące kart dźwiękowych
na IBM PC)
Strony WWW poświęcone multimediom znaleźć można tutaj:
http://viswiz.gmd.de/MultimediaInfo/. Creative Labs ma stronę WWW
pod adresem
http://www.creaf.com/. MediaTrix ma stronę WWW
pod adresem
http://www.mediatrix.com/.
Linuxowe pocztowe listy dyskusyjne mają sporo "kanałów" poświęconych różnym
tematom, w tym dźwiękowi. Aby dowiedzieć się, jak się do nich przyłączyć,
wyślij pocztę ze słowem "help" jako treścią listu na adres
majordomo@vger.rutgers.edu. Owe listy pocztowe nie są zalecane
jeśli chodzi o pytania na temat konfiguracji kart dźwiękowych,
itp. Istnieją z myślą o dyskusjach dotyczących programowania.
Jak wspomniano wcześniej kilka razy, do sterownik dźwięku do jądra
dołączona jest pewna ilość plików Readme, zawierających użyteczne
informacje o sterowniku kart dźwiękowych. Można je zazwyczaj znaleźć w
katalogu
/usr/src/linux/drivers/sound.
Z autorem sterownika dźwięku do jądra, Hannu Savolainenem, można się
skontaktować pod adresem
hannu@voxware.pp.fi. Ma on również stronę WWW :
http://personal.eunet.fi/pp/voxware. Te strony WWW są najlepszym
źródłem informacji, jeśli chodzi o bieżący status obsługiwanych kart
dźwiękowych, znane problemy i poprawki błędów.
Informacje o OSS, komercyjnym sterowniku dźwięku do Linuxa i innych
systemów kompatybilnych z Unixem można znaleźć na stronach WWW
4Front Technologies.
Mapa Oprogramowania Linuxa (Linux Software Map) jest nieocenionym
narzędziem wyszukiwania oprogramowania na Linuxa. Przeszukiwanie LSM po
słowach kluczowych, jak np. sound (dźwięk) jest dobrą metodą
wynajdowania programów mających coś wspólnego z urządzeniami dźwiękowymi.
LSM można znaleźć w rozmaitych anonimowych archiwach FTP, chociażby
ftp://ftp.icm.edu.pl/pub/Linux/sunsite/docs/LSM.gz.
W ramach Projektu Dokumentacji Linuxa powstało kilka książek o Linuxie, w
tym Linux Installation and Getting Started (Instalacja Linuxa i
Pierwsze Kroki). Są one za darmo dostępne poprzez anonimowy FTP z głównych
archiwów Linuxa, a także do nabycia w formie drukowanej.
Na sam koniec, bezwstydny wtręt: Jeśli chcesz się dowiedzieć znacznie
więcej o multimediach pod Linuxem (szczególnie aplikacje i programowanie
CD-ROM i dźwięku), sprawdź moją książkę Linux Multimedia Guide, ISBN
1-56592-219-0, wydaną przez oficynę O'Reilly and Associates. O szczegółach
dowiesz się pod numerem 800-998-9938 w Ameryce Północnej, lub na stronach
WWW
http://www.ora.com/catalog/multilinux/noframes.html.
8. Od tłumacza
Prawa autorskie wersji polskiej tego dokumentu (c) 1997 są własnością Pawła
Olszewskiego (alder@amg.net.pl). Dystrybucja wersji polskiej objęta jest klauzulą
analogiczną do zawartej w oryginale.
Jeśli znalazłeś w niniejszym dokumencie jakieś paskudne literówki, błędy
ortograficzne, lub inne tego typu numery, ślij informację w pierwszej kolejności
do tłumacza, w tej sytuacji autor oryginału jest najprawdopodobniej niewinny.
W kwestii merytorycznej, dokument ten nie różni się specjalnie od oryginału
(nie dokonałem żadnych zmian ani poprawek), pomijając odnośnik do pliku
LSM.gz, który zmieniłem na lokalne archiwum SunSITE. Dodałem również
odnośnik do archiwum polskich wersji dokumentów HOWTO.
Najnowsza wersja tego dokumentu znajduje się wraz z innymi przetłumaczonymi na
polski dokumentami serii Linux-HOWTO, w archiwum dokumentów JTZ (Jak To Zrobić):
ftp://ftp.jtz.org.pl/HOWTO/. Najświeższa
wersja angielska znajduje się tutaj:
http://sunsite.unc.edu/mdw/HOWTO/Sound-HOWTO.html.
Na zdrowie,
Pawko Olszewski, alder@amg.net.pl
Wyszukiwarka
Podobne podstrony:
sound howto pl 8Sound HOWTO plsound howto pl 6sound howto pl 3sound howto pl 4sound howto pl 7sound howto plsound howto pl 5sound howto pl 1sound howto pl 2sound playing howto plsound playing howto pl 4Sound Playing HOWTO plsound playing howto pl 5Sound Playing HOWTO pl (2)sound playing howto pl 2sound playing howto pl 3sound playing howto pl 1bootdisk howto pl 8więcej podobnych podstron