Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag
#!/bin/sh
# Load the mixer settings and OSS compatibility (if enabled) for ALSA.
# (the Advanced Linux Sound Architecture)

# A function to load the ALSA mixer settings:
load_alsa_mixer() {
  if [ -r /var/lib/alsa/asound.state ]; then
    echo "Loading ALSA mixer settings:  /usr/sbin/alsactl restore"
    /usr/sbin/alsactl restore

# OMAP5 uEVM (Panda5) board:
    amixer -c 1 -s -q <<EOF
cset name='Headset Left Playback' 1
cset name='Headset Right Playback' 1
cset name='Headset Playback Volume' 12
cset name='DL1 PDM Switch' 1
cset name='Sidetone Mixer Playback' 1
cset name='SDT DL Volume' 120
cset name='DL1 Mixer Multimedia' 1
cset name='DL1 Media Playback Volume' 110
sset 'Analog Left',0 'Aux/FM Left'
sset 'Analog Right',0 'Aux/FM Right'
sset 'Aux FM',0 7
sset 'AUDUL Media',0 149
sset 'Capture',0 4
sset MUX_UL00,0 AMic0
sset MUX_UL01,0 AMic1
sset 'AMIC UL',0 120
EOF
  else
    # It's possible a user might not want to set a default sound state.
    # In that case, do this:  touch /var/lib/alsa/no.asound.state
    if [ ! -r /var/lib/alsa/no.asound.state ]; then
      echo "Setting default ALSA mixer settings."
      # set default mixer volumes for ALSA
      # Taken from the alsaconf script.
      amixer -s -q <<EOF
set Master 75% unmute
set Master -12dB
set 'Master Mono' 75% unmute
set 'Master Mono' -12dB
set Front 75% unmute
set Front -12dB
set PCM 90% unmute
set PCM 0dB
mixer Synth 90% unmute
mixer Synth 0dB
mixer CD 90% unmute
mixer CD 0dB
# mute mic
set Mic 0% mute
# ESS 1969 chipset has 2 PCM channels
set PCM,1 90% unmute
set PCM,1 0dB
# Trident/YMFPCI/emu10k1
set Wave 100% unmute
set Music 100% unmute
set AC97 100% unmute
# CS4237B chipset:
set 'Master Digital' 75% unmute
# Envy24 chips with analog outs
set DAC 90% unmute
set DAC -12dB
set DAC,0 90% unmute
set DAC,0 -12dB
set DAC,1 90% unmute
set DAC,1 -12dB
# some notebooks use headphone instead of master
set Headphone 75% unmute
set Headphone -12dB
set Playback 100% unmute
# turn off digital switches
set "SB Live Analog/Digital Output Jack" off
set "Audigy Analog/Digital Output Jack" off
EOF
      echo "Storing default ALSA mixer settings:  /usr/sbin/alsactl store"
      /usr/sbin/alsactl store
    fi
  fi
}

# If udev or something else has loaded the ALSA modules, then
# simply load the mixer settings and make sure the OSS compat
# modules are loaded (if enabled):
if [ -d /proc/asound ]; then
  if [ -x /etc/rc.d/rc.alsa-oss ]; then
    sh /etc/rc.d/rc.alsa-oss
  fi
  load_alsa_mixer
else
  # If there are ALSA modules defined in /etc/modprobe.d/*, but
  # ALSA is not yet loaded, then load the modules now:
  DRIVERS=$(modprobe -c | grep -E "^[[:space:]]*alias[[:space:]]+snd-card-[[:digit:]]" | tr -s "[[:blank:]]" " " | cut -d " " -f 3)
  if [ ! "$DRIVERS" = "" ]; then
    echo "Loading ALSA kernel modules."
    for module in $DRIVERS; do
      modprobe $module
    done
  fi
  # If ALSA is now up, then load the mixer settings and OSS modules (if enabled):
  if [ -d /proc/asound ]; then
    if [ -x /etc/rc.d/rc.alsa-oss ]; then
      sh /etc/rc.d/rc.alsa-oss
    fi
    load_alsa_mixer
  fi
fi