diff --git a/packages/audio/alsa-utils/config/rules.d/40-alsa.rules b/packages/audio/alsa-utils/config/rules.d/40-alsa.rules index 460b6ace2a..be1e35337d 100644 --- a/packages/audio/alsa-utils/config/rules.d/40-alsa.rules +++ b/packages/audio/alsa-utils/config/rules.d/40-alsa.rules @@ -4,7 +4,7 @@ SUBSYSTEM=="snd", GROUP="audio" # ALSA Devices # When a sound device is detected, restore the volume settings -KERNEL=="controlC[0-9]*", NAME="snd/%k", ACTION=="add", RUN+="/usr/sbin/alsactl restore %n" +KERNEL=="controlC[0-9]*", NAME="snd/%k", ACTION=="add", RUN+="/usr/bin/soundconfig" KERNEL=="hw[CD0-9]*", NAME="snd/%k" KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k" KERNEL=="midiC[D0-9]*", NAME="snd/%k" diff --git a/packages/audio/alsa-utils/install b/packages/audio/alsa-utils/install index d1445a3634..1991cc8882 100755 --- a/packages/audio/alsa-utils/install +++ b/packages/audio/alsa-utils/install @@ -9,6 +9,7 @@ PKG_DIR=`find $PACKAGES -type d -name $1` mkdir -p $INSTALL/usr/bin cp $PKG_BUILD/amixer/amixer $INSTALL/usr/bin + cp $PKG_DIR/scripts/soundconfig $INSTALL/usr/bin mkdir -p $INSTALL/usr/sbin cp $PKG_BUILD/alsactl/alsactl $INSTALL/usr/sbin diff --git a/packages/audio/alsa-utils/scripts/soundconfig b/packages/audio/alsa-utils/scripts/soundconfig new file mode 100755 index 0000000000..9f3d080de6 --- /dev/null +++ b/packages/audio/alsa-utils/scripts/soundconfig @@ -0,0 +1,94 @@ +#!/bin/sh +# +# setup alsa (especially the mixer config) + +mixer() { + parm=${3:-on} + amixer sset "$1" "$2" $parm >/dev/null 2>&1 + amixer sset "$1" $parm >/dev/null 2>&1 +} + +( +. /etc/sysconfig + +progress "Setting up sound card" + +if [ -f $HOME/.config/sound.conf ]; then + + alsactl restore -f $HOME/.config/sound.conf + +else + +# set common mixer params + mixer Master 100% + mixer Front 100% + mixer PCM 100% + mixer Synth 100% + +# mute CD, since using digital audio instead + mixer CD 0% mute + +# Only unmute Line and Aux if they are possibly used. + mixer Line 100% + mixer Aux 100% + +# mute mic + mixer Mic 0% mute + +# ESS 1969 chipset has 2 PCM channels + mixer PCM,1 100% + +# Trident/YMFPCI/emu10k1 + mixer Wave 100% + mixer Music 100% + mixer AC97 100% + mixer Surround 90% + mixer 'Surround Digital' 90% + mixer 'Wave Surround' 90% + mixer 'Duplicate Front' 90% + mixer 'Sigmatel 4-Speaker Stereo' 90% + +# CS4237B chipset: + mixer 'Master Digital' 100% + +# DRC + mixer 'Dynamic Range Compression' 90% + +# Envy24 chips with analog outs + mixer DAC 100% + mixer DAC,0 100% + mixer DAC,1 100% + +# some notebooks use headphone instead of master + mixer Headphone 100% + mixer 'Internal Speaker' 0% mute + mixer Playback 100% + + mixer Center 100% + mixer LFE 100% + mixer Center/LFE 100% + +# Intel P4P800-MX (Ubuntu bug #5813) + mixer 'Master Playback Switch' on + +# set digital output mixer params + mixer 'IEC958' 100% on + mixer 'IEC958 Output' 100% + mixer 'IEC958 Coaxial' 100% + mixer 'IEC958 LiveDrive' 100% + mixer 'IEC958 Optical Raw' 100% + mixer 'SPDIF Out' 100% + mixer 'SPDIF Front' 100% + mixer 'SPDIF Rear' 100% + mixer 'SPDIF Center/LFE' 100% + mixer 'Master Digital' 100% + + mixer 'Analog Front' 100% + mixer 'Analog Rear' 100% + mixer 'Analog Center/LFE' 100% + +fi + +)& + +exit 0