saving uncommitted changes in /etc prior to emerge run
This commit is contained in:
parent
26e05bf054
commit
e329acdb3f
15
conf.d/._cfg0000_alsasound
Normal file
15
conf.d/._cfg0000_alsasound
Normal file
@ -0,0 +1,15 @@
|
||||
# RESTORE_ON_START:
|
||||
# Do you want to restore your mixer settings? If not, your cards will be
|
||||
# muted.
|
||||
# no - Do not restore state
|
||||
# yes - Restore state
|
||||
|
||||
RESTORE_ON_START="yes"
|
||||
|
||||
# SAVE_ON_STOP:
|
||||
# Do you want to save changes made to your mixer volumes when alsasound
|
||||
# stops?
|
||||
# no - Do not save state
|
||||
# yes - Save state
|
||||
|
||||
SAVE_ON_STOP="yes"
|
88
init.d/._cfg0000_alsasound
Executable file
88
init.d/._cfg0000_alsasound
Executable file
@ -0,0 +1,88 @@
|
||||
#!/sbin/runscript
|
||||
# $Id$
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
alsastatedir=/var/lib/alsa
|
||||
alsascrdir=/etc/alsa.d
|
||||
alsahomedir=/var/run/alsasound
|
||||
|
||||
extra_commands="save restore"
|
||||
|
||||
depend() {
|
||||
need localmount
|
||||
after bootmisc modules isapnp coldplug hotplug
|
||||
}
|
||||
|
||||
restore() {
|
||||
ebegin "Restoring Mixer Levels"
|
||||
|
||||
checkpath -q -d -m 0700 -o root:root ${alsahomedir} || return 1
|
||||
|
||||
if [ ! -r "${alsastatedir}/asound.state" ] ; then
|
||||
ewarn "No mixer config in ${alsastatedir}/asound.state, you have to unmute your card!"
|
||||
eend 0
|
||||
return 0
|
||||
fi
|
||||
|
||||
local cards="$(sed -n -e 's/ *\([[:digit:]]*\) .*/\1/p' /proc/asound/cards)"
|
||||
local CARDNUM
|
||||
for cardnum in ${cards}; do
|
||||
[ -e /dev/snd/controlC${cardnum} ] || sleep 2
|
||||
[ -e /dev/snd/controlC${cardnum} ] || sleep 2
|
||||
[ -e /dev/snd/controlC${cardnum} ] || sleep 2
|
||||
[ -e /dev/snd/controlC${cardnum} ] || sleep 2
|
||||
alsactl -E HOME="${alsahomedir}" -I -f "${alsastatedir}/asound.state" restore ${cardnum} \
|
||||
|| ewarn "Errors while restoring defaults, ignoring"
|
||||
done
|
||||
|
||||
for ossfile in "${alsastatedir}"/oss/card*_pcm* ; do
|
||||
[ -e "${ossfile}" ] || continue
|
||||
# We use cat because I'm not sure if cp works properly on /proc
|
||||
local procfile=${ossfile##${alsastatedir}/oss}
|
||||
procfile="$(echo "${procfile}" | sed -e 's,_,/,g')"
|
||||
if [ -e /proc/asound/"${procfile}"/oss ] ; then
|
||||
cat "${ossfile}" > /proc/asound/"${procfile}"/oss
|
||||
fi
|
||||
done
|
||||
|
||||
eend 0
|
||||
}
|
||||
|
||||
save() {
|
||||
ebegin "Storing ALSA Mixer Levels"
|
||||
|
||||
checkpath -q -d -m 0700 -o root:root ${alsahomedir} || return 1
|
||||
|
||||
mkdir -p "${alsastatedir}"
|
||||
if ! alsactl -E HOME="${alsahomedir}" -f "${alsastatedir}/asound.state" store; then
|
||||
eerror "Error saving levels."
|
||||
eend 1
|
||||
return 1
|
||||
fi
|
||||
|
||||
for ossfile in /proc/asound/card*/pcm*/oss; do
|
||||
[ -e "${ossfile}" ] || continue
|
||||
local device=${ossfile##/proc/asound/} ; device=${device%%/oss}
|
||||
device="$(echo "${device}" | sed -e 's,/,_,g')"
|
||||
mkdir -p "${alsastatedir}/oss/"
|
||||
cp "${ossfile}" "${alsastatedir}/oss/${device}"
|
||||
done
|
||||
|
||||
eend 0
|
||||
}
|
||||
|
||||
start() {
|
||||
if [ "${RESTORE_ON_START}" = "yes" ]; then
|
||||
restore
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
if [ "${SAVE_ON_STOP}" = "yes" ]; then
|
||||
save
|
||||
fi
|
||||
return 0
|
||||
}
|
38
modprobe.d/._cfg0000_alsa.conf
Normal file
38
modprobe.d/._cfg0000_alsa.conf
Normal file
@ -0,0 +1,38 @@
|
||||
# Alsa kernel modules' configuration file.
|
||||
|
||||
# ALSA portion
|
||||
alias char-major-116 snd
|
||||
# OSS/Free portion
|
||||
alias char-major-14 soundcore
|
||||
|
||||
##
|
||||
## IMPORTANT:
|
||||
## You need to customise this section for your specific sound card(s)
|
||||
## and then run `update-modules' command.
|
||||
## Read alsa-driver's INSTALL file in /usr/share/doc for more info.
|
||||
##
|
||||
## ALSA portion
|
||||
## alias snd-card-0 snd-interwave
|
||||
## alias snd-card-1 snd-ens1371
|
||||
## OSS/Free portion
|
||||
## alias sound-slot-0 snd-card-0
|
||||
## alias sound-slot-1 snd-card-1
|
||||
##
|
||||
|
||||
# OSS/Free portion - card #1
|
||||
alias sound-service-0-0 snd-mixer-oss
|
||||
alias sound-service-0-1 snd-seq-oss
|
||||
alias sound-service-0-3 snd-pcm-oss
|
||||
alias sound-service-0-8 snd-seq-oss
|
||||
alias sound-service-0-12 snd-pcm-oss
|
||||
## OSS/Free portion - card #2
|
||||
## alias sound-service-1-0 snd-mixer-oss
|
||||
## alias sound-service-1-3 snd-pcm-oss
|
||||
## alias sound-service-1-12 snd-pcm-oss
|
||||
|
||||
alias /dev/mixer snd-mixer-oss
|
||||
alias /dev/dsp snd-pcm-oss
|
||||
alias /dev/midi snd-seq-oss
|
||||
|
||||
# Set this to the correct number of cards.
|
||||
options snd cards_limit=1
|
Loading…
Reference in New Issue
Block a user