add alsa kernel driver (thanks to David Collet)
authorNicolas Thill <nico@openwrt.org>
Thu, 29 Sep 2005 07:18:31 +0000 (07:18 +0000)
committerNicolas Thill <nico@openwrt.org>
Thu, 29 Sep 2005 07:18:31 +0000 (07:18 +0000)
SVN-Revision: 1997

openwrt/target/linux/Config.in
openwrt/target/linux/control/kmod-usb-audio.control
openwrt/target/linux/linux-2.4/Makefile
openwrt/target/linux/package/Config.in
openwrt/target/linux/package/Makefile
openwrt/target/linux/package/alsa/Config.in [new file with mode: 0644]
openwrt/target/linux/package/alsa/Makefile [new file with mode: 0644]
openwrt/target/linux/package/alsa/files/alsa.modules [new file with mode: 0644]
openwrt/target/linux/package/alsa/ipkg/kmod-alsa.control [new file with mode: 0644]
openwrt/target/linux/package/alsa/patches/100-kernel_cflags.patch [new file with mode: 0644]

index f5cf16679feaed7e478cd3d8d3c41b12994702e8..402c1573f1174d9daea9b543b85caad53930b3ed 100644 (file)
@@ -162,6 +162,13 @@ config BR2_PACKAGE_KMOD_CIFS
        help
          Kernel modules for CIFS support
 
+config BR2_PACKAGE_KMOD_SOUNDCORE
+       tristate "Soundcard support"
+       default n
+       help
+         Base support for soundcards
+         Requires either USB soundcard support (OSS) or ALSA package to be useful
+
 config BR2_PACKAGE_KMOD_USB
        tristate "USB support"
        default m
@@ -228,6 +235,7 @@ config BR2_PACKAGE_KMOD_USB_AUDIO
        tristate "Support for USB soundcards"
        default m
        depends BR2_PACKAGE_KMOD_USB_CONTROLLER
+       select BR2_PACKAGE_KMOD_SOUNDCORE
 
 config BR2_PACKAGE_KMOD_USB_ACM
        tristate "Support for USB modems/isdn controllers"
index 31f35728f375b3c193c12cde87003434d7d92091..367c590570205e3f5475b776174af0ecfe67f485 100644 (file)
@@ -3,4 +3,5 @@ Priority: optional
 Section: sys
 Maintainer: David Collett <daveco@users.sourceforge.net>
 Source: buildroot internal
+Depends: kmod-soundcore
 Description: Kernel Support for USB Soundcards
