ALSA Compilation and Execution errors

Jim McConville jhmc at trilobyte.net
Thu Nov 10 11:46:50 PST 2005


I have compiled  ALSA  as per BLFS -6.1 but cannot successfully execute any  
commands to demonstarte the installation is correct.  To more fully explain 
the situation a Record of the results follows.  Any suggestions for compling 
or troubleshooting the problem would be appreciated.

This record is comprised of four parts:

1. The results of executing alsa "commands" after installation of linux-2.6.13
and alsa version 1.0.9.

2. The pertinent "dev" , "proc" and "etc" files 

3. The configuration files for installation of linux-2.6.13 and alsa-*-1.09.

4. Audio card system information

********************************************************************************
********************************************************************************

PART 1.

TESTS

The following are command line executions that were performed after compiling 
the alsa source files.
All commands were executed by root.

#alsamixer
alsamixer: function snd_ctl_open failed for default: No such file or directory

root:#/amixer set Master 100 unmute
amixer: Mixer attach default error: No such file or directory

root:#/amixer set Center 100 unmute
amixer: Mixer attach default error: No such file or directory

root:#/amixer set PCM 100 unmute
amixer: Mixer attach default error: No such file or directory

root:#/amixer -c 0
amixer: Mixer attach hw:0 error: No such file or directory

root:#/alsactl store
alsactl: get_controls:456: snd_ctl_open error: No such file or directory

root:/etc/rc.d/init.d# ./alsasound restart 
Shutting down sound driver: ALSA lib seq_hw.c:455:(snd_seq_hw_open) open /dev
/snd/seq failed: Is a directory 
can't open sequencer
/usr/sbin/alsactl: get_controls:456: snd_ctl_open error: No such file or
 directory
done
ALSA driver is already running.


root:/etc/rc.d/init.d# ./alsasound stop 
Shutting down sound driver: ALSA lib seq_hw.c:455:(snd_seq_hw_open) open /dev
/snd/seq failed: Is a directory
can't open sequencer
/usr/sbin/alsactl: get_controls:456: snd_ctl_open error: No such file or 
directory
done


root:/etc/rc.d/init.d# ./alsasound start 
ALSA driver is already running.


root:/# speaker-test -Dplug:front -c2
ALSA lib confmisc.c:560:(snd_determine_driver) could not open control for card 
0
ALSA lib conf.c:2686:(snd_config_hooks_call) function 
snd_config_hook_load_for_
all_cards returned error: No such file or directory
ALSA lib pcm.c:1959:(snd_pcm_open_conf) Invalid type for PCM front definition 
(id: front, value: cards.pcm.front)
## (The last entry is continually repeated)
## END speaker-test


root:/# aplay -D test.wav
ALSA lib pcm.c:2090:(snd_pcm_open_noupdate) Unknown PCM test.wav
aplay: main:533: audio open error: No such file or directory


root:/# aplay -D default
aplay: main:533: audio open error: No such file or directory
## End aplay -D default



