How to restart alsa?
Janina Sajka
janina at rednote.net
Fri Sep 8 15:51:57 UTC 2006
Mark Haney writes:
> Paul Smith wrote:
> >
> >I have searched for the alsasound script but I cannot find it. Any help?
> >
> >Thanks in advance,
> >
> >Paul
> >
> What do you have in /etc/init.d? It should be in there if you have alsa
> installed.
>
Stripped by FC for some reason I don't understand. I get mine from
CCRMA. I'm attaching. Let me know if that doesn't come through.
Janina
>
>
>
> --
> Fere libenter homines id quod volunt credunt.
>
> Mark Haney
> Sr. Systems Administrator
> ERC Broadband
> (828) 350-2415
>
> --
> fedora-list mailing list
> fedora-list at redhat.com
> To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
--
Janina Sajka Phone: +1.202.595.7777
Partner, Capital Accessibility LLC http://CapitalAccessibility.Com
Marketing the Owasys 22C talking screenless cell phone in the U.S. and Canada--Go to http://ScreenlessPhone.Com to learn more.
Chair, Accessibility Workgroup Free Standards Group (FSG)
janina at freestandards.org http://a11y.org
-------------- next part --------------
#!/bin/bash
#
# alsasound This shell script takes care of starting and stopping
# the ALSA sound driver.
#
# This script requires /usr/sbin/alsactl and /usr/bin/aconnect
# programs from the alsa-utils package.
#
# Copyright (c) by Jaroslav Kysela <perex at suse.cz>
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
# For RedHat 5.0+:
# chkconfig: 2345 87 14
# description: ALSA driver
#
# modified to visually fit into SuSE 6.0+ by Philipp Thomas <pthomas at suse.de>
# further improvements by Bernd Kaindl, Olaf Hering and Takashi Iwai.
#
### BEGIN INIT INFO
# Provides: alsasound
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 5
# Default-Stop:
# Description: Loading ALSA drivers and store/restore the current setting
### END INIT INFO
if [ -r /etc/rc.config ]; then
. /etc/rc.config
rc_warning="\033[33m\033[1m"
else
rc_done="done"
rc_warning=""
rc_reset=""
fi
if [ x$START_ALSA != xno ]; then
START_ALSA=yes
fi
if [ x$START_ALSA_SEQ != xno ]; then
START_ALSA_SEQ=yes
fi
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
# Force execution if not called by a runlevel directory.
test $link = $base && START_ALSA=yes
test "$START_ALSA" = yes || exit 0
alsactl=/usr/sbin/alsactl
asoundcfg=/etc/asound.state
aconnect=/usr/bin/aconnect
alsascrdir=/etc/alsa.d
if [ -x /sbin/lsmod ]; then
lsmod=/sbin/lsmod
else
lsmod=lsmod
fi
# modprobe returns 255 when failed..
function probe_module () {
/sbin/modprobe $*
test $? = 0 && return 0
return 1
}
function start() {
#
# insert all sound modules
#
module_loaded=0
drivers=`/sbin/modprobe -c | \
grep -E "^[[:space:]]*alias[[:space:]]+snd-card-[[:digit:]]" | \
awk '{print $3}'`
for i in $drivers; do
if [ "$i" != off ]; then
echo -n "Starting sound driver: $i "
probe_module $i && module_loaded=1
echo -e "$rc_done"
fi
done
test $module_loaded -eq 0 && return
#
# insert sequencer modules
#
if [ x"$START_ALSA_SEQ" = xyes -a -r /proc/asound/seq/drivers ]; then
cut -d , -f 1 /proc/asound/seq/drivers | \
while read t ; do
test -z $t || /sbin/modprobe $t
done
fi
#
# restore driver settings
#
if [ -d /proc/asound ]; then
if [ ! -r $asoundcfg ]; then
echo "No mixer config in $asoundcfg, you have to unmute your card!"
else
if [ -x $alsactl ]; then
$alsactl -F -f $asoundcfg restore
else
echo -e "${rc_warning}ERROR: alsactl not found${rc_reset}"
fi
fi
fi
#
# run card-dependent scripts
for i in $drivers; do
t=${i##snd-}
if [ -x $alsascrdir/$t ]; then
$alsascrdir/$t
fi
done
#
# touch lockfile if lockdir exists
#
if [ -d /var/lock/subsys ] ; then
touch /var/lock/subsys/alsasound
fi
}
function terminate() {
#
# Kill processes holding open sound devices
#
# DEVS=`find /dev/ -follow -type c -maxdepth 1 -print 2>/dev/null | xargs ls -dils | grep "1*1[46]," | cut -d: -f2 | cut -d" " -f2; echo /proc/asound/dev/*`
fuser -k /dev/admmidi? /dev/adsp? /dev/amidi? /dev/audio* /dev/dmfm* \
/dev/dmmidi? /dev/dsp* /dev/dspW* /dev/midi0? /dev/mixer? /dev/music \
/dev/patmgr? /dev/sequencer* /dev/sndstat >/dev/null 2>&1
if [ -d /proc/asound/dev ]; then
fuser -k /proc/asound/dev/* >/dev/null 2>&1
fi
if [ -d /dev/snd ]; then
fuser -k /dev/snd/* >/dev/null 2>&1
fi
#
# remove all sequencer connections if any
#
if [ -f /proc/asound/seq/clients -a -x $aconnect ]; then
$aconnect --removeall
fi
}
function stop() {
#
# store driver settings
#
if [ -x $alsactl ]; then
$alsactl -f $asoundcfg store
else
echo -n -e "${rc_warning}!!!alsactl not found!!!${rc_reset} "
fi
#
# mute master to avoid clicks at unload
#
/usr/bin/amixer set Master mute >/dev/null 2>&1
#
# remove all sound modules
#
$lsmod | grep -E "^snd" | grep -Ev "(snd-page-alloc|snd_page_alloc)" | while read line; do \
/sbin/rmmod `echo $line | cut -d ' ' -f 1`; \
done
# remove the 2.2 soundcore module (if possible)
/sbin/rmmod soundcore 2> /dev/null
/sbin/rmmod gameport 2> /dev/null
#
# remove lockfile if lockdir exists
#
if [ -d /var/lock/subsys ] ; then
rm -f /var/lock/subsys/alsasound
fi
}
# See how we were called.
case "$1" in
start)
# Start driver if it isn't already up.
if [ ! -d /proc/asound ]; then
start
else
echo "ALSA driver is already running."
fi
;;
stop)
# Stop daemons.
if [ -d /proc/asound ]; then
echo -n "Shutting down sound driver: "
terminate
stop
echo -e "$rc_done"
fi
;;
restart|reload)
$0 stop
$0 start
;;
status)
if [ -d /proc/asound ]; then
echo -n "ALSA sound driver loaded."
else
echo -n "ALSA sound driver not loaded."
fi
echo
;;
*)
echo "Usage: alsasound {start|stop|restart|status}"
exit 1
esac
exit 0
More information about the fedora-list
mailing list