Sound Blaster AWE 32/64 HOWTO<NEWLINE> <AUTHOR>Autor: Marcus Brinkman <HTMLURL URL="mailto:Marcus.Brinkmann@ruhr-uni-bochum.de" NAME="Marcus.Brinkmann@ruhr-uni-bochum.de"><NEWLINE> v1.2, 11 Stycznia 1998<NEWLINE> <BF>Wersja polska: Leszek Urbański <HTMLURL URL="mailto:tygrys@fidonet.org.pl" NAME="tygrys@gdansk.sprint.pl"><NEWLINE> </BF> v1.0, 23 Lutego 1998 <abstract> Dokument ten został napisany w standardzie ISO-8859-2. Oryginał tego dokumentu znajduje się pod adresem <HTMLURL URL="http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/soundblaster.html" NAME="http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/soundblaster.html"> </ABSTRACT> Ten dokument opisuje jak zainstalować i skonfigurować kartę Sound Blaster 32 (SB AWE 32, SB AWE 64) firmy Creative Labs w systemie Linux używając sterownika "AWE Sound Driver Extention" napisanego przez Takashi-ego Iwai. Opisuje także specjalne narzędzia i odgrywarki dla SB AWE. Przyjętym systemem będzie Debian GNU Linux, ale opisany sposób powinien działać w każdej innej dystrybucji. <P> <SECT>Wprowadzenie <P> To jest JTZ o Sound Blaster-rze AWE. Podaje ono dokładne informacje o maksymalnym wykorzystaniu Twojego Sound Blaster'a 32 (lub lepszego), włączając w to syntezę Wave Table. Ten dokument opisuje wszystkie karty SB od SB 32. <P> Karty Sound Blaster są dobrze znane w środowisku DOS i Windows, a wiele osób chce też używać swoje karty pod Linux'em. Niestety, Creative Labs dostarcza tylko sterowniki pod Windows i DOS'a, więc zainstalowanie karty SB pod Linuxem nie jest proste. [oj, chyba jest :-) - przyp. tłum.] Ten dokument próbuje opisać jak można używać właściwości kart SB AWE w środowisku Linuxa. <SECT1>Podziękowania <P> Dokument zawiera informacje, które wziąłem z FAQ Sterownika AWE i FAQ ISA PnP. Zobacz sekcję <HTMLURL URL="Soundblaster-AWE-mini-HOWTO.pl-6.html#ss6.2" NAME="Źródła"> dla poznania autorów i miejsca tych dokumentów. Dzięki nim, obsługa dźwięku SB AWE jest możliwa. Mnóstwo ważnej pracy było zrobione przez <HTMLURL URL="http://www.4front-tech.com/usslite" NAME="Hannu Savolainen'a">, który napisał sterownik dostarczany z jądrem Linuxa. Dziękuję! <P> Chcę podziękować <HTMLURL URL="mailto:n.bern@mail.protos.it" NAME="Nicoli Bernardelli"> za testowanie AWE64. Bez niego wiele błędów pozostałoby niewykrytych. <P> Dziękuję za <HTMLURL URL="ftp://sunsite.unc.edu/pub/Linux/utils/text/sgml-tools-0.99.0.tar.gz" NAME="SGML Tools">, to HOWTO jest dostępne w kilku formatach, wszystkie wygenerowane z jednego pliku źródłowego. <SECT1>Poprawki w stosunku do poprzednich wersji <P> <BF>Wersja 1.0</BF><P>Pierwsza wersja <P> <BF>Wersja 1.1</BF><P>Poprawiona pisownia (dzięki Curt!), dodana potrzebna wersja <BF>isapnp</BF>, teraz dostępna na sunsite i mnóstwie kopii. <P><BF>Wersja 1.2</BF><P>Wersja francuska jest już dostępna, małe poprawki, dużo poprawionej pisowni (dzięki programowi ispell) <P> <SECT1>Nowe wersje tego dokumentu <P> Najświeższe wersje są na mojej stronie domowej - <HTMLURL URL="http://homepage.ruhr.uni-bochum.de/Marcus.Brinkmann/soundblaster.html" NAME="Sound Blaster AWE HOWTO"><P>Nowe wersje tego dokumentu będą przesyłane na wiele anonimowych serwerów FTP składujących tego typu informacje, jak np. <HTMLURL URL="ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini" NAME="ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini"><P> Hypertekstowe wersje tego i innych Linuxowych HOWTO są dostępne na wielu serwerach WWW, np. <HTMLURL URL="http://sunsite.unc.edu/LDP/" NAME="http://sunsite.unc.edu/LDP">. Większość dystrybucji Linuxa na CD-ROM'ach zawiera dokumenty HOWTO, często w katalogu <BF>/usr/doc</BF>.<P>Dzięki Arnaudowi Launay <HTMLURL URL="mailto:zoro@lsol.tm.fr" NAME="zoro@lsol.tm.fr"> jest dostępna francuska wersja tego dokumentu! Najświeższa wersja jest dostępna przez <HTMLURL URL="http://www.freenix.fr/linux/HOWTO" NAME="HTTP"> albo <HTMLURL URL="ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO" NAME="anonimowe FTP">.<P>Jeżeli przetłumaczysz ten dokument na inny język, daj mi znać, a dołączę odnośnik do niego tutaj. <SECT1>Kontakt z autorem <P> Polegam na tobie, Czytelniku, w zrobieniu tego HOWTO użytecznym. Jeżeli masz jakiekolwiek sugestie, poprawki, albo komentarze, proszę, żebyś przysłał je do mnie, <HTMLURL URL="mailto:Marcus.Brinkmann@ruhr-uni-bochum.de" NAME="Marcus.Brinkmann@ruhr-uni-bochum.de">, a ja postaram się wziąć je pod uwagę w następnej edycji.<P>Byłbym szczególnie wdzięczny za informacje o procedurze startowej (skrtypty inicjalizujące itp.) innych popularnych dystrybucji Linuxa, np. RedHat lub SuSE Linux.<P>Jeżeli opublikujesz ten dokument na CD-ROM'ie lub na papierze, kopia była by mile widziana. (Przez e-mail możesz zapytać się o mój adres pocztowy) Pomyśl także o złożeniu dotacji dla LDP (Linux Documentation Project), żeby wspomóc tworzenie darmowej dokumentacji Linux'a. Skontaktuj się z koordynatorem Linux HOWTO, Gregiem Hankins'em <HTMLURL URL="mailto:gregh@sunsite.unc.edu" NAME="gregh@sunsite.unc.edu">, żeby zdobyć więcej informacjii. <P> <SECT1>Zasady dystrybucji <P>Prawa autorskie - (C)1997 Marcus Brinkmann. <P>To HOWTO jest dokumentacją darmową; możesz ją udostępniać i/lub modyfikować na zasadach Licencji Publicznej GNU (GNU General Public License) publikowanej przez FSF (Free Software Foundation); albo wersji 2, albo jakiejkolwiek późniejszej wersji.<P>Ten dokument jest udostępniany z nadzieją, że będzie on użyteczny, ale <BF>bez żadnej</BF> gwarancji; nawet bez gwarancji <BF>dostępności</BF> ani <BF>przydatności w określonym przypadku</BF>. Przestudiuj Licencję Publiczną GNU, dla uzyskania dokładnych informacji.<P>Możesz uzyskać kopię Licencji pisząc do FSF - <HTMLURL URL="http://www.fsf.org" NAME="Free Software Foundation">, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. <P> <SECT>Zanim zaczniesz <P> <SECT1>Wprowadzenie <P> Ten dokument próbuje pomóc Ci w instalacji i użytkowaniu karty Sound Blaster AWE 32 lub Sound Blaster AWE 64 firmy Creative Labs w Twoim Linuxie. Odnośnym systemem jest <HTMLURL URL="http://www.debian.org" NAME="Debian GNU Linux"> na platformie Intel i586, ale metoda tu przedstawiona powinna działać z każdą inną dystrybucją Linuxa, jak i na każdej innej platformie sprzętowej obsługiwanej prze Linuxowy sterownik dźwięku (różnice będą opisane).<P>Pamiętaj, żeby dokładnie przeczytać "Linux Sound HOWTO" (zobacz sekcję <HTMLURL URL="Soundblaster-HOWTO.pl-6.html#ss6.1" NAME="Dodatkowe informacje">. Traktuję swój dokument jako dodatek do Sound HOWTO, często możesz tam znaleźć informacje o rzeczach, których tu nie opisałem. <P> <SECT1>Kilka uwag o kartach SB AWE <P> SB AWE 32 zawiera urządzenie dźwięku RAW, standardową syntezę OPL-2/OPL-3, port MIDI MPU-401 i syntezę Wave Table EMU 8000 o 32-głosowej polifonii (przestudiuj Sound HOWTO dla wyjaśnienia tych terminów).<P>SB AWE 64 ma wszystkie możliwości AWE 32 i dodatkowo syntezę Wave Guide, z której Creative Labs jest szczególnie dumny. Problemem dla użytkowników Linuxa jest fakt, że dodatkowe 32 głosy są generowane programowo i wysyłane przez urządzenia dźwięku RAW. Ponieważ Creative Labs nie widzi rynku dla sterowników pod Linuxa, sterownik syntezy Wave Guide jest dostępny tylko pod Windows 3.1 i Windows 95.<P>Znaczy to, że z punktu widzenia użytkownika Linuxa SB AWE 32 i AWE 64 są prawie identyczne. [AWE 64 ma troszeczkę lepsze przetworniki A/C i C/A -- przyp. tłum.] Od tej chwili będę się odnosił do SB AWE wogóle i wsponę o różnicach, jeżeli wystąpią. <P> <SECT1>Kilka uwag o kartach Plug and Play <P> Większość nowoczesnych kart na platformę Intela są kartami ISA PnP, co jest skrótem dla ,,Plug and Play''. Znaczy to, że karta musi być skonfigurowana przez system operacyjny, a to musi być wykonane przez skrypt inicjaliacyjny (initialization routine) w czasie ładowania systemu. Są co najmniej trzy możliwe sposoby na wykonanie tego, jeżeli:<P> <ITEMIZE> <ITEM>Masz bios PnP, co oznacza, że może on "widzieć" karty PnP i może je skonfigurować. Jeżeli myślisz, że możesz używać wszystkich możliwości Twojego SB AWE PnP, jesteś w błędzie. Nawet jeżeli bios twierdzi, że obsługuje karty PnP, tylko inicjalizuje zbiór portów i adresów używanych przez Twoją kartę. Pewnie będziesz mógł odgrywać dźwięki RAW WAVE, ale nie będziesz mógł odgrywać np. muzyki MIDI. Z tego powodu bios PnP nie jest wyjściem.<P> <ITEM>Masz system operacyjny obsługujący karty PnP. Obecne stabilne jądro Linuxa (2.0.x) nie jest takim systemem, więc będziemy musieli poczekać na przyszłe wersje jądra, obsługujące urządzenia PnP.<P> <ITEM>Masz specjalny program, uruchamiany w czasie ładowania systemu, który inicjalizuje Twoje karty PnP. Tego sposobu użyjemy. </ITEMIZE> <P> Najczęściej używanym oprogramowaniem dla inicjalizacji kart PnP pod Linuxem jest ,,<BF>isapnptools</BF>'' (zobacz sekcję <HTMLURL URL="Soundblaster-AWE-mini-HOWTO.pl-6.html#ss6.2" NAME="Źródła"> i sekcję <HTMLURL URL="Soundblaster-AWE-mini-HOWTO.pl-3.html#ss3.2" NAME="Zaczynamy">). Opisują one właściwie jak skonfigurować wszystkie karty ISA PnP, nie tylko kartę dzwiękową. <P> <SECT1>Kilka uwag o ładowalnych modułach jądra <P> Niektóre sterowniki urządzeń mogą być budowane jako moduły zamiast wkompilowywania ich w jądro. Możesz znaleźć więcej informacji o modułach w ,,Kernel-HOWTO'' i ,,Module HOWTO'' (zobacz sekcję <HTMLURL URL="Soundblaster-AWE-mini-HOWTO.pl-6#ss6.1" NAME="Dodatkowe informacje">).<P>Jeżeli posiadasz kartę PnP, <BF>musisz</BF> zainstalować obsługę dźwięku jako ładowalny moduł jądra. Znaczy to, że nie możesz wbudować sterownika dźwięku w jądro, będziesz musiał zbudować go jako moduł, który może być władowany w jądro w czasie rzeczywistym. Jest to potrzebne dlatego, że jądro będzie zainstalowane przed skonfigurowaniem karty ISA PnP, a sterownik dźwięku musi być załadowany po skonfigurowaniu karty ISA PnP. <P> Moduł dźwięku jądra może być załadowany ręcznie - <BF>insmod sound</BF> albo <BF>modprobe -a sound</BF> albo w poprawnej linii skryptu ładującego twojego Linuxa (w Debianie jest wymagane aby dodać linię zawierającą <BF>sound</BF> do <BF>/etc/modules</BF>). Inne podejście, to odpalenie <BF>kerneld</BF>, demona instalującego i deinstalującego moduły.<P>Zauważ, że kerneld może nie być najlepszym rozwiązaniem dla sterownika AWE, ponieważ zabiera to dużo czasu, aby załadować moduł do jądra, szczególnie jeżeli chcesz używać syntezy Wave Table i ładować duże banki Sound Font, co musisz zrobić za każdym razem po załadowaniu modułu. Ponieważ kerneld usuwa nieużywane moduły po jednej minucie (standardowo), lepiej jest ładować moduł dźwięku ręcznie lub w czasie ładowania systemu. Zauważ, że samodzielne ładowanie modułu zapobiega usuwaniu go przez kerneld. Przy okazji: Możesz ręcznie ładować moduł i używać kerneld w tym samym czasie. Te dwie metody nie kolidują ze sobą, ale kerneld nie zajmuje się już modułem dźwięku. <P>Jest to użyteczne, gdy Twoje ustawienia miksera zostają skasowane po usunięciu i ponownym załadowaniu modułu. Rozwiązanie tego problemu zostanie podane w sekcji <HTMLURL URL="Soundblaster-AWE-mini-HOWTO.pl-4.html#ss4.5" NAME="Mikser"> (jest tam opis jak można uruchomić mikser automatycznie kiedy moduł dźwięku zostaje załadowany). Jednakże zajmuje to trochę czasu dla kerneld do zainstalowania modułu, załadowania banku dźwięków i uruchomienia miksera. Z tego powodu lepiej jest instalować moduł dźwięku w czasie ładowania systemu i nie pozwalać kerneld go deinstalować. <P> <SECT1>Kilka uwag o sterowniku dźwięku w jądrze <P> Możesz zainstalować obsługę dźwieku bezpośrednio w jądrze lub jako ładowalny moduł. Jeżeli masz kartę PnP, musisz zainstalować obsługę dźwięku jako moduł, ponieważ karta PnP musi być zainicjalizowana przez isapnptools zanim moduł zostanie zainstalowany.<P>Jak możesz sobie wyobrazić, będziesz musiał zrekompilować jądro. Podam ci poniżej kilka podpowiedzi. Na razie pomówmy o obsłudze dźwięku w źródłach jądra. Jądro jest dystrybuowane z darmową (Lite) wersją OSS (USS) - sterownika dźwięku. Obecna wersja tego sterownika (3.5.4) nie obsługuje SB AWE w całości, a tylko jego część podobną do SB 16. Tak więc możesz odgrywać dźwięki RAW i używać syntezy OPL-2/OPL-3, ale nie będziesz mógł odgrywać muzyki MIDI z syntezą Wave Table.<P>Jeżeli chcesz używać syntezy Wave Table możesz kupić komercyjny sterownik firmy <HTMLURL URL=http://www.4front-tech.com" NAME="4Front Technologies"> (proszę, niech mnie ktoś poinformuje, jeżeli to wystarczy) albo używać [darmowej] łaty na jądro "AWE 32 Sound Driver Extension" autorstwa Takashiego Iwai. Ten pierwszy nie jest opisany przez ten dokument, przyjmuję, że chcesz używać tego ostatniego. <P>Sterownik ten (zobacz sekcję <HTMLURL URL=Soundblaster-AWE-mini-HOWTO.pl-6.html#ss6.2" NAME="Źródła"> ) jest publikowany na licencji GNU i jest dystrybuowany z kilkoma programami użytkowymi do syntezy EMU 8000 kart SB AWE.<P><BF>Awedrv</BF> jest już dołączony do testowych wersji jądra (2.1.x), ale prawdopodobnie chcesz rozszerzać stabline wersje. <P> <SECT>Jak zainstalować dźwięk z SB AWE <P> <SECT1>Rzeczy, które będą Ci potrzebne <P>Oto wymagania obsługi SB AWE pod Linuxem:<P> <ITEMIZE> <ITEM>Funkcjonalny system Linuxowy (np. Debian GNU Linux)<P> <ITEM>Karta SB AWE 32 albo kompatybilna (np. SB32, SB32 PnP, SB AWE64, ...)<P> <ITEM>Źródła jądra Linuxa ze sterownikiem dźwięku OSS/Free (normalnie dołączany, sprawdź w <BF>/usr/src/Linux/drivers/sound/Readme</BF><P> <ITEM>Sterownik "AWE 32 Sound Driver Extensions" </ITEMIZE> <P> Jeżeli masz kartę PnP, będziesz także potrzebował: <P> <ITEMIZE> <ITEM>Pakiet oprogramowania <BF>isapnptools</BF> </ITEMIZE> <P> Zobacz sekcję <HTMLURL URL="Soundblaster-AWE-mini-HOWTO.pl-6.html#ss6.2" NAME="Źródła"> dla informacji skąd można zdobyć te programy. <P> <SECT1>Zaczynamy <P>Przyjmijmy, że masz poprawnie zainstalowaną kartę i prawdopodobnie już ją testowałeś pod DOS'em lub Windows.<P>Następnym krokiem będzie inicjalizacja karty w czasie ładowania systemu wtedy, i tylko wtedy, gdy jest to karta PnP. Postępuj zgodnie z dokumentacją pakietu źródłowego żeby skompilować i zainstalować isapnptools (albo po prostu użyj binarnego pakietu) i wykonaj polecenie:<NEWLINE> <CODE># pnpdump > /etc/isapnp.conf</CODE><NEWLINE> jako root. To wygeneruje, mam nadzieję, że odpowiedni, plik konfiguracyjny dla Twoich kart PnP, ale ze wszystkimi urządzeniami odkomentowanymi. Edytuj plik ostrożnie i porównuj wartości kanałów DMA, adresów IO i przerwań z konfiguracją pod DOS'em lub Windows, jeśli to możliwe. (pod Win95 zobacz zasoby wykorzystywane przez kartę w opcji <BF>zasoby</BF> w <BF>menedżerze urządzeń</BF>). Jeżeli masz problemy, przeczytaj dokumentację dostarczaną z isapnptools.<P> <BF>UWAGA:</BF> isapnptools często nie wykrywa wszystkich trzech portów I/O syntezy AWE Wave Table. Sprawdź dokładnie pozycję <BF>WaveTable</BF> w pliku <BF>isapnp.conf</BF> z przykładem podanym na końcu tego HOWTO. Ustaw adres I/O jeżeli to potrzebne. <P><BF>UWAGA:</BF> Zgodnie z <BF>isapnp-faq</BF>, isapnp czasami nie zaprogramowywuje numeru urządzenia logicznego. Jeżeli napotkasz np. taką wiadomość o błędzie:<P> <BF>Error occured executing request 'LD 2' on or around line...</BF> <P> spróbuj dodać linię <BF>(VERIFYLD N)</BF> na początku pliku <BF>isapnp.conf</BF>. Musisz używać wersji co najmniej 1.10, żeby ta medoda zadziałała. Jeżeli nie możesz używać wersji 1.10 lub nowszej możesz także wprowadzić numery urządzeń logicznych bezpośrednio. Zobacz <BF>isapnp-faq</BF>, żeby usyskać więcej informacji o tej metodzie. Jeżeli to nie będzie działać skontaktuj się ze mną (i ludzi tworzących isapnp, oni też powinni być zainteresowani). <P> <BF>UWAGA:</BF> Upewnij się, że ostatnią linią jest <BF>(WAITFORKEY)</BF>, to czasami bywa ominięte przez starsze wersje <BF>pnpdump</BF>. <P>Przykładowy <BF>isapnp.conf</BF> możesz znaleźć na końcu tego dokumentu (zobacz sekcję <HTMLURL URL="Soundblaster-AWE-mini-HOWTO.pl-6.html#ss6.3" NAME="Przykładowy isapnp.conf">.<P>Jeżeli używasz Debiana nie są potrzebne żadne dalsze ustawienia, <BF>isapnp</BF> zostanie uruchomiony w czasie ładowania w pliku <BF>/etc/init.d/boot</BF> po dodaniu tego kawałka kodu:<P> <CODE> # Skonfiguruj karty isa plug and play przed ładowaniem # modułów. Musisz to zrobić przed ładowaniem modułów, żeby mieć # szansę skonfigurowania i zainicjalizowania kart PnP zanim # sterowniki narobią bałaganu. # if [ -x /etc/init.d/isapnp ] then /etc/init.d/isapnp start fi</CODE> gdzie <BF>/etc/init.d/isapnp</BF> musi zawierać linie:<P> <CODE> #! /bin/sh # /etc/init.d/isapnp: skonfiguruj karty Plug ang Play test -x /sbin/isapnp || exit 0 /sbin/isapnp /etc/isapnp.conf exit 0 </CODE> <P>Jeżeli masz inną dystrybucję Linuxa, jesteś zdany na siebie. Nie wiem co robić (czy ktoś podałby mi te informacje?). Upewnij się tylko, że isapnp będzie uruchomiona <BF>zanim</BF> moduły będą załadowane (zobacz poniżej). <P> <SECT1>Kompilacja jądra <P>Przed rekompilacją jądra musisz "załatać" je Sterownikiem AWE. Nawet jeżeli źródła twojego jądra już zawierają <BF>awedrv</BF> (sprawdź <BF>/drivers/sound/lowlevel/</BF>), możesz chcieć rozszerzyć istniejący sterownik. Postępuj zgodnie z instrukcjami w katalogu ze źródłami awedrv. Musisz odpalić skrypt który zainstaluje łatę w jądrze.<P>Sprawdź, czy na pewno rozszerzyłeś źródła. Skrypt tylko sprawdza, czy dany plik instnieje - jeżeli tak, nie instaluje łaty. Powinieneś skasować plik <BF>drivers/sound/lowlevel/awe_wav.c</BF> przed uruchomieniem skryptu po rozszerzeniu źródeł jądra.<P>Następnie musisz skonfigurować jądro, włączając obsługę dźwięku. Mam nadzieję, że wiesz trochę o kompilowaniu jądra; zobacz Sound HOWTO i Kernel HOWTO, żeby uzyskać więcej informacji. Przejdź do katalogu z źródłami jądra (np. <BF>/usr/src/linux</BF>) i wykonaj polecenie<P> <CODE> # make config </CODE> <P> lub <CODE>make menuconfig</CODE> albo <CODE>make xconfig</CODE>. Teraz musisz skonfigurować jądro. Użyj tej okazji, żeby zbudować małe i mocne jądro, dostosowane do twojego komputera. Pamiętaj, żeby odpowiedzieć <BF>Y</BF> na pytanie <BF>Enable loadable module support</BF>, jeżeli chcesz zainstalować sterownik dźwięku jako ładowalny moduł (<BF>musisz</BF>, jeżeli masz kartę PnP), ale jestem pewien, że będziesz chciał i tak to zrobić.<P>W pewnym momencie zostaniesz zapytany o obsługę karty dźwiękowej. Możesz odpowiedzieć zarówno <BF>Y</BF> albo <BF>M</BF> jeżeli <BF>nie masz</BF> karty PnP. <BF>Musisz</BF> odpowiedzieć <BF>M</BF> (moduł), jeżeli posiadasz kartę PnP. Musisz skompilować obsługę karty dźwiękowj jako moduł (jeżeli masz kartę PnP), ponieważ taka karta musi być zainicjalizowana przed załadowaniem modułu. Na następujące pytania powinieneś odpowiedzieć <BF>Y</BF>, na wszystkie inne <BF>N</BF>: <P> <CODE> Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?] Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) [Y/n/?] /dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?] MIDI interface support (CONFIG_MIDI) [Y/n/?] FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?] lowlevel sound driver support [Y/n/?] AWE32 support (CONFIG_AWE32_SYNTH) [Y/n/?] </CODE> <P> Tylko ostatnia opcja ma wpływ na syntezę Wave Table. Inne wykorzystują opcje SB16 sterownika OSS/Free. <P> Dodatkowo, musisz skonfigurować port I/O karty dźwiękowej. Spójrz na plik <BF>isapnp.conf</BF> dla wskazówek, jeżeli masz takowy. U mnie wystarczają stantardowe wartości. Zauważ, że standardowe wartości ze skryptu konfiguracyjnego jądra mogą być nieprawidłowe (zwłaszcza wartości <BF>SBC_IRQ</BF> i <BF>SB_MPU_BASE</BF> są złe dla większości kart). <P> <CODE> I/O base for SB Check from manual of the card (SBC_BASE) [220] Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5] Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1] Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards) (SB_DMA2) [5] MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card (SB_MPU_BASE) [330] SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ) [-1] </CODE> <P> Teraz zrekompiluj jądro. Użytkownicy Debiana powinni użyć <BF>kernel-package</BF>. To robi kompilację jądra czynnością tak prostą jak zainstalowanie paczki Debiana. Zobacz dokumentację w katalogu <BF>/usr/doc/kernel-package/</BF>. Oto podpowiedź: <P> <CODE> # make-kpkg clean # make-kpkg -revision custom.1.0 kernel_image </CODE> <P> i wtedy <P> <CODE> dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb </CODE> <P> Jeżeli masz inną dystrybucję Linuxa, postępuj zgodnie ze standardowym sposobem kompilacji nowego jądra. Nie zapomnij o wydaniu poleceń <BF>make modules</BF> i <BF>make modules_install</BF>. Zobacz Sound HOWTO i (może) Kernel HOWTO, żeby uzyskać więcej informacji. <P> <SECT1>Przeładowanie systemu <P>Po zainstalowaniu nowego jądra powinieneś przeładować system (pamiętaj, żeby mieć funkcjonującą dyskietkę startową). Zaciśnij kciuki.<P>Jeżeli masz kartę PnP, pamiętaj, żeby odpalić isapnp bądź to w skrypcie ładującym (tak jak było to opisane wcześniej), bądź to ręcznie: <P> <CODE> # /sbin/isapnp /etc/isapnp.conf Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e: CTL0048 Serial No 58128 [checksum 74] </CODE> <P> Teraz możesz zainstalować sterownik dźwięku, jeżeli skompilowałeś go jako moduł:<P> <CODE> # modprobe -a sound AWE32 Sound Driver v0.3.3e (DRAM 2048k) </CODE> <P> Jeżeli sądzisz, że wykrycie pamięci nie było poprawne (znam przypadek człowieka mającego AWE 64 z 4096k, a ,,wykryta'' ilość wynosiła 28672k), spróbuj rozszerżyć awedrv albo podaj ilość pamięci w pliku <BF>/usr/src/linux/drivers/sound/lowlevel/awe_config.h</BF>, np. <P> <CODE> # define AWE_DEFAULT_MEM_SIZE 4096 /* kilobajtów */ </CODE> <P> Przykro mi, ale musisz wtedy zrekompilować jądro (może kompilacja modułów będzie wystarczająca, ale nie wiem na pewno). <P>Jeżeli działa, możesz chcieć, żeby moduł dźwięku był ładowany automatycznie. Możesz użyć kerneld (dlaczego to nie jest najlepszy pomysł zobacz w sekcji 1.4) lub dodaj linię zawierającą <BF>sound</BF> do <BF>/etc/modules</BF> (w Debianie) lub dodaj linię <BF>/sbin/modprobe -a sound</BF> do skryptu ładującego. <P> <SECT>Testowanie sterownika dźwięku <P> <SECT1>/proc/devices, /dev/sndstat <P>Jeżeli masz obsługę dźwięku wbudowaną w jądro, dostaniesz trochę pożytecznych informacji w czasie ładowania systemu. Jeżeli obsługę dźwięku masz zainstalowaną jako ładowalny moduł, możesz otrzymać te same informacje (prawdopodobnie po deinstalacji modułu dźwięku najpierw (<BF>modprobe -r sound</BF>)) wydając polecenie <P> <CODE> # modprobe -a sound trace_init=1 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 AWE32 Sound Driver v0.3.3e (DRAM 2048k) </CODE> <P> Jeżeli masz wirtualny system plików <BF>/proc</BF>, możesz poszukać urządzenia dźwięku komendą <P> <CODE> # cat /proc/devices Character devices: [...] 14 sound [...] </CODE> <P> Następnie upewnij się, że masz zainstalowane odpowiednie urządzenia w katalogu <BF>/dev/</BF>. Zobacz Sound HOWTO, żeby uzyskać więcej informacji. Teraz zapytaj <BF>/dev/sndstat</BF> o status modułu dźwięku: <P> <CODE> # cat /dev/sndstat Sound Driver:3.5.4-960630 (Sat Oct 11 19:35:14 CEST 1997 root, Linux flora 2.0.29 #1 Sat Oct 11 19:12:56 CEST 1997 i586 unknown) Kernel: Linux flora 2.0.29 #1 Sat Oct 11 19:36:23 CEST 1997 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 1: AWE32 Driver v0.3.3e (DRAM 2048k) Midi devices: 0: Sound Blaster 16 Timers: 0: System clock Mixers: 0: Sound Blaster 1: AWE32 Equalizer </CODE> <P> Jeżeli nie widzisz takich informacji, to prawdopodobnie jest błąd w konfiguracji. Zobacz co nie działa, a wtedy wróć do kroku <HTMLURL URL="Soundblaster-AWE-mini-HOWTO.pl-3.html#ss3.2" NAME="Zaczynamy">, sprawdzając wszystko. <P> <SECT1>Wyjście - Urządzenie dźwięku typu "RAW" <P> Spróbuj zdobyć plik <BF>.au</BF> (Sun Workstation) albo plik RAW i wykonaj komendę <P> <CODE> # cat bell.au > /dev/audio </CODE> <P> lub <P> <CODE> # cat sample > /dev/dsp </CODE> <P> Powinieneś usłyszeć zawartość pliku przez <BF>Audio Device 0: Sound Blaster 16 (4.3)</BF> <P> <SECT1>Wyjście - Synteza OPL-2/OPL-3 <P>Jeżeli chcesz używać syntezy FM OPL-2/OPL-3 do odgrywania plików MIDI, wypróbuj program <BF>playmidi</BF> (zobacz Dodatek B). Uruchom go komendą <P> <CODE> # playmidi -f dance.mid </CODE> <P> lub <P> <CODE> # playmidi -4 dance.mid </CODE> <P> Pierwsza komenda uruchomi OPL-2, druga OPL-3. Jeżeli dźwięk cię denerwuje nie wiń playmidi: To synteza FM brzmi tak źle. <P> Wyobraź sobie, że miałbyś tylko sterownik OSS/Free: To byłaby jakość dźwięku jaką mógłbyś uzyskać (nie biorąc pod uwagę syntezy programowej). Na szczęście masz SB AWE i możesz używać możliwości Wave Table ze Sterownikiem AWE. <P> <SECT1>Wyjście - Synteza Wave Table <P>Sterownik AWE jest dystrybuowany ze specjalnymi narzędziami (<BF>awesfx</BF>), żeby wykorzystać syntezę EMU 8000. Najpierw musisz załadować bank Sound Font do karty - nawet jeżeli chcesz używać sampli ROM! Możesz wziąć te pliki z instalacji Windows - szukaj plików z rozszerzeniem <BF>*.sfb</BF> lub <BF>*.sf2</BF> <P> Sample ROM są w pliku <BF>SYNTHGM.SBK</BF>, prawdziwe sample są w plikach <BF>SYNTHGS.SBK</BF> i <BF>SYNTHMT.SBK</BF>, oraz w <BF>SAMPLE.SBK</BF>. Możesz wziąć inne banki Sound Font przez ftp albo www, spróbuj na stronie EMU, stronie Creative Labs, albo na stronie z samplami Chaos, które są naprawdę dobre (pamiętaj, żeby przejrzeć stronę Sterownika AWE). <P>Spróbuj załadować standardowy zestaw GM (ROM) używając komendy <P> <CODE> # sfxload -i synthgm.sbk </CODE> <P> i wtedy odtwórz plik midi dostarczany z SB AWE: <P> <CODE> # drvmidi dance.mid </CODE> <P> <SECT1>Mikser <P>Uruchom swój ulubiony program miksera i uruchom go. Odegraj plik RAW i dwa pliki MIDI jednocześnie, wypróbowując ustawienia miksera. Pobaw się trochę, to powinno być bardzo łatwe. Oto lista urządzeń, oraz wyjaśnienie: <P> <ITEMIZE> <ITEM><BF>Yamaha OPL-3</BF> Synth albo FM <ITEM><BF>AWE32 Driver</BF> Synth albo FM <ITEM><BF>Sound Blaster 16 (4.13)</BF> PCM albo DSP <ITEM><BF>PC Speaker (nadal żywy)</BF> Spkr </ITEMIZE> <P> Inne ustawienia miksera odnoszą się do CD-ROMu, możliwie podłączonego do karty dźwiękowej, do głównej głośności, basów, tonów wysokich i poziomu nagrywania na różnych liniach wejściowych. Możesz określić, które linie powinny być nagrywane. <P> <SECT1>Wejście - Samplowanie z urządzeniem dźwięku typu "RAW" <P>Możesz nagrywać z różnych źródeł: z podłączonego CD ROMu, z mikrofonu podłączonego do wejścia <BF>MIC</BF> i z każdego źródła, które można podłączyć do wejścia <BF>LINE IN</BF>. Ustaw mikser w poprawnej pozycji. Odegraj dźwięk i nagrywaj do pliku, czytając z urządzenia dźwięku RAW, np. <P> <CODE> # cdplay # dd bs=8k count=5 </dev/dsp >music.au 5+0 records in 5+0 records out # cat music.au >/dev/dsp </CODE> <P> nagrywa i odtwarza pięć sekund dźwięku z urządzenia wejściowego. <P> <SECT1>Port MIDI <P>Przykro mi, nie ma jeszcze informacji o porcie MIDI! <P> <SECT>Oprogramowanie Sterownika AWE <P> <SECT1>sfxload <P>Możesz ładować próbki do DRAM'u na karcie dźwiękowej programem <BF>sfxload</BF>. Zauważ, że możesz ładować tylko jeden plik z próbkami na bank, z bankiem 0 jako standardowym. A więc po komendzie <BF>sfxload synthgs.sbk</BF> jedyne sample w twojej karcie są samplami GS. Jeżeli chcesz załadować dodatkowe banki Sound Font musisz użyć opcji <BF>-b</BF>, np. <P> <CODE> # sfxload synthgs.sbk # sfxload -b1 sample.sbk # drvmidi sfx.mid </CODE> <P> Możesz załadować standardowy bank Sound Font automatycznie, razem z instalacją modułu. Dodaj taką linię: <P> <CODE> post-install sound /usr/bin/sfxload synthgm.sbk </CODE> <P> do pliku <BF>/etc/conf.modules</BF>. <P> Zobacz dokumentację, żeby uzyskać więcej detali o sfxload. <P> <SECT1>drvmidi <P>Z programem <BF>drvmidi</BF> możesz używać Sterownika AWE do odgrywania plików MIDI. Po prostu podaj nazwę pliku midi po komendzie: <P> <CODE> # drvmidi waltz.mid </CODE> <P> Zobacz dokumentację, żeby uzyskać więcej szczegółów o <BF>drvmidi</BF>. <P> <SECT>Dodatek <P> <SECT1>Dodatkowe informacje <P> <ITEMIZE> <ITEM><BF>Linux Sound HOWTO</BF><NEWLINE>Autor: Jeff Tranter, <BF><<HTMLURL URL="mailto:jeff_tranter@pobox.com" NAME="jeff_tranter@pobox.com">></BF><NEWLINE>Ostatnia wersja: v1.17, 4 Sierpnia 1997<P> Dobrze rozejrzyj się w Sound HOWTO (dostępne z sunsite.unc.edu i innych serwerów). Zawiera garść danych o kompilacji jądra z obsługą dźwięku i wyjaśnia mnóstwo o urządzeniach dźwiękowych, aplikacjach itp.<NEWLINE>Przyjmuję to HOWTO jako dodatek do Sound HOWTO.<P> <ITEM><BF>Linux Sound Playing HOWTO</BF><NEWLINE>Autor: Yoo C. Chung, <BF><<HTMLURL URL="mailto:wacko@laplace.snu.ac.kr" NAME="wacko@laplace.snu.ac.kr">></BF><NEWLINE>Ostatnia wersja: v1.4, 13 Maja 1997<P> Powinieneś popatrzeć też na Sound Playing HOWTO. Mówi o różnych formatach dźwięku i aplikacjach do ich odgrywania.<P> <ITEM><BF>AWE Driver FAQ</BF><NEWLINE>Autor: Takashi Iwai <BF><<HTMLURL URL="mailto:iwai@dragon.mm.t.u-tokyo.ac.jp" NAME="iwai@dragon.mm.t.u-tokyo.ac.jp">></BF><P>Źródło: <HTMLURL URL="http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/awedrv-faq.html" NAME="http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/awedrv-faq.html"><P>Jeżeli masz problemy z instalacją Sterownika AWE lub z używaniem syntezy Wave Table w twojej karcie Sound Blaster, spójrz tutaj.<P> <ITEM><BF>ISA PnP FAQ</BF><NEWLINE>Autor: Peter Fox <BF><<HTMLURL URL="mailto:fox@roestock.demon.co.uk" NAME="fox@roestock.demon.co.uk">></BF><P>Źródło: <HTMLURL URL="http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html" NAME="http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html"><P> Jeżeli masz problemy ze skonfigurowaniem karty ISA PnP, to jest twoja encyklopedia. </ITEMIZE> <P> <SECT1>Źródła <P> <ITEMIZE> <ITEM><BF>isapnptools</BF><NEWLINE>Autor: Peter Fox <BF><<HTMLURL URL="mailto:fox@roestock.demon.co.uk" NAME="fox@roestock.demon.co.uk">></BF><NEWLINE>Ostatnia wersja: 1.11<P>Źródło: <HTMLURL URL="http://www.roestock.demon.co.uk/isapnptools/index.html" NAME="http://www.roestock.demon.co.uk/isapnptools/index.html"><P>Jeżeli wysyłasz łaty, wiadomości o błędach albo komentarze, wstaw ,,isapnp'' gdzieś w linii tematu, i wyślij list do isapnp@roestock.demon.co.uk.<P> <ITEM><BF>awedrv</BF><NEWLINE>Autor: Takashi Iwai <BF>< <HTMLURL URL="mailto:iwai@dragon.mm.t.u-tokyo.ac.jp" NAME="iwai@dragon.mm.t.u-tokyo.ac.jp">></BF><NEWLINE>Ostatnia wesja: 0.4.2c<P>Źródło: <HTMLURL URL="http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/" NAME="http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/"><P> <ITEM><BF>Jądro Linuxa</BF><NEWLINE>Autor: Linus Torvalds i wielu innych<NEWLINE>Ostatnia wersja: W tej chwili powinieneś używać 2.0.29 [ 2.0.33 - przyp. tłum.]<P>Źródło: wszędzie, gdzie możesz znaleźć Linuxa <BF>:)</BF><P> <ITEM><BF>OSS/Free</BF><NEWLINE>Autor: Hannu Savolainen (sprawdź <HTMLURL URL="http://www.4front-tech.com/usslite" NAME="http://www.4front-tech.com/usslite"> przed wysłaniem mi listu).<NEWLINE>Ostatnia wersja: ja mam 3.5.5-beta1<P>Źródło: z źródłami jądra Linuxa<P>Informacje: <HTMLURL URL="http://www.4front-tech.com/usslite" NAME="http://www.4front-tech.com/usslite"> albo <HTMLURL URL="http://personal.eunet.fi/pp/voxware" NAME="kopia europejska">. </ITEMIZE> <P> <SECT1>Przykładowy isapnp.conf <P>W pliku konfiguracyjnym ISA PnP wygenerowanym przez pnpdump numery urządzeń twoich kart PnP pojawiają się jako sekcje. W pliku poniżej była wykryta jedna karta (dźwiękowa), z czterema urządzeniami logicznymi:<P> <ITEMIZE> <ITEM><BF>LD 0</BF>: Urządzenie Dźwiękowe <ITEM><BF>LD 1</BF>: Urządzenie IDE <ITEM><BF>LD 2</BF>: Urządzenie WaveTable <ITEM><BF>LD 3</BF>: Urządzenie Portu Gier </ITEMIZE> <P> Zostawiłem <BF>LD 1</BF> nieskonfigurowane, ponieważ nie mam CD ROMu podłączonego do portu IDE w mojej karcie dźwiękowej. Jeżeli nie masz portów IDE w twoim SB, <BF>LD 1</BF> będzie urządeniem portu gier, a <BF>LD 3</BF> się nie pojawi.<P>Zobacz sekcję <HTMLURL URL="Soundblaster-AWE-mini-HOWTO.pl-3.html#ss3.2" NAME="Zaczynamy">, żeby uzyskać dokładne (ważne!) informacje o tym pliku. <P> <CODE> # $Id: pnpdump.c,v 1.9 1997/06/10 21:37:32 fox Exp $ # This is free software, see the sources for details. # This software has NO WARRANTY, use at your OWN RISK # # For details of this file format, see isapnp.conf(5) # # For latest information on isapnp and pnpdump see: # http://www.roestock.demon.co.uk/isapnptools/ # # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER (READPORT 0x0203) (ISOLATE) (IDENTIFY *) # Try the following if you get error messages like # Error occurred executing request 'LD 2' on or around line... #(VERIFYLD N) # ANSI string -->Creative SB32 PnP<-- (CONFIGURE CTL0048/58128 (LD 0 # ANSI string -->Audio<-- (INT 0 (IRQ 5 (MODE +E))) (DMA 0 (CHANNEL 1)) (DMA 1 (CHANNEL 5)) (IO 0 (BASE 0x0220)) (IO 1 (BASE 0x0330)) (IO 2 (BASE 0x0388)) (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 1 # ANSI string -->IDE<-- # (INT 0 (IRQ 10 (MODE +E))) # (IO 0 (BASE 0x0168)) # (IO 1 (BASE 0x036e)) # (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 2 # ANSI string -->WaveTable<-- (IO 0 (BASE 0x0620)) (IO 1 (BASE 0x0A20)) (IO 2 (BASE 0x0E20)) (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 3 # ANSI string -->Game<-- (IO 0 (BASE 0x0200)) (ACT Y) )) # Returns all cards to the "Wait for Key" state (WAITFORKEY) </CODE> <P> <SECT>Od tłumacza <P>Oto pierwsza wersja polskiego AWE HOWTO. Jeżeli zauważysz jakiś błąd, <HTMLURL URL="mailto:tygrys@fidonet.org.pl" NAME="daj mi znać">. <P> </ARTICLE>