Skip site navigation (1)Skip section navigation (2)
Date:      3 Oct 2000 08:23:28 -0000
From:      mwm@mired.org
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   conf/21722: The mixer settings are lost on sysetm reboot.s
Message-ID:  <20001003082328.3172.qmail@guru.mired.org>

next in thread | raw e-mail | index | archive | help

>Number:         21722
>Category:       conf
>Synopsis:       The mixer settings are lost on sysetm reboot.s
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Oct 03 01:30:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Mike Meyer
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
Meyer Consulting
>Environment:

	A system with at least one sound card.

>Description:

	The system mixer settings - possibly carefully tuned by the user -
	are lost whenever the system goes through a hard shutdown.

>How-To-Repeat:

	Reboot your system so that the mixer settings are at the default
	values. Find a line input source that's not acceptable at those
	values, and adjust the mixer settings. Now reboot again, and notice
	that the values you had saved were gone.

>Fix:

The following patch (apply in /etc) adds an rc.conf knob to save the
mixer settings in /var/db on shutdown, and restore from those files on
restart.

And I forgot to test the "mixer numbers" case, but shutting down now
to do it would lose the PR entry, so...

--- rc	Tue Oct  3 03:14:55 2000
+++ /etc/rc	Tue Oct  3 03:10:50 2000
@@ -276,6 +276,19 @@
 	;;
 esac
 
+#
+# If we have saved mixer state and the user wants it restored, do it.
+#
+case ${mixer_devices} in
+[Nn][Oo] | '')
+	;;
+*)
+	for settings in /var/db/mixer*.settings; do
+		mixer -f `echo $settings | sed -e 's/.settings//' -e 's;/var/db;/dev;'` `cat $settings` >/dev/null
+	done
+	;;
+esac
+		
 # Remove X lock files, since they will prevent you from restarting X11
 # after a system crash.
 #
--- rc.shutdown	Tue Oct  3 03:14:55 2000
+++ /etc/rc.shutdown	Tue Oct  3 03:09:30 2000
@@ -43,6 +43,25 @@
 	;;
 esac
 
+# Save the mixer settings - if the user wants it.
+#
+case ${mixer_devices} in
+[Nn][Oo] | '')
+	;;
+[Yy][Ee][Ss])
+	echo "Saving mixer settings."
+	rm /var/db/mixer*.settings
+	/usr/sbin/mixer -s > /var/db/mixer.settings
+	;;
+*)
+	echo "Saving mixer settings."
+	rm /var/db/mixer*.settings
+	for dev in ${mixer_devices}; do
+		/usr/sbin/mixer -f /dev/mixer${dev} -s > /var/db/mixer${dev}.settings
+	done
+	;;
+esac
+
 # Check if /var/db/mounttab is clean.
 case $1 in
 reboot)
--- defaults/rc.conf	Fri Sep  1 08:37:25 2000
+++ /etc/defaults/rc.conf	Tue Oct  3 02:31:22 2000
@@ -298,6 +298,7 @@
 start_vinum=""		# set to YES to start vinum
 entropy_file="/var/db/entropy"
 			# Set to NO to disable caching entropy through reboots
+mixer_devices="NO"	# NO to disable saving, YES for /dev/mixer, or list of mixer numbers
 
 ##############################################################
 ### Define source_rc_confs, the mechanism used by /etc/rc.* ##



>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001003082328.3172.qmail>