Karta dźwiękowa pod Linuksem


Istnieje kilka sposobów skonfigurowania karty dźwiękowej w systemie linux. To, który z nich wybierzemy, zależy przede wszystkim od : typu naszego urządzenia, wersji systemu (dystrybucji).

W najlepszej sytuacji znajdują się użytkownicy dystrybucji zawierających własne narzędzia konfiguracyjne. Pozwalają one na automatyczne wykrycie naszej karty i same ją za nas (lub z niewielką pomocą) skonfigurują. Dzięki temu możemy bardzo szybko i przede wszystkim bezproblemowo zainstalować nasze urządzenie. Przykładami takich aplikacji są: YAST2 działający pod SUSE 7.0 lub tekstowy sndconfig z Red Hata.

Nie zapominajmy jednak, iż nie wszystkie dystrybucje pełne są takich dodatków. Może także się zdarzyć, iż programy te nie potrafią ustawić poprawnie parametrów naszej karty dźwiękowej. Jeśli znajdujemy się w takiej systuacji, nie pozostaje nam nic innego, jak zainstalować sterowniki ALSA. Wystraczy nam alsa-driver. Sterowniki te zastępują standardowe "OSS/Free drivers" dostarczane z jądrem. Choć ten sposób instalacji nie jest trudny, może łatwo odstraszyć zwolenników aplikacji typu sndconfig. W dalszej części artykułu przedstawię w kilku punktach, jak dokonać tego szybko i bezboleśnie.

1) Zanim zaczniemy, sprawdźmy, czy posiadamy źródła jądra z serii co najmniej 2.2.x oraz czy mamy załączoną w nim obsługę dźwięku. Podczas konfiguracji kernela powinniśmy zazanaczyć opcje:

Sound :

�<M> Sound Card Support�

�<M> OSS Modules�

�[ * ] Verbose initialisation�

�[ * ] Persistent DMA buffers�

Nie zaszkodzi także przejrzeć pozostałch możliwości. Może się bowiem okazać, że znajdziemy wśród nich typ naszej karty. Należy wówczas zaznaczyć taką opcję. Po zapisaniu ustawień i utworzeniu nowego jądra możemy przystąpić do właściwej instalacji (jeżeli okazało się, że nasza karta jest obsługiwana przez jądro, to po starcie systemu z nowego "kernela" dźwięk powinnien już działać. Możliwe, że będzie trzeba załadować jeszcze odpowiedni moduł).

2) Po rozpakowaniu alsa-driver, sprawdzamy w pliku ~/doc/SOUNDCARDS (�~� oznacza katalog,w którym rozpakowaliśmy źródła), czy nasza karta jest obsługiwana. Warto także zanotować ścieżki:

a) źródeł naszego jądra, np. /usr/src/linux-2.4.5 (nazwijmy ją ścieżka)

b) biblioteki modułów, np. /lib/modules/2.4.5/misc (nazwijmy ją ścieżka2)

3) Uruchamiamy ~/configure z następującymi opcjami:

--with-kernel=ścieżka (np. zamiast ścieżka wpisujemy /usr/src/linux-2.4.5)
--with-moddir=ścieżka2 (np. zamiast ścieżka2 wpisujemy /lib/modules/2.4.5/misc)
--with-debug=full
--with-isapnp=auto
--with-sequencer=yes
--with-oss=yes
--with-cards=nazwa, (gdzie nazwa jest po prostu skrótem nazwy naszej karty, np. Forte Media 801= fm801-> czyli nazwa=fm801. Jeżeli nie wiemy, jakiego skrótu użyć, to sprawdźmy plik ~ /modules.config)

Pamiętajmy - jeżeli startujemy nasz system z jądra typu 2.2.x, to podajemy w parametrach ścieżki dla tego jądra właśnie!

4) Po zakończeniu działania przez skrypt konfiguracyjny, wydajemy polecenie :

make install

Po zainstalowaniu sterowników powinniśmy jeszcze utworzyć odpowiednie pliki urządzeń w katalogu /dev. W tym celu wystarczy uruchomić ~/snddevices.in .

5) Przed nami ostatnia, a zarazem najtrudniejsza czynność. Musimy dokonać edycji pliku /etc/modules.conf (ewentualnie /etc/conf.modules. Jednocześnie nie mogą istnieć oba. W starszych wersjach systemu spotykamy drugą wersję, dlatego warto zwrócić uwagę na ten fakt ). Szczegółowy opis wszystkich opcji znajdziemy w ~/INSTALL. Poniżej podaję jakich wpisów należy dokonać. Oto one:

post-install snd-card-nazwa modprobe snd-pcm-oss (nazwa - patrz wcześniej)

alias char-major-116 snd

alias char-major-14 soundcore (wpiszmy tą linijkę, bowiem załączyliśmy wcześniej emulację OSS/Free)

alias snd-card-0 snd-card-nazwa (0 jest numerem naszej karty, możemy zainstalować aż osiem kart)

alias sound-slot-0 snd-card-0

alias sound-service-0-0 snd-mixer-oss

alias sound-service-0-1 snd-seq-oss

alias sound-service-0-3 snd-pcm-oss

alias sound-service-0-8 snd-seq-oss

alias sound-service-0-12 snd-pcm-oss
(ostatnie 5 linii wpisujemy, gdyż - jak już wspomniałem - włączyliśmy emulację OSS/Free)

Dołączam własny plik �modules.conf� z ustawieniami dla karty FM801

6) Zbliżamy się do końca procesu instalacyjnego. Pozostaje nam jescze załadować odpowiedni moduł. Wydajemy polecenia :

depmod -a

modprobe snd-pcm-oss
modprobe snd-card-nazwa

Jeśli wszystkie poprzednie czynności wykonaliśmy dobrze, to nie pojawi się żaden komunikat. Nasza karta już działa. Może sie zdarzyć, że po uruchomieniu np. odtwarzacza mp3 nic nie słyszymy. Nie wpadajmy w panikę. Trzeba tylko zmienić głośność poszczególnych kanałów mixera. Możemy użyć w tym celu Kmix z KDE lub gmix z Gnome.

7) Uwagi końcowe - jeżeli nasza karta nie jest obsługiwana ani prze jądro, ani też przez ALSĘ, to możemy tylko czekać, aż zostaną napisane dla niej odpowiednie "dirvery". Warto zajrzeć na stronę projektu ALSA :
http://www.alsa-project.org Może już się pojawiło coś nowego. Jeżeli natomiast dopiero planujemy zakup nowej karty dźwiękowej, to najpierw sprawdźmy, czy będzie z niej pożytek pod linuksem.



Potrzebne wpisy z pliku �modules.conf� :


 

post-install snd-card-fm801 modprobe snd-pcm-oss

alias char-major-116 snd

alias char-major-14 soundcore

alias snd-card-0 snd-card-fm801

alias sound-slot-0 snd-card-0

alias sound-service-0-0 snd-mixer-oss

alias sound-service-0-1 snd-seq-oss

alias sound-service-0-3 snd-pcm-oss

alias sound-service-0-8 snd-seq-oss

alias sound-service-0-12 snd-pcm-oss

 

 

--- --- --- -x-