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