]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/packages/alsa/alsa-driver_0.9.6-hh4c.bb
alsa-driver: move module loading to dedicated init script to work around issues with...
[familiar-h63xx-build.git] / org.handhelds.familiar / packages / alsa / alsa-driver_0.9.6-hh4c.bb
1 DESCRIPTION = "Alsa Drivers"
2 MAINTAINER = "Rene Wagner <rw@handhelds.org>"
3 SECTION = "base"
4 LICENSE = "GPL"
5 PR = "r8"
6
7 DEPENDS += "fakeroot-native virtual/kernel"
8
9 SRC_URI = "ftp://ftp.handhelds.org/packages/alsa-driver/alsa-driver-${PV}.tar.gz \
10         file://sound.p.patch;patch=1 \
11         file://h5400.patch;patch=1 \
12         file://sa11xx.patch;patch=1 \
13         file://adriver.h.patch;patch=1"
14
15 inherit autotools module update-rc.d
16
17 INITSCRIPT_NAME = "alsa-driver"
18 INITSCRIPT_PARAMS = "start 29 S . stop 29 0 6 1 ."
19
20 # avoid miscompilation
21 KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX} ${HOST_CC_ARCH}"
22
23 EXTRA_OECONF = "--with-sequencer=yes \
24         --with-isapnp=no \
25         --with-oss=yes \
26         --with-kernel=${STAGING_KERNEL_DIR} \
27         --with-kernel-version=${KERNEL_VERSION}"
28
29 PACKAGES =+ "${PN}-midi ${PN}-misc"
30 FILES_${PN} = "/lib/modules/*/misc/snd* \
31         ${sysconfdir}/init.d/${INITSCRIPT_NAME}"
32 #       ${sysconfdir}/modutils/*"
33 midi_modules = "snd-seq-midi-emul.o \
34         snd-seq-midi-event.o \
35         snd-seq-midi.o \
36         snd-seq-virmidi.o \
37         snd-seq-oss.o" 
38 FILES_${PN}-midi = "${@' '.join(map ((lambda x: '/lib/modules/*/misc/%s' % x), bb.data.getVar('midi_modules', d).split()))}"
39 misc_modules = "snd-gus-synth.o \
40         snd-emu8000-synth.o \
41         snd-emux-synth.o \
42         snd-ainstr-fm.o \
43         snd-ainstr-gf1.o \
44         snd-ainstr-iw.o \
45         snd-ainstr-simple.o"
46 FILES_${PN}-misc = "${@' '.join(map ((lambda x: '/lib/modules/*/misc/%s' % x), bb.data.getVar('misc_modules', d).split()))}"
47
48 # put in-kernel headers first in the include search path.
49 # without this all configure checks fail
50 CFLAGS =+ "-I${STAGING_KERNEL_DIR}/include"
51
52 do_configure() {
53
54 cards=
55 if egrep "CONFIG_SA1100_H3[168]00=y" "${STAGING_KERNEL_DIR}/.config" ; then
56   cards="$cards,sa11xx-uda1341"
57   familiar_arch=ipaqsa
58 fi
59 if grep "CONFIG_ARCH_H3900=y" "${STAGING_KERNEL_DIR}/.config" ; then
60   cards="$cards,pxa-uda1380,h5400-ak4535"
61   familiar_arch=ipaqpxa
62 fi
63 cards="$cards,bluez-sco,pdaudiocf"
64
65    oe_runconf --with-cards=${cards}
66 }
67
68 autoload_ipaqsa = "snd-sa11xx-uda1341 snd-pcm-oss snd-mixer-oss"
69 autoload_ipaqpxa = "snd-h5400-ak4535 snd-pxa-uda1380 snd-pcm-oss snd-mixer-oss"
70
71 do_install() {
72
73 if egrep "CONFIG_SA1100_H3[168]00=y" "${STAGING_KERNEL_DIR}/.config" ; then
74   autoload="${autoload_ipaqsa}"
75 fi
76 if grep "CONFIG_ARCH_H3900=y" "${STAGING_KERNEL_DIR}/.config" ; then
77   autoload="${autoload_ipaqpxa}"
78 fi
79
80       fakeroot make -k NODEPMOD=yes DESTDIR=${D} install; 
81
82 mkdir -p ${D}${sysconfdir}/init.d
83 cat > ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME} <<EOF
84 #!/bin/sh
85
86 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
87
88 autoload_modules="$autoload"
89
90 case "\$1" in
91   start)
92         echo -n "Loading alsa modules:"
93         for i in \$autoload_modules; do
94                 modprobe \$i && echo -n " \$i"
95         done
96         echo "."
97         ;;
98   stop)
99         echo -n "Unloading alsa modules:"
100         for i in \$autoload_modules; do
101                 modprobe -r \$i && echo -n " \$i"
102         done
103         echo "."
104         ;;
105   restart|force-reload)
106         echo -n "Unloading alsa modules:"
107         for i in \$autoload_modules; do
108                 modprobe -r \$i && echo -n " \$i"
109         done
110         echo "."
111         echo -n "Loading alsa modules:"
112         for i in \$autoload_modules; do
113                 modprobe \$i && echo -n " \$i"
114         done
115         echo "."
116         ;;
117   *)
118         echo "Usage: \$0 {start|stop|restart|force-reload}" >&2
119         exit 1
120         ;;
121 esac
122
123 exit 0
124 EOF
125 chmod 755 ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}
126 }
127