3 # alsasound This shell script takes care of starting and stopping
6 # This script requires /usr/sbin/alsactl program from alsa-utils package.
8 # Copyright (c) by Jaroslav Kysela <perex@jcu.cz>
10 # This program is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2 of the License, or
13 # (at your option) any later version.
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 # GNU General Public License for more details.
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 # For Polish Linux Distribution:
26 # chkconfig: 2345 87 14
27 # description: ALSA driver
30 # Source function library.
31 . /etc/rc.d/init.d/functions
33 alsactl=/usr/sbin/alsactl
35 if [ -r /etc/modules.conf ]; then
36 MODULES_CONF=/etc/modules.conf
38 MODULES_CONF=/etc/conf.modules
44 # insert all sound modules
46 if OLDLOGLEV=$(cat /proc/sys/kernel/printk | awk '{print $1}' 2> /dev/null); then
49 cat $MODULES_CONF | grep -v "off" | \
50 grep -E "^alias.+snd-card-[[:digit:]]" | \
53 show "Starting sound driver: $line " ; \
54 /sbin/modprobe $line; \
57 if [ -n "$OLDLOGLEV" ]; then
58 /sbin/loglevel "$OLDLOGLEV"
61 # restore driver settings
63 if [ -x $alsactl ]; then
66 show "ERROR: alsactl not found"; fail
73 # remove all sound modules
75 /sbin/lsmod | grep -E "^snd" | while read line; do \
76 /sbin/rmmod `echo $line | cut -d ' ' -f 1`; \
83 # store driver settings
85 if [ -x $alsactl ]; then
88 show '!!!alsactl not found!!!'; fail
91 # remove all sound modules
99 # run only detect module
101 /sbin/modprobe snd-detect
104 # See how we were called.
108 if [ ! -d /proc/asound ]; then
110 if [ -d /proc/asound ] && [ -d /var/lock/subsys ]; then
111 touch /var/lock/subsys/alsasound
114 if [ -f /proc/asound/detect ]; then
115 show "Shutting down sound detect module:"
119 if [ -d /proc/asound ] && [ -d /var/lock/subsys ]; then
120 touch /var/lock/subsys/alsasound
123 show "ALSA driver is already running"; fail
129 if [ -d /proc/asound ]; then
130 show "Shutting down sound driver:"
131 if [ -f /proc/asound/detect ]; then
136 (rmmod isapnp; rmmod soundcore) 2> /dev/null
137 if [ -d /var/lock/subsys ]; then
138 rm -f /var/lock/subsys/alsasound
142 show "ALSA driver isn't running "; fail
150 # Start driver only in detect mode.
151 if [ -d /proc/asound ]; then
152 if [ -f /proc/asound/detect ]; then
153 show "ALSA is already running detection mode"; fail
156 show "Shutting down sound driver:"
161 show "Starting sound detect module:"
164 if [ -d /var/lock/subsys ]; then
165 touch /var/lock/subsys/alsasound
169 echo "Usage: $0 {start|stop|restart|detect}"