From: Michael Shigorin <mike@osdn.org.ua>
To: sisyphus@altlinux.ru
Cc: darkstar@altlinux.ru
Subject: [sisyphus] ...0.31 (was: I: sound-scripts-0.2)
Date: Sun, 23 Nov 2003 13:35:46 +0200
Message-ID: <20031123113543.GP9136@osdn.org.ua> (raw)
In-Reply-To: <20031123074106.GA2317@wrars-comp.wrarsdomain>
[-- Attachment #1.1: Type: text/plain, Size: 617 bytes --]
On Sun, Nov 23, 2003 at 12:41:06PM +0500, Andrey Rahmatullin wrote:
> # modprobe -c |egrep '^alias [^ ]+ snd-'
> alias sound-slot-0 snd-als4000
> alias snd-card-0 snd-als4000
> Предлагаю в конце строчки поиска модулей воткнуть |uniq
Тогда |sort |uniq уже. :-)
Хотя вроде сейчас дубли туда не пишут, закладываться на это
действительно не стоит.
0.31 attached.
Если всем понравится -- до конца недели делаю пакет и шлю в
Sisyphus.
2 darkstar: проверь и если ничего не сломано -- в compact.
Есть серьезные багфиксы.
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
[-- Attachment #1.2: sound --]
[-- Type: text/plain, Size: 3869 bytes --]
#!/bin/sh
# $Id: sound,v 1.14 2003/10/08 15:03:12 ldv Exp $
#
# sound: This shell script launch the sound on your system.
#
# chkconfig: 2345 30 70
# description: This shell script launch the sound on your system.
# halt: yes
# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1
# Source function library.
. /etc/init.d/functions
PKLVL=
SOUND_ALSA=
ChangePrintk()
{
[ -n "$PKLVL" ] || PKLVL=`sed 's/^\(.\).*/\1/' < /proc/sys/kernel/printk`
sysctl -w kernel.printk=0
}
exit_handler()
{
local rc=$?
trap - EXIT
[ -z "$PKLVL" ] || sysctl -w "kernel.printk=$PKLVL"
exit $rc
}
trap exit_handler SIGHUP SIGPIPE SIGINT SIGQUIT SIGTERM EXIT
LOCKFILE=/var/lock/subsys/sound
AUMIX=
[ ! -x /usr/bin/aumix ] || AUMIX=/usr/bin/aumix
[ ! -x /bin/aumix-minimal ] || AUMIX=/bin/aumix-minimal
ALSACTL=
[ -x /usr/sbin/alsactl ] && ALSACTL=/usr/sbin/alsactl
TMP_ALSA_STATE=`mktemp -t alsa-state.XXXXXX`
LookupDevices()
{
egrep -qs '(sparcaudio|sound)' /proc/devices
}
LoadModule()
{
local phrase=$1 pattern=$2 m opt=
[ -n "$3" ] && opt='-r'
for m in `modprobe -c |egrep "^alias $pattern " |cut -d\ -f3 |sort |uniq`; do
if [ -n "$m" ] && [ "$m" != off ]; then
action "$phrase ($m):" modprobe "$opt" "$m"
local rc=$?
[ $rc -eq 0 ] || return $rc
fi
done
}
load_alsa()
# redo with LoadModule?
{
modprobe -c |egrep '^alias [^ ]+ snd-' |cut -d\ -f3 |sort |uniq\
while read line; do
L=1
action "Starting ALSA sound driver $line:" modprobe $line
done
if [ -d /proc/asound ]; then
RETVAL=0 start_mixer alsa
fi
}
start_alsa()
{
[ -d /proc/asound ] || load_alsa
[ -d /proc/asound ] && touch "$LOCKFILE"
}
unload_alsa()
{
RETVAL=0 stop_mixer alsa;
/sbin/lsmod |grep "^snd" |
while read line; do
/sbin/rmmod `echo $line |cut -d\ -f 1`
done
/sbin/rmmod soundcore 2>/dev/null
}
fix_alsa_levels()
{
# provide sane default audio levels even with alsa
alsactl -f $TMP_ALSA_STATE store
# set volume to 67%
subst 's/\(value\.*\w*\S*\)\s* 0/\1 20/' $TMP_ALSA_STATE
# unmute all channels
subst 's/\(value\.*\w*\S*\)\s* false/\1 true/' $TMP_ALSA_STATE
action "Initializing ALSA mixer settings" alsactl -f $TMP_ALSA_STATE restore
rm -f $TMP_ALSA_STATE
}
start_mixer()
{
LookupDevices || return
# ALSA
if [ "$1" = "alsa" -a -n "$ALSACTL" ]; then
if [ -r /etc/asound.state ]; then
action "Loading ALSA mixer settings:" "$ALSACTL" restore
else
fix_alsa_levels
return 0
fi
elif [ -n "$AUMIX" ]; then
if [ -s /etc/.aumixrc ]; then
action "Loading OSS mixer settings:" "$AUMIX" -f /etc/.aumixrc -L
else
action "Initializing OSS mixer settings:" "$AUMIX" -v90 -w90 -c90
fi
fi
}
stop_mixer()
{
LookupDevices || return
if [ "$1" = "alsa" -a -n "$ALSACTL" ]; then
action "Saving ALSA mixer settings:" "$ALSACTL" store
elif [ -n "$AUMIX" ]; then
action "Saving OSS mixer settings:" "$AUMIX" -f /etc/.aumixrc -S
fi
}
start()
{
ChangePrintk
# if there is alsa driver configured load it and exit.
# FIXME: we know it's wrong since there could be OSS too.
# TODO: for now codepaths are extremely crappy :((
start_alsa && exit
RETVAL=0
LoadModule "Loading sound module" 'sound[^ ]*' || RETVAL=1
LoadModule "Loading midi module" midi
start_mixer oss
touch "$LOCKFILE"
}
stop()
{
ChangePrintk
if [ -d /proc/asound ]; then
unload_alsa
rm -f "$LOCKFILE"
return
fi
if [ -d /proc/asound ]; then
stop_mixer alsa
else
stop_mixer oss
fi
LoadModule "Unloading midi module" midi REMOVE
LoadModule "Unloading sound module" 'sound[^ ]*' REMOVE
rm -f "$LOCKFILE"
}
restart()
{
stop
start
}
case $1 in
start)
start
;;
stop|condstop)
stop
;;
restart|reload)
restart
;;
status)
if lsmod |egrep -qs '^(sound|snd)'; then
echo "Sound modules loaded"
fi
;;
condrestart|condreload)
;;
*)
msg_usage "${0##*/} {start|stop|restart|status}"
exit 1
esac
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2003-11-23 11:35 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-12 12:46 [sisyphus] I: sound-scripts-0.2 Michael Shigorin
2003-11-22 7:55 ` [sisyphus] " Michael Shigorin
2003-11-22 12:03 ` Alex Yustasov
2003-11-22 12:12 ` Michael Shigorin
2003-11-22 18:00 ` Michael Shigorin
2003-11-23 7:41 ` Andrey Rahmatullin
2003-11-23 11:35 ` Michael Shigorin [this message]
2003-11-23 11:49 ` [sisyphus] ...0.31 (was: I: sound-scripts-0.2) Sergey Vlasov
2003-11-23 11:56 ` [sisyphus] " Michael Shigorin
2003-11-23 11:59 ` Sergey Vlasov
2003-11-23 19:37 ` Michael Shigorin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20031123113543.GP9136@osdn.org.ua \
--to=mike@osdn.org.ua \
--cc=darkstar@altlinux.ru \
--cc=sisyphus@altlinux.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git