pavement

Sound card: checking drivers

From FreeBSDwiki
Revision as of 01:40, 12 November 2015 by Sidetone (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

If you aren't sure which individual driver your sound card requires, you may find this shell script useful - it will iterate through each driver present in your system, check each to see if it works, and let you know what it found out when it's done.


 #!/bin/sh
 
 # Copyright (c) 2004, Romain TARTIERE <romain-tartiere@astase.com>
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
 # are met:
 # 1. Redistributions of source code must retain the above copyright
 #    notice unmodified, this list of conditions, and the following
 #    disclaimer.
 # 2. Redistributions in binary form must reproduce the above copyright
 #    notice, this list of conditions and the following disclaimer in the
 #    documentation and/or other materials provided with the distribution.
 #
 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 # Root ?
 expr `id -u` = 0 > /dev/null || {
 	echo "Error: This utility should only be run as root."
 	exit 1
 }
 
 # Any driver loaded ?
 kldstat | grep 'snd_*' > /dev/null 2>&1 && {
 	echo "Error: No sound driver should be loaded."
 	exit 1
 }
 
 cd /boot/kernel
 
 Result='';		# Drivers that do something
 Cnt=`ls snd_* | wc -l`	# Drivers count
 
 echo -n '[Trying sound drivers -' $Cnt 'drivers found '
 for i in snd_*
 do
 	echo -n '.'
 	kldload $i
 	[ -e /dev/audio0.0 ] && Result="$Result $i"
 	kldunload $i
 done
 echo ' done]'
 
 # Print result
 echo "===> Usable sound driver(s) : $Result"
 
 # That's all folks !
Personal tools