diff --git a/openwrt/target/linux/Config.in b/openwrt/target/linux/Config.in index f5cf16679fe..402c1573f11 100644 --- a/openwrt/target/linux/Config.in +++ b/openwrt/target/linux/Config.in @@ -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" diff --git a/openwrt/target/linux/control/kmod-usb-audio.control b/openwrt/target/linux/control/kmod-usb-audio.control index 31f35728f37..367c5905702 100644 --- a/openwrt/target/linux/control/kmod-usb-audio.control +++ b/openwrt/target/linux/control/kmod-usb-audio.control @@ -3,4 +3,5 @@ Priority: optional Section: sys Maintainer: David Collett Source: buildroot internal +Depends: kmod-soundcore Description: Kernel Support for USB Soundcards diff --git a/openwrt/target/linux/linux-2.4/Makefile b/openwrt/target/linux/linux-2.4/Makefile index e5e25d6ab74..9c56a0b2b4b 100644 --- a/openwrt/target/linux/linux-2.4/Makefile +++ b/openwrt/target/linux/linux-2.4/Makefile @@ -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 \ diff --git a/openwrt/target/linux/package/Config.in b/openwrt/target/linux/package/Config.in index b08debb777b..2425f422365 100644 --- a/openwrt/target/linux/package/Config.in +++ b/openwrt/target/linux/package/Config.in @@ -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" diff --git a/openwrt/target/linux/package/Makefile b/openwrt/target/linux/package/Makefile index d1cf0f78327..72eea1f6917 100644 --- a/openwrt/target/linux/package/Makefile +++ b/openwrt/target/linux/package/Makefile @@ -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 index 00000000000..5396542d10c --- /dev/null +++ b/openwrt/target/linux/package/alsa/Config.in @@ -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 index 00000000000..16b9aed29f7 --- /dev/null +++ b/openwrt/target/linux/package/alsa/Makefile @@ -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 index 00000000000..6b16c8c5862 --- /dev/null +++ b/openwrt/target/linux/package/alsa/files/alsa.modules @@ -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 index 00000000000..8868c2fdb48 --- /dev/null +++ b/openwrt/target/linux/package/alsa/ipkg/kmod-alsa.control @@ -0,0 +1,7 @@ +Package: kmod-alsa +Priority: optional +Section: kernel +Maintainer: OpenWrt Developers Team , David Collett +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 index 00000000000..08ed6ad28cc --- /dev/null +++ b/openwrt/target/linux/package/alsa/patches/100-kernel_cflags.patch @@ -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