Installation
------------

IMPORTANT!	Read this if you are installing a separately
		distributed version of this driver.

		Check that your kernel version works with this
		release of the driver (see Readme). Also verify
		that your current kernel version doesn't have more
		recent sound driver version than this one. IT'S HIGHLY
		RECOMMENDED THAT YOU USE THE SOUND DRIVER VERSION THAT
		IS DISTRIBUTED WITH KERNEL SOURCES.

- When installing separately distributed sound driver you should first
  read the above notice. Then try to find proper directory where and how
  to install the driver sources. You should not try to install a separately
  distributed driver version if you are not able to find the proper way
  yourself (in this case use the version that is distributed with kernel
  sources). Remove old version of linux/drivers/sound directory before
  installing new files.

- To build the device files you need to run the enclosed shell script 
  (see below). You need to do this only when installing sound driver
  first time or when upgrading to much recent version than the earlier
  one.

- Configure and compile Linux as normally (remember to include the
  sound support during "make config"). Please refer to kernel documentation
  for instructions about configuring and compiling kernel. File Readme.cards
  contains card specific instructions for configuring this driver for
  use with various soundcards.

Boot time configuration (using lilo and insmod) 
-----------------------------------------------

This information has been removed. Too many users didn't believe
that it's really not necessary to use this method. Please look at
Readme of sound driver version 3.0.1 if you still want to use this method.

Problems
--------

If you have any kind of problems, there is a debugging feature which
could help you to solve the problem. To use it, just execute the
command:

	cat /dev/sndstat 

and look at the output. It should display some useful info about the
driver configuration. If there is no /dev/sndstat 
(/dev/sndstat: No such file or directory), ensure that you have executed the
soundinstall script (at the end of this file).

Common error messages:

- /dev/???????: No such file or directory.
Run the script at the end of this file.

- /dev/???????: No such device.
You are not running kernel which contains the sound driver. When using
modularized sound driver this error means that the sound driver is not
loaded.

- /dev/????: No such device or address.
Sound driver didn't detect suitable card when initializing. Please look at
Readme.cards for info about configuring the driver with your card. Also
check for possible boot (insmod) time error messages in /var/adm/messages.

- Other messages or problems
Please check http://www.4front-tech.com/ossfree for more info.

Hannu Savolainen
hannu@4front-tech.com

----------------- cut here ------------------------------
#!/bin/sh
echo Error: Read the notice in the beginning of this script before executing.
exit -1
Notice! Remove this notice and the above two lines before trying to execute.
        Trying to run this script is normally useless. The device files are
        almost certainly already set up correctly. 
# *****************************************
# * NOTICE!
# *
# * For security reasons read access to /dev/dsp* and /dev/audio* has been
# * disabled from other than root. Otherwise any user may be able to spy
# * what is being talked about near the microphone.
# * This effectively disables audio recording by other than root. In case
# * this capability is required, you should change AUDIOPERMS (below) to 666
# * before executing this script.
# *****************************************
AUDIOPERMS=622
#
#
#
#
# Create the devices
#
#	Mixer devices
#
if [ -e /dev/mixer ]; then 
	rm -f /dev/mixer 
fi

if [ -e /dev/mixer0 ]; then 
	rm -f /dev/mixer0 
fi
 
mknod -m 666 /dev/mixer0 c 14 0
ln -sf /dev/mixer0 /dev/mixer

if [ -e /dev/mixer1 ]; then 
	rm -f /dev/mixer1 
fi
mknod -m 666 /dev/mixer1 c 14 16


#	Sequencer	(14, 1)
#
if [ -e /dev/sequencer ]; then
	rm -f /dev/sequencer
fi
mknod -m 666 /dev/sequencer c 14 1

if [ -e /dev/patmgr0 ]; then
	rm -f /dev/patmgr0
fi
mknod -m 666 /dev/patmgr0 c 14 17
if [ -e /dev/patmgr1 ]; then
	rm -f /dev/patmgr1
fi
mknod -m 666 /dev/patmgr1 c 14 33

	#	music	(14, 8)
	#
	if [ -e /dev/music ]; then
		rm -f /dev/music
	fi

	mknod -m 666 /dev/music c 14 8
	if [ -e /dev/sequencer2 ]; then
		rm -f /dev/sequencer2
	fi
	ln -s /dev/music /dev/sequencer2

#	Midi devices
#
if [ -e /dev/midi ]; then
	rm -f /dev/midi		# Old name. Don't use it
fi
	if [ -e /dev/midi00 ]; then
		rm -f /dev/midi00
	fi
	mknod -m 666 /dev/midi00 c 14 2
	ln -sf /dev/midi00 /dev/midi
	
	if [ -e /dev/midi01 ]; then
		rm -f /dev/midi01
	fi
	mknod -m 666 /dev/midi01 c 14 18
	
	if [ -e /dev/midi02 ]; then
		rm -f /dev/midi02
	fi
	mknod -m 666 /dev/midi02 c 14 34
	
	if [ -e /dev/midi03 ]; then
		rm -f /dev/midi03
	fi
	mknod -m 666 /dev/midi03 c 14 50
#
#	DSP		(14, 3)
#
if [ -e /dev/dsp ]; then
	rm -f /dev/dsp
fi
if [ -e /dev/dsp0 ]; then
	rm -f /dev/dsp0
fi
mknod -m $AUDIOPERMS /dev/dsp0 c 14 3
ln -s /dev/dsp0 /dev/dsp

#
#	DSPW		(14, 5)
#
if [ -e /dev/dspW ]; then
	rm -f /dev/dspW
fi
if [ -e /dev/dspW0 ]; then
	rm -f /dev/dspW0
fi
mknod -m $AUDIOPERMS /dev/dspW0 c 14 5
ln -s /dev/dspW0 /dev/dspW

if [ -e /dev/dspW1 ]; then
	rm -f /dev/dspW1
fi
mknod -m $AUDIOPERMS /dev/dspW1 c 14 37

#
#	SPARC compatible /dev/audio	(14, 4)	
#
if [ -e /dev/audio ]; then
	rm -f /dev/audio
fi
if [ -e /dev/audio0 ]; then
	rm -f /dev/audio0
fi
mknod -m $AUDIOPERMS /dev/audio0 c 14 4
ln -s /dev/audio0 /dev/audio

#
#	DSP1		(14, 19) /dev/dsp for the second soundcard.
#				Also the SB emulation part of the
#				PAS16 card.
#
if [ -e /dev/dsp1 ]; then
	rm -f /dev/dsp1
fi
mknod -m $AUDIOPERMS /dev/dsp1 c 14 19
#
#	SPARC audio1	(14, 20) 
#				/dev/audio for the second soundcard.
#				Also the SB emulation part of the
#				PAS16 card.
#
if [ -e /dev/audio1 ]; then
	rm -f /dev/audio1
fi
mknod -m $AUDIOPERMS /dev/audio1 c 14 20
#
#	/dev/sndstat	(14,6)	For debugging purposes
#
if [ -e /dev/sndstat ]; then
	rm -f /dev/sndstat
fi
mknod -m 666 /dev/sndstat c 14 6
exit 0
