Hello everyone,

Carla Schroder brought up a good point - AstLinux cannot talk to sound cards!

I have used aplay to pipe in MOH from Line-In, etc sources before and that has worked well. I just have never had to do it on AstLinux. Today Carla was trying to figure out how to get chan_oss/chan_alsa to work. No go. I decided to do something about it. The Gumstix buildroot included makefiles for alsa-lib and alsa-util. All I had to do with bump the version, tweak the makefiles, and update a couple of patches. Big thanks to Craig and the everyone else in the Gumstix community. Sharing is caring :)! This support has been included in trunk, and should work for any of the AstLinux target architectures/devices.

I have not yet updated the kernel configs to support ALSA hardware. I'm pretty out of touch with what sound hardware people have out there these days. Which modules should I include?

I'm thinking the various USB sound adapters and the VIA stuff that is included on the mini-itx boards. What other sound adapters would you like to see supported in AstLinux?

--
Kristian Kielhofner
--- Begin Message ---
Revision: 462
          http://svn.sourceforge.net/astlinux/?rev=462&view=rev
Author:   krisk84
Date:     2006-11-17 09:19:05 -0800 (Fri, 17 Nov 2006)

Log Message:
-----------
include userspace ALSA support

Modified Paths:
--------------
    trunk/package/Config.in

Added Paths:
-----------
    trunk/package/alsa-lib/
    trunk/package/alsa-lib/Config.in
    trunk/package/alsa-lib/alsa-lib-libonly.patch
    trunk/package/alsa-lib/alsa-lib.mk
    trunk/package/alsa-utils/
    trunk/package/alsa-utils/Config.in
    trunk/package/alsa-utils/alsa-utils-aplay-amixer-only.patch
    trunk/package/alsa-utils/alsa-utils.mk

Modified: trunk/package/Config.in
===================================================================
--- trunk/package/Config.in     2006-11-15 20:36:16 UTC (rev 461)
+++ trunk/package/Config.in     2006-11-17 17:19:05 UTC (rev 462)
@@ -34,6 +34,8 @@
 source "package/digiumg729/Config.in"
 source "package/chan_misdn/Config.in"
 source "package/vm-messenger/Config.in"
+source "package/alsa-lib/Config.in"
+source "package/alsa-utils/Config.in"
 source "package/apcupsd/Config.in"
 source "package/appweb/Config.in"
 source "package/astmanproxy/Config.in"

Added: trunk/package/alsa-lib/Config.in
===================================================================
--- trunk/package/alsa-lib/Config.in                            (rev 0)
+++ trunk/package/alsa-lib/Config.in    2006-11-17 17:19:05 UTC (rev 462)
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_ALSA-LIB
+       bool "alsa-lib"
+       default n
+       help
+         Install the alsa-lib package
+         http://www.alsa-project.org/
+

Added: trunk/package/alsa-lib/alsa-lib-libonly.patch
===================================================================
--- trunk/package/alsa-lib/alsa-lib-libonly.patch                               
(rev 0)
+++ trunk/package/alsa-lib/alsa-lib-libonly.patch       2006-11-17 17:19:05 UTC 
(rev 462)
@@ -0,0 +1,13 @@
+diff -ur alsa-lib-1.0.13.orig/Makefile.in alsa-lib-1.0.13/Makefile.in
+--- alsa-lib-1.0.13.orig/Makefile.in   2006-09-29 07:44:07.000000000 -0400
++++ alsa-lib-1.0.13/Makefile.in        2006-11-17 12:12:37.000000000 -0500
+@@ -253,8 +253,7 @@
+ target_cpu = @target_cpu@
+ target_os = @target_os@
+ target_vendor = @target_vendor@
+-SUBDIRS = doc include src modules $(am__append_1) $(am__append_2) test \
+-      utils
++SUBDIRS = include src $(am__append_1) $(am__append_2)
+ EXTRA_DIST = ChangeLog INSTALL TODO NOTES configure hgcompile libtool depcomp 
version MEMORY-LEAK
+ AUTOMAKE_OPTIONS = foreign
+ INCLUDES = -I$(top_srcdir)/include

