udev - ALSA "already running"
lobo@chello.pl
lobo w chello.pl
Pon, 12 Gru 2005, 10:45:15 CET
On Sun, Dec 11, 2005 at 04:35:19PM +0100, Jakub Piotr Cłapa wrote:
> Obecna ALSA jest niedostosowana do hotpluga i trzeba sie z tym pogodzić.
> Restorowanie mixerów powinno iść z eventów hotplugowych, ale nie mam
> pojęcia jak to zrobić.
Ja sobie poradziłem w następujący sposób:
1. /etc/modprobe.conf
options snd cards_limit=2
options snd-emu10k1 index=0 extin=0x000f extout=0x1f0f
options snd-intel8x0 index=1
2. /etc/udev/rules.d/alsa.rules
SUBSYSTEM=="sound", KERNEL=="controlC*", RUN+="/etc/udev/scripts/salsa
%n"
SUBSYSTEM=="sound", KERNEL=="pcm*", RUN+="/sbin/modprobe -q snd_pcm_oss"
SUBSYSTEM=="sound", KERNEL=="pcm*", RUN+="/sbin/modprobe -q snd_seq"
SUBSYSTEM=="sound", KERNEL=="seq", RUN+="/sbin/modprobe -q snd_seq_oss"
SUBSYSTEM=="sound", KERNEL=="seq", RUN+="/bin/asfxload ch12msup.bnk"
3. /etc/udev/scripts/salsa
#!/bin/sh -e
[ "$ACTION" != "add" ] && exit 0
[ "$#" != 1 ] && exit 0
if [ -x /usr/sbin/alsactl ]; then
/usr/sbin/alsactl restore "${1}"
exit 0
fi
Uwagi:
Nie wiem czy 1. zadziała dla dzwięku po usb.
W punkcie 2 i 3 powalczyłem z opisem na jakiejś stronce i wyszło mi coś
takiego po dostosowaniu do moich potrzeb (emulacja oss, midi).
Teoretycznie można by pozbyć się punktu trzeciego i wstawić alsactl
restore bezpośrednio do alsa.rules, ale jak mi działa to już nie chcę
eksperymentować.
Jeśli chodzi o zachowywanie ustawień, to ręcznie zrobiłem 'alsactl
store' po ustawieniu alsamixerem.
--
Pozdrawiam
Przemysław Białek
Więcej informacji o liście dyskusyjnej pld-users-pl