FS#22302 - [alsa-utils] ALSA daemon script

Attached to Project: Arch Linux
Opened by Daniel Mills (e36freak) - Tuesday, 04 January 2011, 00:13 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 14 November 2012, 11:34 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Tobias Powalowski (tpowa)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:

I have made some modifications to the ALSA daemon script, as it was half-bash half-sh and wasn't really correct for either. Also, the if/then statement at line 42 really didn't make any sense.

Additional info:
* package version(s): current (1.0.23-2 ?)

Here is the new script:

#!/bin/bash

. /etc/rc.conf
. /etc/conf.d/alsa
. /etc/rc.d/functions

case "$1" in
start)
stat_busy "Restoring ALSA Levels"
if /usr/sbin/alsactl $ALSA_ARGS restore; then # removed useless "if [ $? -gt 0 ]; then"
stat_done
add_daemon alsa
else
stat_fail
fi

POWERSAVE="${POWERSAVE:-0}"
if [[ -e /sys/module/snd_ac97_codec/parameters/power_save ]] \
&& (( $POWERSAVE )); then # rewritten with proper bash syntax
echo $POWERSAVE > /sys/module/snd_ac97_codec/parameters/power_save
[[ -c /dev/dsp ]] && echo 1 > /dev/dsp
fi

if [[ -e /sys/module/snd_hda_intel/parameters/power_save ]] \
&& (( $POWERSAVE )); then # same here
echo $POWERSAVE > /sys/module/snd_hda_intel/parameters/power_save
[[ -c /dev/dsp ]] && echo 1 > /dev/dsp
fi
;;
stop)
# this is the section that really confused me, the error checking on it was done very strangely.
# i think that this is a much better way of doing it
SAVE_VOLUME="${SAVE_VOLUME:-yes}"
if [[ "$SAVE_VOLUME" = "yes" ]]; then
stat_busy "Saving ALSA Levels"
/usr/sbin/alsactl $ALSA_ARGS store || { stat_fail; exit 1; }
else
stat_busy "Stopping ALSA"
fi
if [[ "$MUTE_VOLUME" = "yes" ]]; then
/usr/bin/amixer -q set Master 0 mute || { stat_fail; exit 1; }
fi
stat_done
rm_daemon alsa
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac
This task depends upon

Closed by  Tobias Powalowski (tpowa)
Wednesday, 14 November 2012, 11:34 GMT
Reason for closing:  Won't fix
Additional comments about closing:  systemd is new default
Comment by Andrea Scarpino (BaSh) - Tuesday, 04 January 2011, 11:02 GMT
flyspray doesn't keep tabulation, please attach your file, or better a diff between our and your alsa script
Comment by Daniel Mills (e36freak) - Tuesday, 04 January 2011, 17:26 GMT
Here's both
Comment by Karol Błażewicz (karol) - Wednesday, 04 July 2012, 18:23 GMT
Status?
Comment by Ivan Lyapunov (dront78) - Thursday, 23 August 2012, 05:43 GMT
In my case enabling POWERSAVE=1 in /etc.conf.d/alsa cause error loading alsa unit with systemd and snd_hda_intel driver
Commenting [[ -c /dev/dsp ]] && echo 1 > /dev/dsp fixes the problem, so guys please fix this alsa script for all cases ;)

Loading...