Added: trunk/package/alsa-lib/alsa-lib.mk
===================================================================
--- trunk/package/alsa-lib/alsa-lib.mk                          (rev 0)
+++ trunk/package/alsa-lib/alsa-lib.mk  2006-11-17 17:19:05 UTC (rev 462)
@@ -0,0 +1,100 @@
+#############################################################
+#
+# ALSA lib
+#
+#############################################################
+
+ALSA_LIB_VERSION:=1.0.13
+ALSA_LIB_SOURCE:=alsa-lib-$(ALSA_LIB_VERSION).tar.bz2
+ALSA_LIB_SITE:=ftp://ftp.alsa-project.org/pub/lib/
+ALSA_LIB_CAT:=bzcat
+ALSA_LIB_DIR:=$(BUILD_DIR)/${shell basename $(ALSA_LIB_SOURCE) .tar.bz2}
+ALSA_LIB_BINARY:=libasound.so.2.0.0
+
+$(DL_DIR)/$(ALSA_LIB_SOURCE):
+       $(WGET) -P $(DL_DIR) $(ALSA_LIB_SITE)/$(ALSA_LIB_SOURCE)
+
+$(ALSA_LIB_DIR)/.unpacked: $(DL_DIR)/$(ALSA_LIB_SOURCE)
+       $(ALSA_LIB_CAT) $(DL_DIR)/$(ALSA_LIB_SOURCE) | tar -C $(BUILD_DIR) 
$(TAR_OPTIONS) -
+       toolchain/patch-kernel.sh $(ALSA_LIB_DIR) package/alsa-lib 
alsa-lib*.patch*
+       touch $(ALSA_LIB_DIR)/.unpacked
+
+# Install ALSA libraries to /usr/lib. 
+# TODO: Install configuration files to /etc/alsa instead of /usr/share/alsa.
+$(ALSA_LIB_DIR)/.configured: $(ALSA_LIB_DIR)/.unpacked
+       (cd $(ALSA_LIB_DIR); rm -rf config.cache; \
+               $(TARGET_CONFIGURE_OPTS) \
+               LDFLAGS="-L$(STAGING_DIR)/lib" \
+               CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/include" \
+               ./configure \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_TARGET_NAME) \
+               --build=$(GNU_HOST_NAME) \
+               --prefix=$(STAGING_DIR)/usr \
+               --exec-prefix=$(STAGING_DIR)/usr \
+               --bindir=$(STAGING_DIR)/usr/bin \
+               --sbindir=$(STAGING_DIR)/usr/sbin \
+               --libexecdir=$(STAGING_DIR)/usr/lib \
+               --sysconfdir=$(STAGING_DIR)/etc \
+               --datadir=$(STAGING_DIR)/usr/share \
+               --localstatedir=$(STAGING_DIR)/var \
+               --mandir=$(STAGING_DIR)/usr/man \
+               --infodir=$(STAGING_DIR)/usr/info \
+               --with-pic \
+               --disable-static \
+               --disable-aload \
+               --disable-rawmidi \
+               --disable-hwdep \
+               --disable-seq \
+               --disable-instr \
+       );
+       touch $(ALSA_LIB_DIR)/.configured
+
+# TODO: check against specific binary.
+$(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY): $(ALSA_LIB_DIR)/.configured 
$(TARGET_CC)
+       $(MAKE) CC=$(TARGET_CC) -C $(ALSA_LIB_DIR)
+
+# Install into staging dir, for other packages to build against.
+$(STAGING_DIR)/lib/$(ALSA_LIB_BINARY): 
$(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY)
+       $(MAKE) \
+           prefix=$(STAGING_DIR) \
+           exec_prefix=$(STAGING_DIR) \
+           bindir=$(STAGING_DIR)/bin \
+           sbindir=$(STAGING_DIR)/sbin \
+           libexecdir=$(STAGING_DIR)/lib \
+           datadir=$(STAGING_DIR)/usr/share \
+           sysconfdir=$(STAGING_DIR)/etc \
+           localstatedir=$(STAGING_DIR)/var \
+           libdir=$(STAGING_DIR)/lib \
+           infodir=$(STAGING_DIR)/info \
+           mandir=$(STAGING_DIR)/man \
+           includedir=$(STAGING_DIR)/include \
+       -C $(ALSA_LIB_DIR) install
+# Install into target dir, for utils using shared libraries on target.
+$(TARGET_DIR)/lib/$(ALSA_LIB_BINARY): $(STAGING_DIR)/lib/$(ALSA_LIB_BINARY)
+       install -D -m 0644 $< $@
+       $(STRIP) $@
+       (cd $(TARGET_DIR)/lib; \
+          rm -f libasound.so libasound.so.2 libasound.so.2.0; \
+          ln -s libasound.so.2.0.0 libasound.so; \
+          ln -s libasound.so.2.0.0 libasound.so.2.0; \
+          ln -s libasound.so.2.0.0 libasound.so.2)
+
+alsa-lib: uclibc $(TARGET_DIR)/lib/$(ALSA_LIB_BINARY)
+
+alsa-lib-clean:
+       $(MAKE) -C $(ALSA_LIB_DIR) distclean
+       rm $(ALSA_LIB_DIR)/.configured
+
+alsa-lib-dirclean:
+       rm -rf $(ALSA_LIB_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_ALSA_LIB)),y)
+TARGETS+=alsa-lib
+endif
+

