to guess what GNU/Linux distribution you're running, and will act accordingly
to the standards of that distribution, if specific support is available.
.PP
-Alsaconf will write a modutils snippet which can be then used by modutils
+Alsaconf will write a module-init-tools (or modutils) snippet which can be then used by module-init-tools (or modutils)
to load the correct parameters for your sound card.
.SH OPTIONS
Alsaconf accepts the following options:
.TP
.B \-l, \-\-legacy
-Check only for legacy non-isapnp cards
+Check only for legacy non-isapnp cards.
.TP
.B \-m, \-\-modinfo
Read module descriptions instead of reading a card database.
.TP
.B \-s, \-\-sound\-wav\-file
-Use the specified wav file as a test sound
+Use the specified wav file as a test sound.
.TP
.B \-u, \-\-uid uid
-Set the uid for the ALSA devices (default = 0)
+Set the uid for the ALSA devices (default = 0).
+This option is obsolete in the recent ALSA version.
.TP
.B \-g, \-\-gid gid
-Set the gid for the ALSA devices (default = 0)
+Set the gid for the ALSA devices (default = 0).
+This option is obsolete in the recent ALSA version.
.TP
.B \-d, \-\-devmode mode
-Set the device mode for the ALSA devices (default = 0666)
+Set the device mode for the ALSA devices (default = 0666).
+This option is obsolete in the recent ALSA version.
.TP
.B \-r, \-\-strict
-Set strict device mode (equiv. with -g 17 -d 0660)
+Set strict device mode (equiv. with -g 17 -d 0660).
+This option is obsolete in the recent ALSA version.
.TP
-.B \-L, \-\-log
-Logging on /tmp/alsaconf.log
+.B \-L, \-\-log file
+Logging on the given file. The log is appended to the file.
+This option is for debugging purpose only.
.TP
.B \-p, \-\-probe card-name
-Probe a legacy non-isapnp card and print module options
+Probe a legacy non-isapnp card and print module options.
+.TP
+.B \-P, \-\-listprobe
+List the supported legacy card modules.
+.TP
+.B \-c, \-\-config file
+Specify the module config file.
+As default,
+.B alsaconf
+probes the available config file automatically.
.TP
.B \-h, \-\-help
-Displays this help text
+Displays this help text.
.SH DEBIAN SPECIFIC
In Debian, the default gid of the device files is 29 (corresponding to the
echo " -d|--devmode mode"
echo " set the permission for ALSA devices (default = 0666) [obs.]"
echo " -r|--strict set strict device mode (equiv. with -g 17 -d 0660) [obsoleted]"
- echo " -L|--log logging on $LOGFILE"
+ echo " -L|--log file logging on the specified file (for debugging purpose only)"
echo " -p|--probe card-name"
echo " probe a legacy non-isapnp card and print module options"
echo " -P|--listprobe list the supported legacy card modules"
- echo " -c|--config specify the module config file"
+ echo " -c|--config file"
+ echo " specify the module config file"
echo " -h|--help what you're reading"
exit 1
}
-OPTS=`getopt -o lmLhp:Pu:g:d:rs:c: --long legacy,modinfo,log,help,probe,listprobe,uid,gid,devmode,strict,sound,config -n alsaconf -- "$@"` || exit 1
+OPTS=`getopt -o lmL:hp:Pu:g:d:rs:c: --long legacy,modinfo,log:,help,probe:,listprobe,uid:,gid:,devmode:,strict,sound:,config: -n alsaconf -- "$@"` || exit 1
eval set -- "$OPTS"
do_legacy_only=0
use_modinfo_db=0
-do_logging=0
alsa_uid=0
alsa_gid=0
alsa_mode=0666
legacy_probe_card=""
-LOGFILE="/tmp/alsaconf.log"
+LOGFILE=""
TESTSOUND="@TESTSOUND@"
try_all_combination=0
-h|--help)
usage; exit 1 ;;
-L|--log)
- do_logging=1; rm -f $LOGFILE; shift;;
+ LOGFILE="$2"; shift 2;;
-p|--probe)
legacy_probe_card="$2"; shift 2;;
-P|--listprobe)
/^[<literal space><literal tab>]*PCI: /{
gsub(/0x/, "");
gsub(/=/, ":");
- x = sprintf ("'$lspci' -n 2>/dev/null| grep '"'Class 040?'"' | grep %s", $2);
+ x = sprintf ("'$lspci' -n 2>/dev/null| grep '"'Class 040.'"' | grep %s", $2);
if (system (x) == 0)
printf "%s %s\n", $2, driver >>"'"$FOUND"'"
}
# check playback
# return 0 - OK, 1 - NG, 2 - not working (irq/dma problem)
ac_try_load () {
- test $do_logging = 1 && echo "$1 ${*:2}" >> $LOGFILE
+ test -n "$LOGFILE" && echo "$1 ${*:2}" >> "$LOGFILE"
/sbin/modprobe snd-$1 ${*:2} >/dev/null 2>&1
if $lsmod | grep -E '^(snd-|snd_)'$1' ' >/dev/null 2>&1; then
: ;
/sbin/modprobe -r snd-$1 >/dev/null 2>&1
if [ $st = 0 ]; then
# irq problem?
- test $do_logging = 1 && echo "no playback return" >> $LOGFILE
+ test -n "$LOGFILE" && echo "no playback return" >> "$LOGFILE"
return 2
else
# seems ok!
- test $do_logging = 1 && echo "playback OK" >> $LOGFILE
+ test -n "$LOGFILE" && echo "playback OK" >> "$LOGFILE"
return 0
fi
}
# return 0 - OK, 1 - NG, 2 - not working (irq/dma problem)
# ac_try_capture card duplex opts
ac_try_capture () {
- test $do_logging = 1 && echo "$1 ${*:2}" >> $LOGFILE
+ test -n "$LOGFILE" && echo "$1 ${*:2}" >> "$LOGFILE"
/sbin/modprobe snd-$1 ${*:3} >/dev/null 2>&1
if $lsmod | grep -E '^(snd-|snd_)'$1' ' >/dev/null 2>&1; then
: ;
test $play_pid != 0 && kill -9 $play_pid
/sbin/modprobe -r snd-$1 >/dev/null 2>&1
if [ $st = 0 ]; then
- test $do_logging = 1 && echo "capture no return" >> $LOGFILE
+ test -n "$LOGFILE" && echo "capture no return" >> "$LOGFILE"
return 2
else
- test $do_logging = 1 && echo "capture OK" >> $LOGFILE
+ test -n "$LOGFILE" && echo "capture OK" >> "$LOGFILE"
return 0
fi
}
return 1
fi
elif [ $result = 0 ]; then
- test $do_logging = 1 && echo "Now checking capture..." >> $LOGFILE
+ test -n "$LOGFILE" && echo "Now checking capture..." >> "$LOGFILE"
ac_opts="$opts"
ac_try_capture $1 yes $opts >/dev/null 2>&1 && return 0
for d in yes no; do
# main part continued..
#
+if test -n "$LOGFILE" ; then
+ touch "$LOGFILE"
+ echo -n "Starting alsaconf: " >> "$LOGFILE"
+ date >> "$LOGFILE"
+fi
+
if [ x"$legacy_probe_card" != x ]; then
ac_opts=""
if eval ac_try_card_$legacy_probe_card >/dev/null 2>&1; then