udev - ALSA "already running"

lobo@chello.pl lobo w chello.pl
Wto, 13 Gru 2005, 13:34:02 CET


On Mon, Dec 12, 2005 at 11:37:51PM +0100, Jakub Piotr Cłapa wrote:
> Ogólnie wygląda bardzo nieźle. Nie miałbyś ochoty dorzeźbić tego trochę 
> i wrzucić do distro? (np. ładowanie emulacji powinno być kompleksowe i w 
> skrypcie, żeby do /etc/sysconfig/alsa można było dodać konfigurację)
Mogę spróbować coś porzeźbić, ale muszę jeszcze trochę poczytać na temat
udeva i alsy. Poniżej propozycja jak to wstępnie widzę.

------------- /etc/udev/rules.d/alsa.rules -----------
SUBSYSTEM=="sound", KERNEL=="controlC*", RUN+="/etc/udev/scripts/alsa"
SUBSYSTEM=="sound", KERNEL=="pcm*", RUN+="/etc/udev/scripts/alsa"
SUBSYSTEM=="sound", KERNEL=="seq*", RUN+="/etc/udev/scripts/alsa"

--------------- /etc/udev/scripts/alsa ---------------
#!/bin/sh

.. /etc/rc.d/init.d/functions
.. /etc/sysconfig/alsa

add_pcm()
{
	if is_yes("$OSS_EMULATION"); then
		/sbin/modprobe --ignore-install snd_pcm_oss
	fi
	eval "$PCM_POSTINST"
}

add_seq()
{
	if is_yes("$OSS_EMULATION"); then
		/sbin/modprobe --ignore-install snd_seq_oss
	fi
	eval "$SEQ_POSTINST"
}

case "$ACTION" in
	add)
		case "${KERNEL}" in
			pcm*)
				add_pcm
			;;
			seq*)
				add_seq
			;;
			controlC*)
				/usr/sbin/alsactl restore
			;;
		esac
	;;
	del)
		/usr/sbin/alsactl store
	;;
esac
------------------------------------------------------

Skrypt ma tylko dawać pogląd jak zamierzam do tego podejść. Muszę
poczytać jakie zmienne są przekazywane do skryptów wywoływanych przez
udeva i dopiero dostosować całość pod to. Muszę przemyśleć również
kwestię dodatkowych modułów których udev sam nie ładuje (np.
snd-emu10k1-synth). Proszę o przyjżenie się temu i komentarz.

> > Jeśli chodzi o zachowywanie ustawień, to ręcznie zrobiłem 'alsactl
> > store' po ustawieniu alsamixerem.
> 
> To dałoby się chyba zrobić na siłe dla wszystkich kart przy shutdown lub 
> jeśli udev obsługuje REMOVE to na evencie? Może jeszcze jakoś inaczej 
> dałoby się zapisywać także ustawienie dla kart, które zostały wypięte 
> przed shutdownem.
Event bedzie pewnie tylko przy dzwięku usb w momencie wyjęcia wtyczki,
przynajmniej tak mi się wydaje. Można by zrobić obsługę eventu i
dodatkowo wstawić skrypt do /etc/rc.d który zapisze konfigurację przy
shutdown.

-- 
Pozdrawiam
Przemysław Białek



Więcej informacji o liście dyskusyjnej pld-users-pl