Added: trunk/package/alsa-utils/Config.in
===================================================================
--- trunk/package/alsa-utils/Config.in                          (rev 0)
+++ trunk/package/alsa-utils/Config.in  2006-11-17 17:19:05 UTC (rev 462)
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_ALSA-UTILS
+       bool "alsa-utils"
+       select BR2_PACKAGE_ALSA-LIB
+       default n
+       help
+         Install the alsa-utils package
+         http://www.alsa-project.org/
+

Added: trunk/package/alsa-utils/alsa-utils-aplay-amixer-only.patch
===================================================================
--- trunk/package/alsa-utils/alsa-utils-aplay-amixer-only.patch                 
        (rev 0)
+++ trunk/package/alsa-utils/alsa-utils-aplay-amixer-only.patch 2006-11-17 
17:19:05 UTC (rev 462)
@@ -0,0 +1,12 @@
+diff -ur alsa-utils-1.0.13.orig/Makefile.in alsa-utils-1.0.13/Makefile.in
+--- alsa-utils-1.0.13.orig/Makefile.in 2006-09-29 07:54:55.000000000 -0400
++++ alsa-utils-1.0.13/Makefile.in      2006-11-17 12:15:23.000000000 -0500
+@@ -185,7 +185,7 @@
+ INCLUDES = -I$(top_srcdir)/include
+ @[EMAIL PROTECTED] = 
+ @[EMAIL PROTECTED] = alsamixer
+-SUBDIRS = include alsactl alsaconf $(ALSAMIXER_DIR) amidi amixer aplay iecset 
seq speaker-test utils m4 po
++SUBDIRS = include amixer aplay
+ EXTRA_DIST = config.rpath mkinstalldirs  config.rpath mkinstalldirs ChangeLog 
INSTALL TODO README configure hgcompile depcomp
+ AUTOMAKE_OPTIONS = foreign
+ ACLOCAL_AMFLAGS = -I m4

