Linux Sound-HOWTO, czyli Dźwięk w Linuxie - Jak To Zrobić?: Instalacja
Następna
strona Poprzednia
strona Spis
treści
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.Z
Moż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 :-)
Następna strona
Poprzednia strona
Spis treści
Wyszukiwarka
Podobne podstrony:
Linux Sound HOWTO, czyli Dźwięk w Linuxie Jak To Zrobić PrLinux Sound HOWTO, czyli Dźwięk w Linuxie Jak To Zrobić OdSkanowanie i drukowanie Jak to zrobićKomputerowy skĹ‚ad tekstĂłw Jak to zrobićMistrzowskie stosowanie czcionek Jak to zrobićjak to zrobic (2)Mastercam X4 Jak to zrobićJak to zrobićjak to zrobić opis sytuacjiJak to zrobić03 ROZDZIA 3 Krtka historia marki ATLANTIC, czyli jak to si wszystko zaczoLinux IPCHAINS HOWTO Appendix Differences between ipchains and ipfwadmsound howto pl 8więcej podobnych podstron