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: ????????