Added: trunk/package/alsa-utils/alsa-utils.mk
===================================================================
--- trunk/package/alsa-utils/alsa-utils.mk                              (rev 0)
+++ trunk/package/alsa-utils/alsa-utils.mk      2006-11-17 17:19:05 UTC (rev 
462)
@@ -0,0 +1,70 @@
+#############################################################
+#
+# ALSA utils
+#
+#############################################################
+ALSA_UTILS_VERSION:=1.0.13
+ALSA_UTILS_SOURCE:=alsa-utils-$(ALSA_UTILS_VERSION).tar.bz2
+ALSA_UTILS_SITE:=ftp://ftp.alsa-project.org/pub/utils
+ALSA_UTILS_DIR:=$(BUILD_DIR)/${shell basename $(ALSA_UTILS_SOURCE) .tar.bz2}
+ALSA_UTILS_WORKDIR:=$(BUILD_DIR)/alsa-utils-$(ALSA_UTILS_VERSION)
+ALSA_UTILS_BINARY:=aplay
+
+# TODO: Not necessary for new buildroot?
+TAR_OPTIONS:=$(TAR_OPTIONS)
+
+$(DL_DIR)/$(ALSA_UTILS_SOURCE):
+       $(WGET) -P $(DL_DIR) $(ALSA_UTILS_SITE)/$(ALSA_UTILS_SOURCE)
+
+$(ALSA_UTILS_DIR)/.unpacked: $(DL_DIR)/$(ALSA_UTILS_SOURCE)
+       bzcat $(DL_DIR)/$(ALSA_UTILS_SOURCE) | tar -C $(BUILD_DIR) 
$(TAR_OPTIONS) -
+       toolchain/patch-kernel.sh $(ALSA_UTILS_DIR) package/alsa-utils 
alsa-utils*.patch*
+       touch $(ALSA_UTILS_DIR)/.unpacked
+
+# TODO: Check if ncurses is available -- if so, build alsamixer.
+$(ALSA_UTILS_DIR)/.configured: $(ALSA_UTILS_DIR)/.unpacked
+       (cd $(ALSA_UTILS_DIR); rm -rf config.cache; \
+               $(TARGET_CONFIGURE_OPTS) \
+               CFLAGS="$(TARGET_CFLAGS)" \
+               ./configure \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_TARGET_NAME) \
+               --build=$(GNU_HOST_NAME) \
+               --disable-alsatest \
+               --disable-alsamixer \
+               --with-alsa-prefix=$(STAGING_DIR)/lib \
+               --with-alsa-inc-prefix=$(STAGING_DIR)/include \
+               $(DISABLE_NLS) \
+               $(DISABLE_LARGEFILE) \
+       );
+       touch $(ALSA_UTILS_DIR)/.configured
+
+$(ALSA_UTILS_DIR)/$(ALSA_UTILS_BINARY)/$(ALSA_UTILS_BINARY): 
$(ALSA_UTILS_DIR)/.configured
+       $(MAKE) CC=$(TARGET_CC) -C $(ALSA_UTILS_WORKDIR)
+
+# TODO: Only one target -- is that bad?
+$(TARGET_DIR)/usr/bin/$(ALSA_UTILS_BINARY): 
$(ALSA_UTILS_DIR)/$(ALSA_UTILS_BINARY)/$(ALSA_UTILS_BINARY)
+       for i in aplay amixer;do \
+               install -D -m 0755 $(ALSA_UTILS_DIR)/$$i/$$i 
$(TARGET_DIR)/usr/bin/$$i; \
+               $(STRIP) $(TARGET_DIR)/usr/bin/$$i; \
+       done
+       (cd $(TARGET_DIR)/usr/bin;rm -f arecord;ln -s aplay arecord)
+
+alsa-utils: alsa-lib $(TARGET_DIR)/usr/bin/$(ALSA_UTILS_BINARY)
+
+alsa-utils-clean:
+       $(MAKE) -C $(ALSA_UTILS_DIR) distclean
+       rm $(ALSA_UTILS_DIR)/.configured
+
+alsa-utils-dirclean:
+       rm -rf $(ALSA_UTILS_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_ALSA_UTILS)),y)
+TARGETS+=alsa-utils
+endif
+


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Astlinux-commits mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/astlinux-commits

Donations to support AstLinux are graciously accepted via PayPal to [EMAIL 
PROTECTED]

--- End Message ---
_______________________________________________
Astlinux-users mailing list
[email protected]
http://lists.kriscompanies.com/mailman/listinfo/astlinux-users

Donations to support AstLinux are graciously accepted via PayPal to [EMAIL 
PROTECTED]

Reply via email to