udev, ALSA, hotplug i miksery

Jakub Piotr Cłapa loc w toya.net.pl
Wto, 13 Gru 2005, 18:07:25 CET


lobo w chello.pl wrote:
> 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

Tego się nie robi przypadkiem jedną kropką?

> 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.

Wygląda to dokładnie tak jak ja sobie to wyobrażałem.

>>> 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.

Właśnie to miałem na myśli. Trzeba przejrzeć, czy taki event jest i 
przetestować.

-- 
Regards,
Jakub Piotr Cłapa



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