index e5e25d6ab74208275a9da0f6c0ea2ab6510ae7a2..9c56a0b2b4bf65158b1c6de8412fc3b744de1ed4 100644 (file)
@@ -91,6 +91,9 @@ $(eval $(call KMOD_template,NFS,nfs,\
        $(MODULES_DIR)/kernel/fs/nfs/*.o \
        $(MODULES_DIR)/kernel/net/sunrpc/*.o \
 ,CONFIG_NFS_FS,,30,sunrpc lockd nfs))
+$(eval $(call KMOD_template,SOUNDCORE,soundcore,\
+       $(MODULES_DIR)/kernel/drivers/sound/soundcore.o \
+,CONFIG_SOUND,,30,soundcore))
 $(eval $(call KMOD_template,USB,usb-core,\
        $(MODULES_DIR)/kernel/drivers/usb/usbcore.o \
 ,CONFIG_USB,,50,usbcore))
@@ -128,9 +131,8 @@ $(eval $(call KMOD_template,USB_PRINTER,usb-printer,\
        $(MODULES_DIR)/kernel/drivers/usb/printer.o \
 ,CONFIG_USB_PRINTER,kmod-usb-core,60,printer))
 $(eval $(call KMOD_template,USB_AUDIO,usb-audio,\
-       $(MODULES_DIR)/kernel/drivers/sound/soundcore.o \
        $(MODULES_DIR)/kernel/drivers/usb/audio.o \
-,CONFIG_USB_AUDIO,kmod-usb-core,60,soundcore audio))
+,CONFIG_USB_AUDIO,kmod-soundcore kmod-usb-core,61,audio))
 $(eval $(call KMOD_template,IDE,ide,\
        $(MODULES_DIR)/kernel/drivers/ide/*.o \
        $(MODULES_DIR)/kernel/drivers/ide/*/*.o \
index b08debb777b43f8d83d4f9061529269b76641484..2425f422365dd9c6ce02e2a7753f587145b1a8e9 100644 (file)
@@ -1,6 +1,7 @@
 source "target/linux/package/wlcompat/Config.in"
 source "target/linux/package/diag/Config.in"
 source "target/linux/package/madwifi/Config.in"
+source "target/linux/package/alsa/Config.in"
 source "target/linux/package/fuse/Config.in"
 source "target/linux/package/mini_fo/Config.in"
 source "target/linux/package/shfs/Config.in"
index d1cf0f7832762ca3bb4278b4eb6f5c5a6e69ccea..72eea1f691725c7fe87337fa0a41141542e45e84 100644 (file)
@@ -1,6 +1,7 @@
 # Main makefile for the packages
 include $(TOPDIR)/rules.mk
 
+package-$(BR2_PACKAGE_KMOD_ALSA) += alsa
 package-$(BR2_PACKAGE_KMOD_FUSE) += fuse
 package-$(BR2_PACKAGE_KMOD_MINI_FO) += mini_fo
 package-$(BR2_PACKAGE_KMOD_SHFS) += shfs
@@ -16,6 +17,7 @@ endif
 
 all: compile install
 clean: $(patsubst %,%-clean,$(package-) $(package-y) $(package-m))
+prepare: $(patsubst %,%-prepare,$(package-y) $(package-m))
 compile: $(patsubst %,%-compile,$(package-y) $(package-m))
 install: $(patsubst %,%-install,$(package-y))
 
diff --git a/openwrt/target/linux/package/alsa/Config.in b/openwrt/target/linux/package/alsa/Config.in
new file mode 100644 (file)
index 0000000..5396542
--- /dev/null
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_KMOD_ALSA
+       prompt "kmod-alsa - Alsa Sound Drivers"
+       tristate
+       default m if CONFIG_DEVEL
+       depends BR2_PACKAGE_KMOD_USB_CONTROLLER
+       select BR2_PACKAGE_KMOD_SOUNDCORE
+       help
+         Alsa Drivers for USB Soundcards
diff --git a/openwrt/target/linux/package/alsa/Makefile b/openwrt/target/linux/package/alsa/Makefile
new file mode 100644 (file)
index 0000000..16b9aed
--- /dev/null
@@ -0,0 +1,47 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+include ../../rules.mk
+
+PKG_NAME:=alsa-driver
+PKG_VERSION:=1.0.10rc1
+PKG_RELEASE:=1
+PKG_MD5SUM:=0fb6b4163c3ed8f4930f00791b8a25c1
+
+PKG_SOURCE_URL:=ftp://ftp.alsa-project.org/pub/driver/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_CAT:=bzcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+
+ifeq ($(KERNEL_DIR),)
+KERNEL_DIR:=$(LINUX_DIR)
+endif
+
+include $(TOPDIR)/package/rules.mk
+
+$(eval $(call PKG_template,KMOD_ALSA,kmod-alsa,$(LINUX_VERSION)$(BOARD)+$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH),kernel-$(LINUX_VERSION)-$(BOARD) ($(KERNEL_RELEASE))))
+
+$(PKG_BUILD_DIR)/.configured:  $(PKG_BUILD_DIR)/.prepared
+       (cd $(PKG_BUILD_DIR); \
+               ./configure \
+               --with-kernel=$(KERNEL_DIR) \
+               --with-cross=$(KERNEL_CROSS) \
+               --with-oss=yes \
+               --with-isapnp=no \
+               --with-sequencer=no \
+               --with-cards=usb-audio \
+       );
+       touch $@
+
+$(PKG_BUILD_DIR)/.built:
+       $(MAKE) -C $(PKG_BUILD_DIR)
+       touch $@
+
+$(IPKG_KMOD_ALSA):
+       install -d -m0755 $(IDIR_KMOD_ALSA)/etc/modules.d
+       install -m0644 ./files/alsa.modules $(IDIR_KMOD_ALSA)/etc/modules.d/70-alsa
+       install -d -m0755 $(IDIR_KMOD_ALSA)/lib/modules/$(LINUX_VERSION)
+       install -m0644 $(PKG_BUILD_DIR)/modules/*.o \
+               $(IDIR_KMOD_ALSA)/lib/modules/$(LINUX_VERSION)/
+       $(IPKG_BUILD) $(IDIR_KMOD_ALSA) $(PACKAGE_DIR)
diff --git a/openwrt/target/linux/package/alsa/files/alsa.modules b/openwrt/target/linux/package/alsa/files/alsa.modules
new file mode 100644 (file)
index 0000000..6b16c8c
--- /dev/null
@@ -0,0 +1,10 @@
+snd-page-alloc
+snd
+snd-timer
+snd-pcm
+snd-rawmidi
+snd-usb-lib
+snd-hwdep
+snd-usb-audio
+snd-mixer-oss
+snd-pcm-oss
diff --git a/openwrt/target/linux/package/alsa/ipkg/kmod-alsa.control b/openwrt/target/linux/package/alsa/ipkg/kmod-alsa.control
new file mode 100644 (file)
index 0000000..8868c2f
--- /dev/null
@@ -0,0 +1,7 @@
+Package: kmod-alsa
+Priority: optional
+Section: kernel
+Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>, David Collett <daveco@users.sourceforge.net>
+Source: buildroot internal
+Depends: kmod-usb-audio
+Description: Alsa Drivers for USB Soundcards
diff --git a/openwrt/target/linux/package/alsa/patches/100-kernel_cflags.patch b/openwrt/target/linux/package/alsa/patches/100-kernel_cflags.patch
new file mode 100644 (file)
index 0000000..08ed6ad
--- /dev/null
@@ -0,0 +1,12 @@
+diff -rNu alsa-driver-1.0.9b/Makefile.conf.in alsa-driver-1.0.9b.new/Makefile.conf.in
+--- alsa-driver-1.0.9b/Makefile.conf.in        2005-04-15 23:09:33.000000000 +1000
++++ alsa-driver-1.0.9b.new/Makefile.conf.in    2005-09-04 11:29:15.000000000 +1000
+@@ -53,6 +53,8 @@
+ INCLUDE               = -I$(TOPDIR)/include @EXTRA_INCLUDES@ @KERNEL_INC@
+ CFLAGS                = $(MODFLAGS) $(INCLUDE) $(c_opts) -Wall -Wstrict-prototypes \
+       -fomit-frame-pointer -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common \
++        -mno-abicalls -fno-pic -finline-limit=100000 -mabi=32 -march=mips32 \
++        -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -mlong-calls \
+       -pipe -DALSA_BUILD -nostdinc -iwithprefix include
+ ifdef CONFIG_SND_MVERSION
+ CFLAGS += -DMODVERSIONS -include $(CONFIG_SND_KERNELDIR)/include/linux/modversions.h