Hi folks, after updating alsa-lib (along with alsa-headers, alsa-utils, alsa-tools and alsa-oss) from 1.0.11-r1 to 1.0.12, my ecasound recordings would not work any more. I get this error message: $ ecasound -t:10 -i alsa,delta_in01a -q -o file.wav ALSA lib pcm_direct.c:1391:(snd_pcm_direct_parse_bindings) invalid slave channel number 2 in binding to 2 I'm using a 4-channel ice1712 card from M-Audio, with the following .asoundrc which worked perfectly for several former releases: -- .asoundrc begin -- pcm.ice1712 { type hw card 0 device 0 } # Add a control device for mixer access ctl.ice1712 { type hw card 0 device 0 } pcm.delta_recshared { type dsnoop ipc_key 2736212 # must be unique for all dmix plugins!!!! ipc_key_add_uid yes slave { pcm ice1712 format S32_LE #channels 12 period_size 1024 buffer_size 4096 rate 44100 periods 0 period_time 0 } bindings { 0 0 1 1 2 2 3 3 } } # capture from stereo pair 0-1 pcm.delta_in01a { type plug slave.pcm delta_recshared #slave.channels 4 ttable.0.0 1 ttable.1.1 1 } # capture from stereo pair 0-1 pcm.delta_in01b { type plug slave.pcm delta_recshared #slave.channels 4 ttable.0.0 1 ttable.1.1 1 } # capture from stereo pair 2-3 pcm.delta_in23a { type plug slave.pcm delta_recshared ttable.0.2 1 ttable.1.3 1 } # capture from stereo pair 2-3 pcm.delta_in23b { type plug slave.pcm delta_recshared ttable.0.2 1 ttable.1.3 1 } -- .asoundrc end -- I tried unmasking ecasound 2.4.4 (currently using 2.4.3) and alsa-lib 1.0.13 in all possible combinations, all the same. Only downgrading to alsa 1.0.11-r1 helps. Since I don't see any error in my configuration, I consider it a bug. alsa Changelogs didn't reveal anything helpful to me. Here is my emerge --info: Portage 2.1.1 (default-linux/x86/2006.1/server, gcc-4.1.1, glibc-2.4-r3, 2.6.17-gentoo-r8 i686) ================================================================= System uname: 2.6.17-gentoo-r8 i686 Pentium II (Klamath) Gentoo Base System version 1.12.5 Last Sync: Thu, 19 Oct 2006 09:50:01 +0000 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.3.7, 2.0.30 dev-lang/python: 2.3.5-r2, 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.13-r4 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium2 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config /var/service" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -march=pentium2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distcc distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://gd.tuwien.ac.at/opsys/linux/gentoo/ ftp://gd.tuwien.ac.at/opsys/linux/gentoo/" LINGUAS="" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://einstein.mknet.prv/gentoo-portage" USE="x86 X aac alsa apache2 berkdb bitmap-fonts cdr cli cracklib crypt cups dlloader dri elibc_glibc encode esd exif flac fortran gdbm gif input_devices_evdev input_devices_keyboard input_devices_mouse ipv6 isdnlog jack kernel_linux ladspa ldap libg++ libwww mad mailwrapper mbox mmx mp3 ncurses nls nptl nptlonly oci8 ogg oss pam pcre perl php png ppds pppd python readline recode reflection samba sdl session shorten snmp sox spl sse ssl tcpd tiff truetype truetype-fonts type1-fonts udev unicode usb userland_GNU video_cards_ati video_cards_mach64 video_cards_r128 video_cards_vesa vorbis xinetd xml xorg zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
It seems that you're using the in-kernel alsa-driver of kernel 2.6.17-gentoo. You can check with $ cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.11rc4 (Wed Mar 22 10:27:24 2006 UTC). The versions of alsa-driver and alsa-lib must match. I'm using the in-kernel drivers, too, and therefore need to mask alsa-lib from time to time when the gentoo-sources version is behind. A quick web search confirms the new version for the new kernel: kernel "2.6.18" alsa "1.0.12" Consult http://www.gentoo.org/doc/en/alsa-guide.xml if you'd like to use the separate media-sound/alsa-driver package.
Thanks for the info, that was it. I just never happened to have that problem before, as alsa-lib seems to have been unmasked not before the corresponding kernel. So, users are supposed to mask packages themselves to keep things running? That's unusual. Why not keep the new versions soft-masked until everything fits together? Maik
Ok, I'm now on 2.6.18-gentoo-r2 with alsa 1.0.12 and again have the same problem. This time however, versions should match: # cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50 2006 UTC). I had to revert to 1.0.11 to have ecasound recording with 2.6.18. For the normal version thing, I suggest to add a check to the ebuild that looks if alsa-driver is installed. If not, the matching kernel version is looked up, and if too low, installation is refused. (Which still leaves this new case unresolved.)
More than trying to suggest using alsa-driver I'm afraid I can't do, as kernel team is still suggesting the other way around, and ALSA breaks stuff quite often, not something I can fix :/