I've attached my first draft attempt at describing how I set up alsa on
my debian testing box for my guillemot maxisound fortissimo using the
ymfpci driver. Here's my todo list which includes some questions I'm
hoping some of you can answer.
TODO: asoundrc section. Is this needed for this card? Where can I get
information on how to set this up for my card?
describe all controls and parameters available for this card and
what
they do. Is this information in the driver source? I know there is
an
alsa ftp site with manufacturer docs on various cards. Where is
that?
recording/playing section. What are the line and mic devices for?
They don't seem to be needed for recording. I just used the
capture
and ADC devices. Is that appropriate? Is there something I
missed in my configuration that would make these work?
Incorporate suggestions from mailing list members.
proof read.
HTML markup for Dave and Patrick's quick toots pages.
enter into the wiki so others can fill in the gaps and make it
applicable to other ymfpci supported cards. Mark Constable has
offered to do this. Mark, I suppose it can't hurt to put this
up on the wiki as is, seeing as how wiki's are all dynamic anyway.
Thanks in advance for any suggestions or answers.
-Eric Rz.
Installing alsa-0.9.0beta12
Debian Testing with Linux 2.4.x
Guillemot Maxisound Fortissimo (ymfpci)
HOWDID
Eric Rzewnicki
First Draft 2002-03-10
TODO: asoundrc section. Is this needed for this card? Where can I get
information on how to set this up for my card?
recording/playing section. What are the line and mic devices for?
They don't seem to be needed for recording. I just used the capture
and ADC devices. Is that appropriate? Is there something I
missed in my configuration that would make these work?
Incorporate suggestions from mailing list members.
HTML markup for Dave and Patrick's quick toots pages.
enter into the wiki so others can fill in the gaps and make it
applicable to other ymfpci supported cards. Mark Constable has
offered to do this. Mark, I suppose it can't hurt to put this
up on the wiki as is, seeing as how wiki's are all dynamic anyway.
DOWNLOAD:
alsa-driver-0.9.0beta12.tar.bz2
alsa-lib-0.9.0beta12.tar.bz2
alsa-utils-0.9.0beta12.tar.bz2
CONFIGURE BUILD ENVIRONMENT:
Create a directory, copy and unpack source:
mkdir /usr/src/alsa-0.9.0beta12/
ln -s /usr/src/alsa-0.9.0beta12/ /usr/src/alsa
cp /directory/where/you/put/alsa-*.bz2 /usr/src/alsa
cd /usr/src/alsa
bunzip2 -v alsa-*.bz2
tar -xvf alsa-lib-0.9.0beta12.tar
tar -xvf alsa-utils-0.9.0beta12.tar
tar -xvf alsa-driver-0.9.0beta12.tar
Make sure "make install" can find System.map:
I am using the Debian make-kpkg system for compiling and installing my kernels.
It does not leave System.map in the kernel source directory. It was necessary
for me to create two symlinks in order for the alsa-driver "make install"
procedure to find my System.map.
cd /boot
ln -s System.map-`uname -r` System.map
cd /usr/src/linux/
ln -s /boot/System.map System.map
Before I made these links "make install" for the drivers would fail at the
depmod stage with an error like this (with `uname -r` here standing in for the
current running kernel):
depmod -a -F /lib/modules/`uname -r`/build/System.map `uname -r`
depmod: Can't read /lib/modules/`uname -r`/build/System.map
I don't think this step is needed if you compiled your kernel with the more
traditional "make dep; make clean; make bzImage; make install; make modules;
make modules_install" chain of commands.
COMPILE AND INSTALL ALSA-DRIVERS:
cd /usr/src/alsa/alsa-driver-0.9.0beta12
Read the INSTALL file. Make sure your kernel has sound support turned on. You
also need to have your configured kernel sources installed.
If you want to pass some options to configure, ./configure --help will show you
what's available. I chose to use the defaults:
./configure
Build the modules and install them in /lib/modules/`uname -r`/kernel/sound/:
make install
Create device nodes in /dev/snd/. (Actually, links to /proc/asound/dev/:
./snddevices
The INSTALL file tells you to edit /etc/modules.conf. On Debian this file is
generated by the update-modules utility based on files in /etc/modutils/.
I added the following lines to /etc/modutils/aliases then ran update-modules:
alias char-major-116 snd
alias snd-card-0 snd-ymfpci
Load the modules into the running kernel:
depmod snd-ymfpci
COMPILE AND INSTALL ALSA-LIB:
This is necessary in order to build and install the alsa-utils.
cd /usr/src/alsa/alsa-lib-0.9.0beta12
./configure
make install
COMPILE AND INSTALL ALSA-UTILS:
Alsa-utils includes alsactl, alsamixer, amixer and aplay. They are useful
tools for testing and working with your soundcard.
cd /usr/src/alsa/alsa-lib-0.9.0beta12
./configure
make install
TESTING RECORD AND PLAYBACK:
I tested recording first through a cheap microphone that plugs directly into
the mic input with a mini-jack and then with a hand-held cassette
recorder/player plugged into the line input via a mini-jack patch cable. I also
tested playback.
Start alsamixer:
alsamixer
Prepare the soundcard for recording from the microphone:
Alsamixer displays an ncurses interface to the various devices within the
soundcard. You can select devices using the left and right arrow keys or n and
p for (n)ext and (p)revious. Level for the selected device can be adjusted with
the up and down arrow keys or w and x. Mute status can be togled with the m key.
Capture status can be togled with the space bar.
Except for Capture and ADC, I muted, turned off capture and set the level to
zero for all devices. Capture and ADC I unmuted and turned all the way up.
Test recording:
arecord -d 30 -f cd -t wav test.wav
This records a file named test.wav of (t)ype wav in cd (f)ormat for a
(d)uration of 30 seconds.
Prepare the soundcard for playback:
Except for Master, PCM and Wave, I muted, turned off capture and set the level
to zero for all devices. Master, PCM and Wave were unmuted and set to the
maximum "green" level.
Test playback:
aplay -f cd test.wav
Prepare the soundcard for duplex recording from line input:
Except for Master, PCM, Capture and ADC, I muted, turned off capture and set the
level to zero for all devices. Master, PCM and Wave were unmuted and set to the
maximum "green" level. This allows the input to play through the speakers while
it is recording.
arecord -d 30 -f cd -t wav testline.wav
Set up the soundcard and test playback the same way as above.
STORING AND RESTORING MIXER SETTINGS:
alsactl allows you to store the current mixer settings to a file and then
restore those settings at a later time. For each mixer scenario described above
you can store the settings in a file and then use that file to set the
soundcard:
Set the devices via alsamixer for recording from the mic as described above.
alsactl -f micrecord.conf store
Set the devices via alsamixer for recording from line input as descrbed above.
alsactl -f linerecord.conf store
Set the devices via alsamixer for playback as described above.
alsactl -f micrecord.conf store
Then you can switch between the different scenarios without using alsamixer:
alsactl -f foo.conf restore
ASOUNDRC CONFIGURATION:
????????