( Kiskübi | 2006. 04. 23., v – 22:12 )

OSS:

Szerintem igen, valami kimaradt a kernelfordításból. Úgy tudom, hogy a DMA-terület csak bizonyos (alacsony) címtartományban lehet, ehhez rendszerinduláskor le kell foglalni ott egy blokkot, hogy a DMA majd tudja használni. Erre van valahol egy opció a kernel paraméterezésénél, de nem emlékszem, melyik...

ALSA:

> Ha újra futtatom az alsaconfot elindul és újra betölt mindent.

Hát akkor nézz egy lsmod-ot, és mazsolázd ki, hogy mi az, ami újraindítás után nincs bent, de alsaconf után bent van. Mondjuk irányítsd át fájlba:

$ lsmod > modulok-indulas
$ alsaconf
$ lsmod > modulok-alsaconf

Ha ALSA-t használsz, akkor is szükséged lesz egy OSS-felületre, mert sok program még csak azt ismeri. Az ALSA-nak viszont van teljesen jól működő OSS-felülete is. Az snd-pcm-oss és az snd-mixer-oss modulok kellenek hozzá.

Egyébként ezt ,,szépen'' úgy szokás megcsinálni, hogy nem mindent az /etc/modules-be írsz (oda minél kevesebbet, csak amit nagyon muszáj), hanem az /etc/modutils könyvtárban csinálsz egy külön fájlt a hangnak. Nekem ilyen van:

------- /etc/modutils/hang --------

alias char-major-14-0 snd-mixer-oss
alias char-major-14-3 snd-pcm-oss

pre-install snd-mixer-oss modprobe snd-emu10k1
pre-install snd-pcm-oss modprobe snd-emu10k1

-----------------------------------

Ez azt teszi, hogyha valami meg akarja nyitni a /dev/dsp-t (az a (14,3)-as kódú driver), akkor az snd-pcm-oss modul betöltődik, de a pre-install sor miatt előtte betölti az snd-emu10k1 modult. Neked az emu10k1 helyett valami más lesz (nézd meg a hardvertáblázatot az alsa-project.org oldalon, biztos benne lesz, hogy melyik modul kell Neked).

Ezen kívül ott van nálam az /etc/modutils/alsa-base fájl is, amit az alsaconf tett oda, a többi abban van leírva - azt nem bántom.

Ha bármit változtatsz az /etc/modutils könyvtárban, ne felejtsd el kiadni az update-modules parancsot, hogy összerakja a modules.conf fájlt.

man update-modules
man 5 modules.conf
man 5 modules