root:/# aplay -L
PCM list:
hw {
	@args.0 CARD
	@args.1 DEV
	@args.2 SUBDEV
	@args.CARD {
		type string
		default {
			@func getenv
			vars {
				0 ALSA_PCM_CARD
				1 ALSA_CARD
			}
			default {
				@func refer
				name 'defaults.pcm.card'
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars {
				0 ALSA_PCM_DEVICE
			}
			default {
				@func refer
				name 'defaults.pcm.device'
			}
		}
	}
	@args.SUBDEV {
		type integer
		default {
			@func refer
			name 'defaults.pcm.subdevice'
		}
	}
	type hw
	card $CARD
	device $DEV
	subdevice $SUBDEV
}
plughw {
	@args.0 CARD
	@args.1 DEV
	@args.2 SUBDEV
	@args.CARD {
		type string
		default {
			@func getenv
			vars {
				0 ALSA_PCM_CARD
				1 ALSA_CARD
			}
			default {
				@func refer
				name 'defaults.pcm.card'
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars {
				0 ALSA_PCM_DEVICE
			}
			default {
				@func refer
				name 'defaults.pcm.device'
			}
		}
	}
	@args.SUBDEV {
		type integer
		default {
			@func refer
			name 'defaults.pcm.subdevice'
		}
	}
	type plug
	slave.pcm {
		type hw
		card $CARD
		device $DEV
		subdevice $SUBDEV
	}
}
plug {
	@args.0 SLAVE
	@args.SLAVE {
		type string
	}
	type plug
	slave.pcm $SLAVE
}
shm {
	@args.0 SOCKET
	@args.1 PCM
	@args.SOCKET {
		type string
	}
	@args.PCM {
		type string
	}
	type shm
	server $SOCKET
	pcm $PCM
}
tee {
	@args.0 SLAVE
	@args.1 FILE
	@args.2 FORMAT
	@args.SLAVE {
		type string
	}
	@args.FILE {
		type string
	}
	@args.FORMAT {
		type string
		default raw
	}
	type file
	slave.pcm $SLAVE
	file $FILE
	format $FORMAT
}
file {
	@args.0 FILE
	@args.1 FORMAT
	@args.FILE {
		type string
	}
	@args.FORMAT {
		type string
		default raw
	}
	type file
	slave.pcm null
	file $FILE
	format $FORMAT
}
null {
	type null
}
cards 'cards.pcm'
front 'cards.pcm.front'
rear 'cards.pcm.rear'
center_lfe 'cards.pcm.center_lfe'
side 'cards.pcm.side'
surround40 'cards.pcm.surround40'
surround41 'cards.pcm.surround41'
surround50 'cards.pcm.surround50'
surround51 'cards.pcm.surround51'
surround71 'cards.pcm.surround71'
iec958 'cards.pcm.iec958'
spdif 'cards.pcm.iec958'
modem 'cards.pcm.modem'
default 'cards.pcm.default'
dmix 'cards.pcm.dmix'
dsnoop 'cards.pcm.dsnoop'
via82xx {
	type hw
	card 0
}
# END aplay -L

********************************************************************************
********************************************************************************

PART 2.

Device, process and system files related to ALSA


root:/#ls -al /dev/snd
lrwxrwxrwx    1 root     root           12 Oct 27 10:54 /dev/snd -> 
/proc/asound

root:/#ls-al /dev/snd
dr-xr-xr-x    5 root     root            0 Oct 31 16:34 .
dr-xr-xr-x   68 root     root            0 Oct 31 06:51 ..
lrwxrwxrwx    1 root     root            5 Nov  1 05:57 V8237 -> card0
dr-xr-xr-x    7 root     root            0 Nov  1 05:57 card0
-r--r--r--    1 root     root            0 Nov  1 05:57 cards
-r--r--r--    1 root     root            0 Nov  1 05:57 devices
dr-xr-xr-x    2 root     root            0 Nov  1 05:57 oss
-r--r--r--    1 root     root            0 Nov  1 05:57 pcm
dr-xr-xr-x    2 root     root            0 Nov  1 05:57 seq
-r--r--r--    1 root     root            0 Nov  1 05:57 timers
-r--r--r--    1 root     root            0 Nov  1 05:57 versioni


root:/#ls -al /dev/snd/card0
dr-xr-xr-x    7 root     root            0 Nov  1 06:17 .
dr-xr-xr-x    5 root     root            0 Nov  1 06:17 ..
dr-xr-xr-x    2 root     root            0 Nov  1 06:17 codec97#0
-r--r--r--    1 root     root            0 Nov  1 06:17 id
-rw-r--r--    1 root     root            0 Nov  1 06:17 oss_mixer
dr-xr-xr-x    3 root     root            0 Nov  1 06:17 pcm0c
dr-xr-xr-x    6 root     root            0 Nov  1 06:17 pcm0p
dr-xr-xr-x    3 root     root            0 Nov  1 06:17 pcm1c
dr-xr-xr-x    3 root     root            0 Nov  1 06:17 pcm1p
dr--r--r--    1 root     root            0 Nov  1 06:17 via82xx

root:/#ls -al /dev/snd/card0/codec97#0
dr-xr-xr-x    2 root     root            0 Nov  1 06:24 .
dr-xr-xr-x    7 root     root            0 Nov  1 06:24 ..
-r--r--r--    1 root     root            0 Nov  1 06:24 ac97#0-0
-r--r--r--    1 root     root            0 Nov  1 06:24 ac97#0-0+regs

root:/#ls -al /dev/snd/card0/pcm0c
dr-xr-xr-x    3 root     root            0 Nov  1 06:29 .
dr-xr-xr-x    7 root     root            0 Nov  1 06:29 ..
-r--r--r--    1 root     root            0 Nov  1 06:29 info
-rw-r--r--    1 root     root            0 Nov  1 06:29 oss
dr-xr-xr-x    2 root     root            0 Nov  1 06:29 sub0

root:/#ls -al /dev/snd/card0/pcm1c
dr-xr-xr-x    3 root     root            0 Nov  1 06:32 .
dr-xr-xr-x    7 root     root            0 Nov  1 06:32 ..
-r--r--r--    1 root     root            0 Nov  1 06:32 info
-rw-r--r--    1 root     root            0 Nov  1 06:32 oss
dr-xr-xr-x    2 root     root            0 Nov  1 06:32 sub0

root:/#ls -al /dev/snd/card0/pcm1p
dr-xr-xr-x    3 root     root            0 Nov  1 06:32 .
dr-xr-xr-x    7 root     root            0 Nov  1 06:32 ..
-r--r--r--    1 root     root            0 Nov  1 06:32 info
-rw-r--r--    1 root     root            0 Nov  1 06:32 oss
dr-xr-xr-x    2 root     root            0 Nov  1 06:32 sub0


root:/#ls -al /dev/snd/oss
dr-xr-xr-x    2 root     root            0 Nov  1 06:17 .
dr-xr-xr-x    5 root     root            0 Nov  1 06:17 ..
-r--r--r--    1 root     root            0 Nov  1 06:17 devices
-r--r--r--    1 root     root            0 Nov  1 06:17 sndstat

root:/#ls -al /dev/snd/seq
dr-xr-xr-x    2 root     root            0 Nov  1 06:13 .
dr-xr-xr-x    5 root     root            0 Nov  1 06:13 ..
-r--r--r--    1 root     root            0 Nov  1 06:13 clients
-r--r--r--    1 root     root            0 Nov  1 06:13 drivers
-r--r--r--    1 root     root            0 Nov  1 06:13 oss
-r--r--r--    1 root     root            0 Nov  1 06:13 queues
-r--r--r--    1 root     root            0 Nov  1 06:13 timer

root:/#ls -al /dev/aload*
crw-rw----    1 root     audio    116,   0 Aug 17  2004 aloadC0
crw-rw----    1 root     audio    116,  32 Aug 17  2004 aloadC1
crw-rw----    1 root     audio    116,  64 Aug 17  2004 aloadC2
crw-rw----    1 root     audio    116,  96 Aug 17  2004 aloadC3
crw-rw----    1 root     audio    116,   1 Aug 17  2004 aloadSEQ

root:/# less /etc/asound.conf

	pcm.via82xx {
	type hw
	card 0
	}

	ctl.via82xx {
	type hw
	card 0
	}

## END /etc/asound.conf

root:/# less /etc/dev.d/snd/alsa.dev

#!/bin/sh -e
# This script is called by udevd when a change in a device is
# detected, including initial detection upon bootup.
# udevd sets the environment variables ACTION and DEVNAME.

[ "$ACTION" = "add" ] || exit 0
DEV_BASENAME="${DEVNAME##*/}"
N="${DEV_BASENAME#controlC}"
case "$DEV_BASENAME" in
    controlC[0-7])
        x=0
        while [ $x -lt 20 ]; do
            # Wait up to 20 seconds for /usr to be mounted if necessary
            if [ -f /usr/sbin/alsactl ]; then
                /usr/sbin/alsactl restore $N
                exit 0
            fi
            sleep 1
            x=`expr $x + 1`
        done & # Put the while command in the background and continue
    ;;
esac
exit 0

#  END /etc/dev.d/snd/alsa.dev


root:#/less /root/.asoundrc

	pcm.via82xx {
	type hw
	card 0
	}

	ctl.via82xx {
	type hw
	card 0
	}


	pcm.!default {
	type hw
	card 0
	}

	ctl.!default {
	type hw
	card 0
	}

## END /root/.asoundrc

********************************************************************************
********************************************************************************

PART 3.

LINUX INSTALLATION

Installation of linux-2.6.13 was done to update the kernel from linux-2.6.5.

root:/usr/src/linux-2.6.13# make mrproper

root:/usr/src/linux-2.6.13# cp ../linux-2.6.5/.config .
The existing config file was used to avoid the long process of selecting
all of the pertinent options when compiling the new kernel.

root:/usr/src/linux-2.6.13# make menuconfig
##Verified "device file" and "file system" settings.
##Exited and saved the configuration. Excerpts from the .config file follow;

root:/usr/src/linux-2.6.13# less .config (Edited)

#
# Sound
#
CONFIG_SOUND=y

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_RAWMIDI=y
CONFIG_SND_SEQUENCER=y
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=y
CONFIG_SND_VERBOSE_PRINTK=y
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_MPU401_UART=y
CONFIG_SND_VIRMIDI=m


#
# PCI devices
#
CONFIG_SND_AC97_CODEC=y
CONFIG_SND_VIA82XX=y
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_HDA_INTEL is not set

#
# USB devices
#
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_USX2Y is not set

#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set

END of kernel 2.6.13 SND Configuration

root:/usr/src/linux-2.6.13# make all

root:/usr/src/linux-2.6.13# cp arch/i386/boot/bzImage /boot/lfskernel-2.6.13
Note lilo.conf was edited to add a new menu option for selecting the new 
2.6.13 version.

root:/usr/src/linux-2.6.13# make install

root:/usr/src/linux-2.6.13# make modules_install

##END of installation of linux-2.6.13

ALSA INSTALLATION

Installation of ALSA was comprised of executing the following as "root" 
from the appropriate  source directories.

# Configure.alsa-lib-1.0.9/
./configure --enable-static &&
make &&
make install
# End

# Configure.jack-audio-connection-kit-0.100.0 
./configure --prefix=/usr --sysconfdir=/etc \
  --infodir=/usr/share --mandir=/usr/share \
  --with-default-tmpdir=/mnt/ramfs  &&
make &&
make install
# End


# Configure.alsa-plugins-1.0.9
./configure &&
make &&
make install
# End

# Configure.alsa-uitls-1.0.9a 
./configure &&
make &&
make install
# End
Installed the "alsa" bootscripts.


# Configure.alsa-tools-1.0.9
./configure --prefix=/usr &&
make &&
make install
# End
# These commands were used to install alsa-tools, however no "tools" were 
installed:
# None

# Configure.alsa-firmware-1.0.9 
./configure --prefix=/usr &&
make &&
make install
# End

# Configure.alsa-oss-1.0.9 
./configure  &&
make &&
make install
# End

End of installation of alsa-*-1.0.9

********************************************************************************
********************************************************************************

PART 4.

SYSTEM DATA
root:/# lspci | grep audio
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233 AC97 Audio 
Controller (rev 60)

root:/# dmesg | grep -A1 ALSA
ALSA device list:
  #0: VIA 8237 with ALC850 at 0xd800, irq 22

End of system data


Respectfully submitted  for constructive comment,

Jim McConville




More information about the lfs-support mailing list