blob: 8fbd5d3174bc8acac8e2c6f6170a06bc79d9c563 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
#!/bin/sh
# (c) MandrakeSoft, Chmouel Boudjnah <chmouel@mandrakesoft.com>
# $Id$
#
# sound: This shell script launch the sound on your system.
#
# chkconfig: 2345 18 69
# description: This shell script launch the sound on your system.
. /etc/rc.d/init.d/functions
PKLVL=$(cut -f1 /proc/sys/kernel/printk)
sysctl -n -w kernel.printk=0
function start_mixer () {
# ALSA
if [ -d /proc/asound ] && [ -x /usr/sbin/alsactl ]; then
# is ALSA already configured ?
if [[ ! -r /etc/asound.state ]]; then
# provide decent default sound level for alsa drivers
if [ -d /proc/asound ] && [ -x /usr/sbin/alsactl ];then
MIXER_SETTINGS=/root/tmp/asound.state_tmp
alsactl -f $MIXER_SETTINGS store
# set some sane default volume and unmute needed channels:
/etc/rc.d/rc.alsa_default $MIXER_SETTINGS
action "Setting mixer settings" alsactl -f $MIXER_SETTINGS restore
rm -f $MIXER_SETTINGS
return 0
fi
# if we've not alsa-utils, we'll fallback on OSS initialization below
else
# Not first boot:
# Done by alsa service but only if sound service is not
# enabled (hance this code path).
# We'll merge in back aksa service once mdk9.2 is released.
# [but we'll still handle both aumix & alsactl in order
# to manage packages removing / driver switch]
action "Loading mixer settings" /usr/sbin/alsactl restore
return 0
fi
fi
# OSS
if egrep -q '(sparcaudio|sound)' /proc/devices 2>/dev/null && \
[ "$retval" -eq 0 ] && [ -x /usr/bin/aumix ];then
if [ ! -r /etc/.aumixrc ];then
action "Setting mixer settings" /usr/bin/aumix -v80 -w80 -c80
else
action "Loading mixer settings" /usr/bin/aumix -f /etc/.aumixrc -L
fi
fi
}
function stop_mixer () {
if [ -d /proc/asound ] && [ -x /usr/sbin/alsactl ];then
# done by alsa service (to merge back after mdk9.2 release)
#action "Saving mixer settings" /usr/sbin/alsactl store
return 0;
fi
if egrep -q '(sparcaudio|sound)' /proc/devices 2>/dev/null && [ -x /usr/bin/aumix ];then
action "Saving mixer settings" /usr/bin/aumix -f /etc/.aumixrc -S
fi
}
function module () {
opt=""
phrase=$1
alias=$2
[ -n "$3" ] && opt="-r"
module=`/sbin/modprobe -c | egrep -s "^alias( |\t)+"$alias"( |\t)+" | awk '{ print $3 }'`
if [ -n "$module" ] && [ "$module" != "off" ];then
action "$phrase ($module)" modprobe "$opt" $module
return $?
fi
}
case $1 in
start)
retval=0
if [ ! -d /proc/asound ];then
module "Loading sound module" sound || retval=1
/sbin/modprobe -c | awk '/^((alias)|(probe)) +sound-slot-[0-9]/ {print $2}' | ( \
while read line; do
[[ $line = snd-card-* ]] && continue #we do it via alsa script
module "Loading sound module" $line || retval=1
done
)
module "Loading midi module" midi
fi
start_mixer;
touch /var/lock/subsys/sound
;;
stop)
# i should have the same semantic of alsa script than oss script,
# but i do not :-(, patches welcome.
stop_mixer;
rm -f /var/lock/subsys/sound
;;
status)
if egrep -q '(sparcaudio|sound)' /proc/devices;then
gprintf "Sound loaded"
echo
fi
;;
reload)
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: %s\n" "$(basename $0) {start|stop|restart|status}"
exit 0
esac
sysctl -n -w kernel.printk=$PKLVL
exit 0
|