mirror of
https://git.yoctoproject.org/poky
synced 2026-04-22 15:32:14 +02:00
bluez: Upgrade to more recent 3.x versions and add bluez 4 from OE
This commit is contained in:
@@ -3,6 +3,7 @@ SECTION = "console"
|
||||
PRIORITY = "optional"
|
||||
DEPENDS = "bluez-libs"
|
||||
LICENSE = "GPL"
|
||||
PR = "r0"
|
||||
|
||||
SRC_URI = "http://bluez.sourceforge.net/download/bluez-hcidump-${PV}.tar.gz"
|
||||
S = "${WORKDIR}/bluez-hcidump-${PV}"
|
||||
@@ -1 +0,0 @@
|
||||
require bluez-libs.inc
|
||||
@@ -1,53 +0,0 @@
|
||||
DESCRIPTION = "Linux Bluetooth Stack Userland Utilities."
|
||||
SECTION = "console"
|
||||
PRIORITY = "optional"
|
||||
DEPENDS = "gstreamer gst-plugins-base bluez-libs-${PV} libusb dbus"
|
||||
PROVIDES = "bluez-utils-dbus"
|
||||
RPROVIDES_${PN} = "bluez-pan bluez-sdp bluez-utils-dbus"
|
||||
RREPLACES_${PN} = "bluez-utils-dbus"
|
||||
RCONFLICTS_${PN} = "bluez-utils-nodbus"
|
||||
LICENSE = "GPL"
|
||||
|
||||
SRC_URI = "http://bluez.sourceforge.net/download/bluez-utils-${PV}.tar.gz \
|
||||
file://hcid.conf "
|
||||
|
||||
# Almost all serial CF cards w/ manfid 0x0000,0x0000 seem to use the bcs protocol
|
||||
# Let's default to that instead of 'any' until further notice...
|
||||
#SRC_URI += " file://default-manfid-0x0-to-bcps.patch;patch=1"
|
||||
|
||||
S = "${WORKDIR}/bluez-utils-${PV}"
|
||||
|
||||
inherit autotools update-rc.d
|
||||
|
||||
INITSCRIPT_NAME = "bluetooth"
|
||||
INITSCRIPT_PARAMS = "defaults 23 19"
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}${base_sbindir} ${D}${base_bindir}/ ${D}${sysconfdir}/apm/event.d/
|
||||
mv ${D}${sbindir}/* ${D}${base_sbindir}/
|
||||
mv ${D}${bindir}/* ${D}${base_bindir}/
|
||||
rmdir ${D}${bindir} ${D}${sbindir}
|
||||
chmod u+s ${D}${base_sbindir}/hciattach ${D}${base_sbindir}/hciconfig
|
||||
install -m 0644 ${WORKDIR}/hcid.conf ${D}${sysconfdir}/bluetooth/
|
||||
# libtool 2.2.2 doesn't put this in a .libs directory
|
||||
if [ -e ${S}/daemon/.libs/passkey-agent ]; then
|
||||
install -m 0755 ${S}/daemon/.libs/passkey-agent ${D}${base_bindir}/
|
||||
else
|
||||
install -m 0755 ${S}/daemon/passkey-agent ${D}${base_bindir}/
|
||||
fi
|
||||
}
|
||||
|
||||
PACKAGES =+ "${PN}-alsa ${PN}-alsa-dev gst-plugin-bluez gst-plugin-bluez-dbg"
|
||||
|
||||
FILES_${PN}-alsa = "${libdir}/alsa-lib/libasound*"
|
||||
FILES_${PN}-alsa-dev += " ${libdir}/alsa-lib/*.la "
|
||||
|
||||
FILES_gst-plugin-bluez = "${libdir}/gstreamer*/libgstblue*.so"
|
||||
FILES_gst-plugin-bluez-dbg = "${libdir}/gstreamer*/.debug/libgstblue*.so"
|
||||
|
||||
#
|
||||
# CUPS support
|
||||
#
|
||||
#PACKAGES =+ " bluez-cups-backend"
|
||||
#FILES_bluez-cups-backend = "${libdir}/cups/backend/bluetooth"
|
||||
#RDEPENDS_bluez-cups-backend = "cups"
|
||||
@@ -1,21 +0,0 @@
|
||||
---
|
||||
scripts/bluetooth.init | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
--- bluez-utils-3.18.orig/scripts/bluetooth.init
|
||||
+++ bluez-utils-3.18/scripts/bluetooth.init
|
||||
@@ -1,6 +1,14 @@
|
||||
#!/bin/sh
|
||||
+### BEGIN INIT INFO
|
||||
+# Provides: bluetooth
|
||||
+# Required-Start: $local_fs $syslog $remote_fs dbus
|
||||
+# Required-Stop: $local_fs $syslog $remote_fs
|
||||
+# Default-Start: 2 3 4 5
|
||||
+# Default-Stop: 0 1 6
|
||||
+# Short-Description: Start bluetooth daemons
|
||||
+### END INIT INFO
|
||||
#
|
||||
# Start/stop the Bluetooth daemons
|
||||
#
|
||||
|
||||
set -e
|
||||
@@ -1,21 +0,0 @@
|
||||
---
|
||||
scripts/bluetooth.init | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
--- bluez-utils-3.18.orig/scripts/bluetooth.init
|
||||
+++ bluez-utils-3.18/scripts/bluetooth.init
|
||||
@@ -47,10 +47,14 @@ case "$1" in
|
||||
echo -n "Stopping $DESC:"
|
||||
killall $DAEMON_NAME > /dev/null 2>&1 || true
|
||||
echo -n " $DAEMON_NAME"
|
||||
echo "."
|
||||
;;
|
||||
+ restart)
|
||||
+ $0 stop
|
||||
+ $0 start
|
||||
+ ;;
|
||||
*)
|
||||
N=/etc/init.d/$NAME
|
||||
echo "Usage: $N {start|stop}" >&2
|
||||
exit 1
|
||||
;;
|
||||
@@ -1,26 +0,0 @@
|
||||
---
|
||||
configure.in | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: bluez-utils-3.18/configure.in
|
||||
===================================================================
|
||||
--- bluez-utils-3.18.orig/configure.in 2007-09-02 17:40:57.000000000 +0100
|
||||
+++ bluez-utils-3.18/configure.in 2007-10-15 11:45:01.000000000 +0100
|
||||
@@ -31,7 +31,16 @@ AC_PATH_ALSA
|
||||
AC_PATH_GSTREAMER
|
||||
AC_PATH_OPENOBEX
|
||||
AC_PATH_OPENSYNC
|
||||
-AC_PATH_HAL
|
||||
+
|
||||
+AC_DEFUN([AC_PATH_HAL], [
|
||||
+ PKG_CHECK_MODULES(HAL, hal >= 0.5.8, hal_found=yes, hal_found=no)
|
||||
+])
|
||||
+
|
||||
+AC_SUBST(HAL_CFLAGS)
|
||||
+AC_SUBST(HAL_LIBS)
|
||||
+
|
||||
+AM_CONDITIONAL(HAL, test "${hal_enable}" = "yes" && test "${hal_found}" = "yes")
|
||||
+
|
||||
AC_PATH_USB
|
||||
AC_PATH_EXPAT
|
||||
AC_PATH_INOTIFY
|
||||
@@ -1,489 +0,0 @@
|
||||
--- bluez-utils-3.1/tools/hciattach.c.orig 2006-07-23 14:02:14.000000000 +0200
|
||||
+++ bluez-utils-3.1/tools/hciattach.c 2006-07-23 14:06:29.000000000 +0200
|
||||
@@ -58,6 +58,8 @@
|
||||
#define HCI_UART_3WIRE 2
|
||||
#define HCI_UART_H4DS 3
|
||||
|
||||
+#include "ti_bts.h"
|
||||
+
|
||||
struct uart_t {
|
||||
char *type;
|
||||
int m_id;
|
||||
@@ -67,6 +69,7 @@
|
||||
int speed;
|
||||
int flags;
|
||||
int (*init) (int fd, struct uart_t *u, struct termios *ti);
|
||||
+ char *bts; /* bluetooth script */
|
||||
};
|
||||
|
||||
#define FLOW_CTL 0x0001
|
||||
@@ -256,6 +259,114 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int brf6150(int fd, struct uart_t *u, struct termios *ti)
|
||||
+{
|
||||
+ bts_t *bfp;
|
||||
+ int i;
|
||||
+ unsigned long vers;
|
||||
+ unsigned char actionbuf[256];
|
||||
+ unsigned char resp[128]; /* Response */
|
||||
+ unsigned long count;
|
||||
+ unsigned short atype;
|
||||
+
|
||||
+ if (u->bts == NULL) /* no script, ignore */
|
||||
+ return 0;
|
||||
+
|
||||
+ bfp = bts_load_script( u->bts, &vers );
|
||||
+ if (bfp == NULL)
|
||||
+ return -1;
|
||||
+
|
||||
+ fprintf( stderr, "Loading BTS script version %lu\n", vers );
|
||||
+
|
||||
+ while ((count = bts_next_action( bfp, actionbuf,
|
||||
+ sizeof actionbuf - 1, &atype )) != 0) {
|
||||
+ if (atype == ACTION_REMARKS) {
|
||||
+ if (actionbuf[0] != 0)
|
||||
+ fprintf( stderr, "%s\n", actionbuf );
|
||||
+ }
|
||||
+ else if (atype == ACTION_SEND_COMMAND) {
|
||||
+#if 0
|
||||
+ fprintf( stderr, "ACTION_SEND_COMMAND: ", (int)atype );
|
||||
+ for (i=0; i<count; i++) {
|
||||
+ fprintf( stderr, "0x%02x ", actionbuf[i] );
|
||||
+ }
|
||||
+ fprintf( stderr, "\n" );
|
||||
+#endif
|
||||
+ int n;
|
||||
+ n = write(fd, actionbuf, count);
|
||||
+ if (n < 0 || n < count) {
|
||||
+ perror("Failed to write TI action command");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ }
|
||||
+ else if (atype == ACTION_WAIT_EVENT) {
|
||||
+ action_wait_t *wait = (action_wait_t *)actionbuf;
|
||||
+#if 0
|
||||
+ fprintf( stderr, "ACTION_WAIT_EVENT: %u msec, %u size, data = ", wait->msec, wait->size );
|
||||
+ for (i=0; i<wait->size; i++) {
|
||||
+ fprintf( stderr, "0x%02x ", wait->data[i] );
|
||||
+ }
|
||||
+ fprintf( stderr, "\n" );
|
||||
+#endif
|
||||
+ usleep(wait->msec); /* seems they give usec, not msec */
|
||||
+ /* Read reply. */
|
||||
+ if ((count = read_hci_event(fd, resp, sizeof resp)) < 0) {
|
||||
+ perror("Failed to read TI command response");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ if (count < wait->size) {
|
||||
+ fprintf( stderr, "TI command response is short.");
|
||||
+ }
|
||||
+ for (i=0; i<wait->size; i++) {
|
||||
+ if (i == 3) continue; /* ignore */
|
||||
+ if (resp[i] != wait->data[i]) {
|
||||
+ fprintf( stderr, "TI command response does not match expected result.\n" );
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ else if (atype == ACTION_SERIAL_PORT_PARAMETERS) {
|
||||
+ action_serial_t *sercmd = (action_serial_t *)actionbuf;
|
||||
+
|
||||
+ /* Set actual baudrate */
|
||||
+ fprintf( stderr,
|
||||
+ "BTS changing baud rate to %u, flow control to %u\n",
|
||||
+ sercmd->baud, sercmd->flow_control );
|
||||
+
|
||||
+ tcflush(fd, TCIOFLUSH);
|
||||
+
|
||||
+ if (sercmd->flow_control)
|
||||
+ ti->c_cflag |= CRTSCTS;
|
||||
+ else
|
||||
+ ti->c_cflag &= ~CRTSCTS;
|
||||
+ if (tcsetattr(fd, TCSANOW, ti) < 0) {
|
||||
+ perror("Can't set port settings");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ u->speed = sercmd->baud;
|
||||
+
|
||||
+ tcflush(fd, TCIOFLUSH);
|
||||
+ if (set_speed(fd, ti, sercmd->baud) < 0) {
|
||||
+ perror("Can't set baud rate");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ }
|
||||
+ else if (atype == ACTION_DELAY) {
|
||||
+ action_delay_t *delay = (action_delay_t *)actionbuf;
|
||||
+ usleep(delay->msec); /* seems they give usec, not msec */
|
||||
+ }
|
||||
+ else {
|
||||
+ fprintf( stderr, "BTS action type = %d: ", (int)atype );
|
||||
+ for (i=0; i<count; i++) {
|
||||
+ fprintf( stderr, "0x%02x ", actionbuf[i] );
|
||||
+ }
|
||||
+ fprintf( stderr, "\n" );
|
||||
+ }
|
||||
+ }
|
||||
+ bts_unload_script( bfp );
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int texas(int fd, struct uart_t *u, struct termios *ti)
|
||||
{
|
||||
struct timespec tm = {0, 50000};
|
||||
@@ -296,15 +407,26 @@
|
||||
} while (resp[4] != cmd[1] && resp[5] != cmd[2]);
|
||||
|
||||
/* Verify manufacturer */
|
||||
- if ((resp[11] & 0xFF) != 0x0d)
|
||||
+ if (resp[11] != 0x0d)
|
||||
fprintf(stderr,"WARNING : module's manufacturer is not Texas Instrument\n");
|
||||
|
||||
/* Print LMP version */
|
||||
- fprintf(stderr, "Texas module LMP version : 0x%02x\n", resp[10] & 0xFF);
|
||||
+ fprintf(stderr, "TI module LMP version : 0x%02x\n", resp[10]);
|
||||
|
||||
/* Print LMP subversion */
|
||||
- fprintf(stderr, "Texas module LMP sub-version : 0x%02x%02x\n", resp[14] & 0xFF, resp[13] & 0xFF);
|
||||
+ fprintf(stderr, "TI module LMP sub-version : 0x%02x%02x\n", resp[14], resp[13]);
|
||||
+ if ((resp[14] >> 2) == 3) {
|
||||
+ int err;
|
||||
+ nanosleep(&tm, NULL);
|
||||
|
||||
+ /* BRF6150 */
|
||||
+ if ((err=brf6150( fd, u, ti )) != 0) {
|
||||
+ fprintf( stderr, "TI script failed (err=%d)\n",
|
||||
+ err );
|
||||
+ return -1;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
nanosleep(&tm, NULL);
|
||||
return 0;
|
||||
}
|
||||
@@ -1103,7 +1225,7 @@
|
||||
{
|
||||
printf("hciattach - HCI UART driver initialization utility\n");
|
||||
printf("Usage:\n");
|
||||
- printf("\thciattach [-n] [-p] [-b] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow]\n");
|
||||
+ printf("\thciattach [-n] [-p] [-b] [-t timeout] [-s initial_speed] [-S bts-script] <tty> <type | id> [speed] [flow|noflow]\n");
|
||||
printf("\thciattach -l\n");
|
||||
}
|
||||
|
||||
@@ -1118,11 +1240,12 @@
|
||||
struct sigaction sa;
|
||||
struct pollfd p;
|
||||
char dev[PATH_MAX];
|
||||
+ char *bts = NULL;
|
||||
|
||||
detach = 1;
|
||||
printpid = 0;
|
||||
|
||||
- while ((opt=getopt(argc, argv, "bnpt:s:l")) != EOF) {
|
||||
+ while ((opt=getopt(argc, argv, "bnpt:s:S:l")) != EOF) {
|
||||
switch(opt) {
|
||||
case 'b':
|
||||
send_break = 1;
|
||||
@@ -1144,6 +1267,10 @@
|
||||
init_speed = atoi(optarg);
|
||||
break;
|
||||
|
||||
+ case 'S':
|
||||
+ bts = optarg;
|
||||
+ break;
|
||||
+
|
||||
case 'l':
|
||||
for (i = 0; uart[i].type; i++) {
|
||||
printf("%-10s0x%04x,0x%04x\n", uart[i].type,
|
||||
@@ -1215,6 +1342,8 @@
|
||||
if (init_speed)
|
||||
u->init_speed = init_speed;
|
||||
|
||||
+ u->bts = bts;
|
||||
+
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
sa.sa_flags = SA_NOCLDSTOP;
|
||||
sa.sa_handler = sig_alarm;
|
||||
--- bluez-utils-3.1/tools/Makefile.am.orig 2006-07-23 14:06:59.000000000 +0200
|
||||
+++ bluez-utils-3.1/tools/Makefile.am 2006-07-23 14:07:18.000000000 +0200
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
noinst_PROGRAMS = hcisecfilter ppporc
|
||||
|
||||
-hciattach_SOURCES = hciattach.c hciattach_st.c
|
||||
+hciattach_SOURCES = hciattach.c hciattach_st.c ti_bts.h ti_bts.c
|
||||
|
||||
hciconfig_SOURCES = hciconfig.c csr.h csr.c
|
||||
hciconfig_LDADD = @BLUEZ_LIBS@ $(top_builddir)/common/libhelper.a
|
||||
--- bluez-utils-3.1/tools/ti_bts.h.orig 2006-07-23 14:07:26.000000000 +0200
|
||||
+++ bluez-utils-3.1/tools/ti_bts.h 2006-07-23 14:07:46.000000000 +0200
|
||||
@@ -0,0 +1,116 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2005 Texas Instruments, Inc.
|
||||
+ * Ported by SDG Systems, LLC
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License version 2 as
|
||||
+ * published by the Free Software Foundation;
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
|
||||
+ * CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
|
||||
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ *
|
||||
+ * ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
|
||||
+ * COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
|
||||
+ * SOFTWARE IS DISCLAIMED.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#ifndef BT_SCRIPT_H
|
||||
+#define BT_SCRIPT_H
|
||||
+
|
||||
+#ifdef __cplusplus
|
||||
+extern "C" {
|
||||
+#endif
|
||||
+
|
||||
+/*
|
||||
+ * Define the interface of Bluetooth Script
|
||||
+ */
|
||||
+
|
||||
+typedef void bts_t;
|
||||
+
|
||||
+
|
||||
+#define ACTION_SEND_COMMAND 1 /* Send out raw data (as is) */
|
||||
+#define ACTION_WAIT_EVENT 2 /* Wait for data */
|
||||
+#define ACTION_SERIAL_PORT_PARAMETERS 3
|
||||
+#define ACTION_DELAY 4
|
||||
+#define ACTION_RUN_SCRIPT 5
|
||||
+#define ACTION_REMARKS 6
|
||||
+
|
||||
+/*
|
||||
+ * Structure for ACTION_SEND_COMMAND
|
||||
+ */
|
||||
+typedef struct tagCActionCommand
|
||||
+{
|
||||
+ unsigned char data[1]; /* Data to send */
|
||||
+} action_command_t;
|
||||
+
|
||||
+/*
|
||||
+ * Structure for ACTION_WAIT_EVENT
|
||||
+ */
|
||||
+typedef struct tagCActionWaitEvent
|
||||
+{
|
||||
+ unsigned long msec; /* in milliseconds */
|
||||
+ unsigned long size;
|
||||
+ unsigned char data[1]; /* Data to wait for */
|
||||
+} action_wait_t;
|
||||
+
|
||||
+
|
||||
+/*
|
||||
+ * Structure for ACTION_SERIAL_PORT_PARAMETERS
|
||||
+ */
|
||||
+typedef struct tagCActionSerialPortParameters
|
||||
+{
|
||||
+ unsigned long baud;
|
||||
+ unsigned long flow_control;
|
||||
+} action_serial_t;
|
||||
+
|
||||
+/* Flow Control Type */
|
||||
+#define FCT_NONE 0
|
||||
+#define FCT_HARDWARE 1
|
||||
+
|
||||
+#define DONT_CHANGE 0xFFFFFFFF /* For both baud rate and flow control */
|
||||
+
|
||||
+
|
||||
+/*
|
||||
+ * Structure for ACTION_DELAY
|
||||
+ */
|
||||
+typedef struct tagCActionDelay
|
||||
+{
|
||||
+ unsigned long msec; /* in milliseconds */
|
||||
+} action_delay_t;
|
||||
+
|
||||
+/*
|
||||
+ * Structure for ACTION_RUN_SCRIPT
|
||||
+ */
|
||||
+typedef struct tagCActionRunScript
|
||||
+{
|
||||
+ char filename[1];
|
||||
+} action_run_t;
|
||||
+
|
||||
+/*
|
||||
+ * Structure for ACTION_REMARKS
|
||||
+ */
|
||||
+typedef struct tagCActionRemarks
|
||||
+{
|
||||
+ char m_szRemarks[1];
|
||||
+} action_remarks_t;
|
||||
+
|
||||
+
|
||||
+const char *cis_create_filename(const unsigned char* cmdparms);
|
||||
+bts_t * bts_load_script(const char* fname, unsigned long* version);
|
||||
+unsigned long bts_next_action(const bts_t* bts_fp, unsigned char* action_buf,
|
||||
+ unsigned long nMaxSize, unsigned short* ptype);
|
||||
+void bts_unload_script(bts_t* bts_fp);
|
||||
+
|
||||
+#ifdef __cplusplus
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+#endif /* BT_SCRIPT_H */
|
||||
+
|
||||
--- bluez-utils-3.1/tools/ti_bts.c.orig 2006-07-23 14:07:28.000000000 +0200
|
||||
+++ bluez-utils-3.1/tools/ti_bts.c 2006-07-23 14:07:46.000000000 +0200
|
||||
@@ -0,0 +1,149 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2005 Texas Instruments, Inc.
|
||||
+ * Ported by SDG Systems, LLC
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License version 2 as
|
||||
+ * published by the Free Software Foundation;
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
|
||||
+ * CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
|
||||
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ *
|
||||
+ * ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
|
||||
+ * COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
|
||||
+ * SOFTWARE IS DISCLAIMED.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include "ti_bts.h"
|
||||
+
|
||||
+#ifndef MAKEWORD
|
||||
+#define MAKEWORD(a, b) ((unsigned short)(((unsigned char)(a)) | ((unsigned short)((unsigned char)(b))) << 8))
|
||||
+#endif
|
||||
+
|
||||
+#define TI_MANUFACTURER_ID 13
|
||||
+
|
||||
+/*
|
||||
+ * Common Init Script specific
|
||||
+ */
|
||||
+const char *
|
||||
+cis_create_filename(const unsigned char* cmdparms)
|
||||
+{
|
||||
+ static char bts_file[50];
|
||||
+
|
||||
+ /* Check for TI's id */
|
||||
+ unsigned short manfid = MAKEWORD(cmdparms[8], cmdparms[9]);
|
||||
+
|
||||
+ if (TI_MANUFACTURER_ID == manfid) {
|
||||
+ unsigned short version = MAKEWORD(cmdparms[10], cmdparms[11]);
|
||||
+
|
||||
+ unsigned short chip = (version & 0x7C00) >> 10;
|
||||
+ unsigned short min_ver = (version & 0x007F);
|
||||
+ unsigned short maj_ver = (version & 0x0380) >> 7;
|
||||
+
|
||||
+ if (0 != (version & 0x8000)) {
|
||||
+ maj_ver |= 0x0008;
|
||||
+ }
|
||||
+
|
||||
+ sprintf( bts_file, "TIInit_%d.%d.%d.bts",
|
||||
+ (int)chip, (int)maj_ver, (int)min_ver);
|
||||
+
|
||||
+ return &bts_file[0];
|
||||
+ }
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+typedef struct tagCHeader
|
||||
+{
|
||||
+ unsigned long magic;
|
||||
+ unsigned long version;
|
||||
+ unsigned char future[24];
|
||||
+} cheader_t;
|
||||
+
|
||||
+
|
||||
+/* The value 0x42535442 stands for (in ASCII) BTSB */
|
||||
+/* which is Bluetooth Script Binary */
|
||||
+#define FILE_HEADER_MAGIC 0x42535442
|
||||
+
|
||||
+
|
||||
+bts_t *
|
||||
+bts_load_script(const char* fname, unsigned long* version)
|
||||
+{
|
||||
+ bts_t* bts = NULL;
|
||||
+ FILE* fp = fopen(fname, "rb");
|
||||
+
|
||||
+ if (NULL != fp) {
|
||||
+ /* Read header */
|
||||
+ cheader_t header;
|
||||
+
|
||||
+ /* Read header */
|
||||
+ if (1 == fread(&header, sizeof(header), 1, fp)) {
|
||||
+ /* Check magic number for correctness */
|
||||
+ if (header.magic == FILE_HEADER_MAGIC) {
|
||||
+ /* If user wants the version number */
|
||||
+ if (NULL != version) {
|
||||
+ *version = header.version;
|
||||
+ }
|
||||
+ bts = (bts_t*)fp;
|
||||
+ }
|
||||
+ }
|
||||
+ /* If failed reading the file, close it */
|
||||
+ if (NULL == bts) {
|
||||
+ fclose(fp);
|
||||
+ }
|
||||
+ }
|
||||
+ return bts;
|
||||
+}
|
||||
+
|
||||
+unsigned long
|
||||
+bts_next_action(const bts_t* bts_fp, unsigned char* action_buf,
|
||||
+ unsigned long nMaxSize, unsigned short* ptype)
|
||||
+{
|
||||
+ unsigned long bytes = 0;
|
||||
+ FILE* fp = (FILE*)bts_fp;
|
||||
+ unsigned char action_hdr[4];
|
||||
+
|
||||
+ if (bts_fp == NULL)
|
||||
+ return 0;
|
||||
+
|
||||
+ /* Each Action has the following: */
|
||||
+ /* UINT16 type of this action */
|
||||
+ /* UINT16 size of rest */
|
||||
+ /* BYTE[] action buffer (for HCI, includes the type byte e.g. 1 for hci command) */
|
||||
+
|
||||
+ if (1 == fread(&action_hdr[0], sizeof(action_hdr), 1, fp)) {
|
||||
+ unsigned short type = *(unsigned short*)&action_hdr[0];
|
||||
+ unsigned short size = *(unsigned short*)&action_hdr[2];
|
||||
+
|
||||
+ if (size <= nMaxSize) {
|
||||
+ int nread = fread(action_buf, sizeof(action_buf[0]), size, fp);
|
||||
+
|
||||
+ if (nread == size) {
|
||||
+ *ptype = type;
|
||||
+ bytes = (unsigned long)size;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return bytes;
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+bts_unload_script(bts_t* bts_fp)
|
||||
+{
|
||||
+ FILE* fp = (FILE*)bts_fp;
|
||||
+
|
||||
+ if (NULL != fp) {
|
||||
+ fclose(fp);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
@@ -21,7 +21,7 @@ options {
|
||||
pairing multi;
|
||||
|
||||
# Default PIN code for incoming connections
|
||||
passkey "BlueZ";
|
||||
passkey "1234";
|
||||
}
|
||||
|
||||
# Default settings for HCI devices
|
||||
@@ -29,7 +29,7 @@ device {
|
||||
# Local device name
|
||||
# %d - device id
|
||||
# %h - host name
|
||||
name "BlueZ (%d)";
|
||||
name "%h (%d)";
|
||||
|
||||
# Local device class
|
||||
class 0x120112;
|
||||
|
||||
@@ -1,20 +1,24 @@
|
||||
require bluez-utils.inc
|
||||
DESCRIPTION = "Linux Bluetooth Stack Userland Utilities."
|
||||
SECTION = "console"
|
||||
PRIORITY = "optional"
|
||||
DEPENDS = "gstreamer gst-plugins-base bluez-libs-${PV} libusb-compat dbus glib-2.0"
|
||||
PROVIDES = "bluez-utils-dbus"
|
||||
RPROVIDES_${PN} = "bluez-pan bluez-sdp bluez-utils-dbus"
|
||||
RREPLACES = "bluez-utils-dbus"
|
||||
RCONFLICTS_${PN} = "bluez-utils-nodbus"
|
||||
LICENSE = "GPL"
|
||||
|
||||
DEPENDS += "glib-2.0"
|
||||
PR = "r4"
|
||||
FILESPATH = "${FILE_DIRNAME}/bluez-utils-${PV}:${FILE_DIRNAME}/bluez-utils"
|
||||
|
||||
# ti patch doesn't apply, people using it should rediff it and send it upstream
|
||||
#SRC_URI += "file://hciattach-ti-bts.patch;patch=1 "
|
||||
S = "${WORKDIR}/bluez-utils-${PV}"
|
||||
|
||||
SRC_URI += "file://allow-no-hal.patch;patch=1 \
|
||||
file://add-init-deps.patch;patch=1 \
|
||||
file://add-restart.patch;patch=1"
|
||||
inherit autotools update-rc.d
|
||||
|
||||
EXTRA_OECONF = " \
|
||||
--enable-bccmd \
|
||||
--enable-hid2hci \
|
||||
--enable-alsa \
|
||||
--disable-cups \
|
||||
--enable-cups \
|
||||
--enable-glib \
|
||||
--disable-sdpd \
|
||||
--enable-network \
|
||||
@@ -25,13 +29,12 @@ EXTRA_OECONF = " \
|
||||
--enable-configfile \
|
||||
--enable-initscripts \
|
||||
--enable-test \
|
||||
--disable-hal \
|
||||
"
|
||||
"
|
||||
|
||||
# The config options are explained below:
|
||||
|
||||
# --enable-obex enable OBEX support
|
||||
# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1
|
||||
# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and om-gtao1
|
||||
# --enable-cups install CUPS backend support
|
||||
# --enable-bccmd install BCCMD interface utility
|
||||
# --enable-avctrl install Audio/Video control utility
|
||||
@@ -62,17 +65,33 @@ EXTRA_OECONF = " \
|
||||
#disable it:
|
||||
# --disable-hid2hci
|
||||
|
||||
OE_LT_RPATH_ALLOW = "any"
|
||||
OE_LT_RPATH_ALLOW[export]="1"
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}${base_sbindir} ${D}${base_bindir}/ ${D}${sysconfdir}/apm/event.d/
|
||||
if [ "${sbindir}" != "${base_sbindir}" ]; then
|
||||
mv ${D}${sbindir}/* ${D}${base_sbindir}/
|
||||
rmdir ${D}${sbindir}
|
||||
fi
|
||||
if [ "${bindir}" != "${base_bindir}" ]; then
|
||||
mv ${D}${bindir}/* ${D}${base_bindir}/
|
||||
rmdir ${D}${bindir}
|
||||
fi
|
||||
chmod u+s ${D}${base_sbindir}/hciattach ${D}${base_sbindir}/hciconfig
|
||||
install -m 0644 ${WORKDIR}/hcid.conf ${D}${sysconfdir}/bluetooth/
|
||||
install -m 0644 ${S}/rfcomm/rfcomm.conf ${D}${sysconfdir}/bluetooth/
|
||||
install -m 0755 ${S}/daemon/.libs/passkey-agent ${D}${base_bindir}/ ||true
|
||||
install -m 0755 ${S}/test/.libs/passkey-agent ${D}${base_bindir}/ ||true
|
||||
}
|
||||
|
||||
|
||||
INITSCRIPT_NAME = "bluetooth"
|
||||
INITSCRIPT_PARAMS = "defaults 23 19"
|
||||
|
||||
|
||||
PACKAGES =+ "${PN}-compat"
|
||||
|
||||
CONFFILES_${PN} = " \
|
||||
${sysconfdir}/bluetooth/hcid.conf \
|
||||
${sysconfdir}/default/bluetooth \
|
||||
"
|
||||
|
||||
CONFFILES_${PN}-compat = " \
|
||||
${sysconfdir}/bluetooth/rfcomm.conf \
|
||||
"
|
||||
|
||||
FILES_${PN} = " \
|
||||
${base_sbindir}/hcid \
|
||||
@@ -89,7 +108,7 @@ FILES_${PN}-dbg += " \
|
||||
${libdir}/bluetooth/.debug \
|
||||
${libdir}/cups/backend/.debug \
|
||||
${libdir}/alsa-lib/.debug \
|
||||
"
|
||||
"
|
||||
|
||||
FILES_${PN}-compat = " \
|
||||
${base_bindir}/sdptool \
|
||||
@@ -108,5 +127,15 @@ FILES_${PN}-compat = " \
|
||||
${base_sbindir}/hid2hci \
|
||||
${base_bindir}/passkey-agent \
|
||||
${sysconfdir}/bluetooth/rfcomm.conf \
|
||||
"
|
||||
"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
64
meta/packages/bluez/bluez-utils_3.36.bb
Normal file
64
meta/packages/bluez/bluez-utils_3.36.bb
Normal file
@@ -0,0 +1,64 @@
|
||||
require bluez-utils3.inc
|
||||
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "http://bluez.sourceforge.net/download/bluez-utils-${PV}.tar.gz \
|
||||
file://hcid.conf \
|
||||
"
|
||||
|
||||
# see bluez-utils3.inc for the explanation of these option
|
||||
EXTRA_OECONF = " \
|
||||
--enable-bccmd \
|
||||
--enable-hid2hci \
|
||||
--enable-hidd \
|
||||
--enable-pand \
|
||||
--enable-dund \
|
||||
--disable-alsa \
|
||||
--disable-cups \
|
||||
--enable-glib \
|
||||
--disable-sdpd \
|
||||
--enable-network \
|
||||
--enable-serial \
|
||||
--enable-input \
|
||||
--enable-audio \
|
||||
--enable-echo \
|
||||
--enable-configfile \
|
||||
--enable-initscripts \
|
||||
--enable-test \
|
||||
"
|
||||
|
||||
CONFFILES_${PN} = " \
|
||||
${sysconfdir}/bluetooth/hcid.conf \
|
||||
${sysconfdir}/default/bluetooth \
|
||||
"
|
||||
|
||||
CONFFILES_${PN}-compat = " \
|
||||
${sysconfdir}/bluetooth/rfcomm.conf \
|
||||
"
|
||||
|
||||
PACKAGES =+ "bluez-audio"
|
||||
|
||||
FILES_${PN} = " \
|
||||
${base_sbindir}/hcid \
|
||||
${libdir}/bluetooth/plugins/*.so \
|
||||
${sysconfdir}/init.d/bluetooth \
|
||||
${sysconfdir}/bluetooth/hcid.conf \
|
||||
${sysconfdir}/default \
|
||||
${sysconfdir}/dbus-1 \
|
||||
${base_sbindir}/hciattach \
|
||||
"
|
||||
|
||||
FILES_bluez-audio = " \
|
||||
${libdir}/bluetooth/plugins/libaudio.so \
|
||||
${libdir}/gstreamer-0.10/*.so \
|
||||
"
|
||||
|
||||
FILES_${PN}-dbg += " \
|
||||
${libdir}/bluetooth/plugins/.debug \
|
||||
${libdir}/gstreamer-0.10/.debug \
|
||||
"
|
||||
|
||||
FILES_${PN}-dev += " \
|
||||
${libdir}/bluetooth/plugins/*.la \
|
||||
${libdir}/gstreamer-0.10/*.la \
|
||||
"
|
||||
11
meta/packages/bluez/bluez4_4.7.bb
Normal file
11
meta/packages/bluez/bluez4_4.7.bb
Normal file
@@ -0,0 +1,11 @@
|
||||
DESCRIPTION = "Linux Bluetooth Stack Userland."
|
||||
SECTION = "libs"
|
||||
PRIORITY = "optional"
|
||||
HOMEPAGE = "http://www.bluez.org"
|
||||
LICENSE = "GPL"
|
||||
PR = "r0"
|
||||
|
||||
SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/bluez-${PV}.tar.gz"
|
||||
S = "${WORKDIR}/bluez-${PV}"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
Reference in New Issue
Block a user