diff options
Diffstat (limited to 'meta/recipes-connectivity/bluez')
8 files changed, 240 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/bluez/bluez-dtl1-workaround/02dtl1_cs.sh b/meta/recipes-connectivity/bluez/bluez-dtl1-workaround/02dtl1_cs.sh new file mode 100644 index 0000000000..fefc72e07a --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez-dtl1-workaround/02dtl1_cs.sh @@ -0,0 +1,57 @@ +#!/bin/sh + +case "$1" in + suspend) + if [ "`/sbin/hciconfig`" != "" ]; then + #If hciconfig outputs anything then there's probably a Bluetooth + # CF card in the slot so shut it down. + hcitool dc `hcitool con | grep ACL | sed 's/^.*\([0-9A-F]\{2\}\(:[0-9A-F]\{2\}\)\{5\}\).*$/\1/'` + hciconfig hci0 down + killall hciattach > /dev/null 2>&1 + fi + ;; + + resume) + #check for kernel version + if [ "`uname -r | grep 2.4.`" != "" ]; then + k="o" + elif [ "`uname -r | grep 2.6.`" != "" ]; then + k="ko" + else + exit 0 + fi + + if test -e /sbin/cardctl; then + CARDCTL=/sbin/cardctl + elif test -e /sbin/pccardctl; then + CARDCTL=/sbin/pccardctl + else + exit 0 + fi + + if [ "`lsmod | grep hci_uart`" != "" ]; then + #If the hci_usb module is still loaded then there's a serial based + # Bluetooth CF card in the slot, which only needs a resume to get it going + # again. + rfcomm bind all + $CARDCTL resume + hciconfig hci0 up + else + # only works for nokia dtl1 cards + for f in /lib/modules/`uname -r`/kernel/drivers/bluetooth/dtl1_cs.$k + do + #Enumerate all the self-contained Bluetooth CF card drivers + f=`echo $f | sed 's/\.'$k'$//'` + f=`basename $f` + if [ "`lsmod | grep $f`" != "" ]; then + #If one of these drivers is still loaded, then there is probably + #a non-serial based Bluetooth CF card in the slot that needs + #ejecting and reinserting to get it going again + rfcomm bind all + $CARDCTL eject + $CARDCTL insert + hciconfig hci0 up + fi + done + fi +esac diff --git a/meta/recipes-connectivity/bluez/bluez-dtl1-workaround_1.0.bb b/meta/recipes-connectivity/bluez/bluez-dtl1-workaround_1.0.bb new file mode 100644 index 0000000000..64000b7a5f --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez-dtl1-workaround_1.0.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "A nasty hack for for dtl1-cs driver to workaround suspend/resume." +LICENSE = "GPLv2" +SECTION = "console" +PRIORITY = "optional" +PR = "r1" + +SRC_URI = "file://02dtl1_cs.sh" + +do_install() { + install -d ${D}${sysconfdir}/apm/event.d/ + install -m 0755 ${WORKDIR}/02dtl1_cs.sh ${D}${sysconfdir}/apm/event.d/ +} + +#Package 02dtl1_cs.sh, which is a nasty hack to get dtl1c_cs cards working with suspend/resume +FILES_${PN} += "${sysconfdir}/apm/" + +PACKAGE_ARCH = "all" diff --git a/meta/recipes-connectivity/bluez/bluez-hcidump_1.42.bb b/meta/recipes-connectivity/bluez/bluez-hcidump_1.42.bb new file mode 100644 index 0000000000..4c117281aa --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez-hcidump_1.42.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Linux Bluetooth Stack HCI Debugger Tool." +SECTION = "console" +PRIORITY = "optional" +DEPENDS = "bluez4" +LICENSE = "GPL" +PR = "r0" + +SRC_URI = "http://bluez.sourceforge.net/download/bluez-hcidump-${PV}.tar.gz" +S = "${WORKDIR}/bluez-hcidump-${PV}" + +EXTRA_OECONF = "--with-bluez-libs=${STAGING_LIBDIR} --with-bluez-includes=${STAGING_INCDIR}" + +inherit autotools diff --git a/meta/recipes-connectivity/bluez/bluez4-4.66/bluetooth.conf b/meta/recipes-connectivity/bluez/bluez4-4.66/bluetooth.conf new file mode 100644 index 0000000000..ca5e9e4f2f --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez4-4.66/bluetooth.conf @@ -0,0 +1,16 @@ +<!-- This configuration file specifies the required security policies + for Bluetooth core daemon to work. --> + +<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> +<busconfig> + + <!-- ../system.conf have denied everything, so we just punch some holes --> + + <policy context="default"> + <allow own="org.bluez"/> + <allow send_destination="org.bluez"/> + <allow send_interface="org.bluez.Agent"/> + </policy> + +</busconfig> diff --git a/meta/recipes-connectivity/bluez/bluez4-4.66/fix-dfutool-usb-declaration-mismatch.patch b/meta/recipes-connectivity/bluez/bluez4-4.66/fix-dfutool-usb-declaration-mismatch.patch new file mode 100644 index 0000000000..91c802bc41 --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez4-4.66/fix-dfutool-usb-declaration-mismatch.patch @@ -0,0 +1,19 @@ +# bluez4: add compile patch fixing some usb declaration mismatch +# Author: Michael 'Mickey' Lauer <mickey@vanille-media.de> +# Date: Thu Jan 29 16:52:21 2009 +0000 +# +# Acquired from OpenEmbedded + +Index: bluez-4.27/tools/dfutool.c +=================================================================== +--- bluez-4.27.orig/tools/dfutool.c ++++ bluez-4.27/tools/dfutool.c +@@ -59,7 +59,7 @@ + #endif + + #ifdef NEED_USB_GET_BUSSES +-static inline struct usb_bus *usb_get_busses(void) ++inline struct usb_bus *usb_get_busses(void) + { + return usb_busses; + } diff --git a/meta/recipes-connectivity/bluez/bluez4-4.66/hid2hci_usb_init.patch b/meta/recipes-connectivity/bluez/bluez4-4.66/hid2hci_usb_init.patch new file mode 100644 index 0000000000..ed15fd5a1b --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez4-4.66/hid2hci_usb_init.patch @@ -0,0 +1,33 @@ +# Signed-off-by: Khem Raj <raj.khem@gmail.com> +# +# Use the new usb1 API for usb_init() and check for fails from +# usb_init (). Currently we see a crash on a system which does +# not have USB because usb_init() fails and it cleans up all initialized +# data (e.g. ctx) which is used in subsequent calls to libusb +# We return immediately if usb_init() fails for some reason. + +Index: bluez-4.24/tools/hid2hci.c +=================================================================== +--- bluez-4.24.orig/tools/hid2hci.c 2008-10-25 23:40:34.000000000 -0700 ++++ bluez-4.24/tools/hid2hci.c 2008-12-29 22:06:04.000000000 -0800 +@@ -337,7 +337,7 @@ + int main(int argc, char *argv[]) + { + struct device_info dev[16]; +- int i, opt, num, quiet = 0, mode = HCI; ++ int i, ret, opt, num, quiet = 0, mode = HCI; + + while ((opt = getopt_long(argc, argv, "+01qh", main_options, NULL)) != -1) { + switch (opt) { +@@ -361,8 +361,9 @@ + argc -= optind; + argv += optind; + optind = 0; +- +- usb_init(); ++ ret = libusb_init(); ++ if (ret < 0) ++ return ret; + + num = find_devices(mode, dev, sizeof(dev) / sizeof(dev[0])); + if (num <= 0) { diff --git a/meta/recipes-connectivity/bluez/bluez4-4.66/sbc-thumb.patch b/meta/recipes-connectivity/bluez/bluez4-4.66/sbc-thumb.patch new file mode 100644 index 0000000000..474423670b --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez4-4.66/sbc-thumb.patch @@ -0,0 +1,13 @@ +# Acquired from OpenEmbedded + +--- bluez/sbc/sbc_math.h~ 2008-03-05 20:18:03.000000000 +0000 ++++ bluez/sbc/sbc_math.h 2008-10-27 13:39:27.000000000 +0000 +@@ -59,7 +59,7 @@ + + #define SBC_FIXED_0(val) { val = 0; } + #define MUL(a, b) ((a) * (b)) +-#ifdef __arm__ ++#if defined(__arm__) && !defined(__thumb__) + #define MULA(a, b, res) ({ \ + int tmp = res; \ + __asm__( \ diff --git a/meta/recipes-connectivity/bluez/bluez4_4.66.bb b/meta/recipes-connectivity/bluez/bluez4_4.66.bb new file mode 100644 index 0000000000..7abf0faa65 --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez4_4.66.bb @@ -0,0 +1,72 @@ +DESCRIPTION = "Linux Bluetooth Stack Userland V4" +HOMEPAGE = "http://www.bluez.org" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ + file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \ + file://src/main.c;beginline=1;endline=24;md5=9bc54b93cd7e17bf03f52513f39f926e \ + file://sbc/sbc.c;beginline=1;endline=25;md5=1a40781ed30d50d8639323a184aeb191" +DEPENDS = "gst-plugins-base alsa-lib libusb dbus-glib libnl" + +# For angstrom we want this to replace at least bluez-libs +PROVIDES_append_angstrom = " bluez-utils bluez-libs" + +ASNEEDED = "" + +PR = "r0" + +SRC_URI = "\ + http://www.kernel.org/pub/linux/bluetooth/bluez-${PV}.tar.gz \ + file://fix-dfutool-usb-declaration-mismatch.patch;patch=1 \ + file://sbc-thumb.patch;patch=1 \ + file://bluetooth.conf \ +" +S = "${WORKDIR}/bluez-${PV}" + +inherit autotools +AUTOTOOLS_STAGE_PKGCONFIG = "1" + +EXTRA_OECONF = "\ + --enable-gstreamer \ + --enable-alsa \ + --enable-usb \ + --enable-netlink \ + --enable-tools \ + --enable-bccmd \ + --enable-hid2hci \ + --enable-dfutool \ + --enable-hidd \ + --enable-pandd \ + --enable-dund \ + --disable-cups \ + --enable-test \ + --enable-manpages \ + --enable-configfiles \ + --enable-initscripts \ + --disable-pcmciarules \ +" + +do_install_append() { + install -m 0644 ${S}/audio/audio.conf ${D}/${sysconfdir}/bluetooth/ + install -m 0644 ${S}/network/network.conf ${D}/${sysconfdir}/bluetooth/ + install -m 0644 ${S}/input/input.conf ${D}/${sysconfdir}/bluetooth/ + # at_console doesn't really work with the current state of OE, so punch some more holes so people can actually use BT + install -m 0644 ${WORKDIR}/bluetooth.conf ${D}/${sysconfdir}/dbus-1/system.d/ +} + +PACKAGES =+ "gst-plugin-bluez libasound-module-bluez" + +FILES_gst-plugin-bluez = "${libdir}/gstreamer-0.10/lib*.so" +FILES_libasound-module-bluez = "${libdir}/alsa-lib/lib*.so" +FILES_${PN} += "${libdir}/bluetooth/plugins/*.so" +FILES_${PN}-dev += "\ + ${libdir}/bluetooth/plugins/*.la \ + ${libdir}/alsa-lib/*.la \ + ${libdir}/gstreamer-0.10/*.la \ +" + +FILES_${PN}-dbg += "\ + ${libdir}/bluetooth/plugins/.debug \ + ${libdir}/*/.debug \ +" |