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
Index: rc.alsa
===================================================================
--- rc.alsa	(nonexistent)
+++ rc.alsa	(revision 5)
@@ -0,0 +1,87 @@
+#!/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
+  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