summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2008-11-07 11:15:58 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2008-11-07 11:15:58 +0000
commitf473d75c15b26b7ad3ef359d1ec046b2ced56382 (patch)
treea4c62a187c8a7afb7e02832151c1099511dd20b4 /meta
parent5be917f9d14d67a5ea8d363a9986859c546128f5 (diff)
downloadpoky-f473d75c15b26b7ad3ef359d1ec046b2ced56382.tar.gz
bluez: Upgrade to more recent 3.x versions and add bluez 4 from OE
Diffstat (limited to 'meta')
-rw-r--r--meta/packages/bluez/bluez-hcidump_1.42.bb (renamed from meta/packages/bluez/bluez-hcidump_1.40.bb)1
-rw-r--r--meta/packages/bluez/bluez-libs_3.30.bb1
-rw-r--r--meta/packages/bluez/bluez-libs_3.36.bb (renamed from meta/packages/bluez/bluez-libs_3.18.bb)0
-rw-r--r--meta/packages/bluez/bluez-utils.inc53
-rw-r--r--meta/packages/bluez/bluez-utils/add-init-deps.patch21
-rw-r--r--meta/packages/bluez/bluez-utils/add-restart.patch21
-rw-r--r--meta/packages/bluez/bluez-utils/allow-no-hal.patch26
-rw-r--r--meta/packages/bluez/bluez-utils/hciattach-ti-bts.patch489
-rw-r--r--meta/packages/bluez/bluez-utils/hcid.conf4
-rw-r--r--meta/packages/bluez/bluez-utils3.inc (renamed from meta/packages/bluez/bluez-utils_3.18.bb)73
-rw-r--r--meta/packages/bluez/bluez-utils_3.36.bb64
-rw-r--r--meta/packages/bluez/bluez4_4.7.bb11
12 files changed, 129 insertions, 635 deletions
diff --git a/meta/packages/bluez/bluez-hcidump_1.40.bb b/meta/packages/bluez/bluez-hcidump_1.42.bb
index 1757bd5d01..877c8db33c 100644
--- a/meta/packages/bluez/bluez-hcidump_1.40.bb
+++ b/meta/packages/bluez/bluez-hcidump_1.42.bb
@@ -3,6 +3,7 @@ SECTION = "console"
3PRIORITY = "optional" 3PRIORITY = "optional"
4DEPENDS = "bluez-libs" 4DEPENDS = "bluez-libs"
5LICENSE = "GPL" 5LICENSE = "GPL"
6PR = "r0"
6 7
7SRC_URI = "http://bluez.sourceforge.net/download/bluez-hcidump-${PV}.tar.gz" 8SRC_URI = "http://bluez.sourceforge.net/download/bluez-hcidump-${PV}.tar.gz"
8S = "${WORKDIR}/bluez-hcidump-${PV}" 9S = "${WORKDIR}/bluez-hcidump-${PV}"
diff --git a/meta/packages/bluez/bluez-libs_3.30.bb b/meta/packages/bluez/bluez-libs_3.30.bb
deleted file mode 100644
index 6ddf62a4fb..0000000000
--- a/meta/packages/bluez/bluez-libs_3.30.bb
+++ /dev/null
@@ -1 +0,0 @@
1require bluez-libs.inc
diff --git a/meta/packages/bluez/bluez-libs_3.18.bb b/meta/packages/bluez/bluez-libs_3.36.bb
index 6ddf62a4fb..6ddf62a4fb 100644
--- a/meta/packages/bluez/bluez-libs_3.18.bb
+++ b/meta/packages/bluez/bluez-libs_3.36.bb
diff --git a/meta/packages/bluez/bluez-utils.inc b/meta/packages/bluez/bluez-utils.inc
deleted file mode 100644
index 39b8b39a05..0000000000
--- a/meta/packages/bluez/bluez-utils.inc
+++ /dev/null
@@ -1,53 +0,0 @@
1DESCRIPTION = "Linux Bluetooth Stack Userland Utilities."
2SECTION = "console"
3PRIORITY = "optional"
4DEPENDS = "gstreamer gst-plugins-base bluez-libs-${PV} libusb dbus"
5PROVIDES = "bluez-utils-dbus"
6RPROVIDES_${PN} = "bluez-pan bluez-sdp bluez-utils-dbus"
7RREPLACES_${PN} = "bluez-utils-dbus"
8RCONFLICTS_${PN} = "bluez-utils-nodbus"
9LICENSE = "GPL"
10
11SRC_URI = "http://bluez.sourceforge.net/download/bluez-utils-${PV}.tar.gz \
12 file://hcid.conf "
13
14# Almost all serial CF cards w/ manfid 0x0000,0x0000 seem to use the bcs protocol
15# Let's default to that instead of 'any' until further notice...
16#SRC_URI += " file://default-manfid-0x0-to-bcps.patch;patch=1"
17
18S = "${WORKDIR}/bluez-utils-${PV}"
19
20inherit autotools update-rc.d
21
22INITSCRIPT_NAME = "bluetooth"
23INITSCRIPT_PARAMS = "defaults 23 19"
24
25do_install_append() {
26 install -d ${D}${base_sbindir} ${D}${base_bindir}/ ${D}${sysconfdir}/apm/event.d/
27 mv ${D}${sbindir}/* ${D}${base_sbindir}/
28 mv ${D}${bindir}/* ${D}${base_bindir}/
29 rmdir ${D}${bindir} ${D}${sbindir}
30 chmod u+s ${D}${base_sbindir}/hciattach ${D}${base_sbindir}/hciconfig
31 install -m 0644 ${WORKDIR}/hcid.conf ${D}${sysconfdir}/bluetooth/
32 # libtool 2.2.2 doesn't put this in a .libs directory
33 if [ -e ${S}/daemon/.libs/passkey-agent ]; then
34 install -m 0755 ${S}/daemon/.libs/passkey-agent ${D}${base_bindir}/
35 else
36 install -m 0755 ${S}/daemon/passkey-agent ${D}${base_bindir}/
37 fi
38}
39
40PACKAGES =+ "${PN}-alsa ${PN}-alsa-dev gst-plugin-bluez gst-plugin-bluez-dbg"
41
42FILES_${PN}-alsa = "${libdir}/alsa-lib/libasound*"
43FILES_${PN}-alsa-dev += " ${libdir}/alsa-lib/*.la "
44
45FILES_gst-plugin-bluez = "${libdir}/gstreamer*/libgstblue*.so"
46FILES_gst-plugin-bluez-dbg = "${libdir}/gstreamer*/.debug/libgstblue*.so"
47
48#
49# CUPS support
50#
51#PACKAGES =+ " bluez-cups-backend"
52#FILES_bluez-cups-backend = "${libdir}/cups/backend/bluetooth"
53#RDEPENDS_bluez-cups-backend = "cups"
diff --git a/meta/packages/bluez/bluez-utils/add-init-deps.patch b/meta/packages/bluez/bluez-utils/add-init-deps.patch
deleted file mode 100644
index 45bcce5aa9..0000000000
--- a/meta/packages/bluez/bluez-utils/add-init-deps.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1---
2 scripts/bluetooth.init | 8 ++++++++
3 1 file changed, 8 insertions(+)
4
5--- bluez-utils-3.18.orig/scripts/bluetooth.init
6+++ bluez-utils-3.18/scripts/bluetooth.init
7@@ -1,6 +1,14 @@
8 #!/bin/sh
9+### BEGIN INIT INFO
10+# Provides: bluetooth
11+# Required-Start: $local_fs $syslog $remote_fs dbus
12+# Required-Stop: $local_fs $syslog $remote_fs
13+# Default-Start: 2 3 4 5
14+# Default-Stop: 0 1 6
15+# Short-Description: Start bluetooth daemons
16+### END INIT INFO
17 #
18 # Start/stop the Bluetooth daemons
19 #
20
21 set -e
diff --git a/meta/packages/bluez/bluez-utils/add-restart.patch b/meta/packages/bluez/bluez-utils/add-restart.patch
deleted file mode 100644
index e37befff41..0000000000
--- a/meta/packages/bluez/bluez-utils/add-restart.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1---
2 scripts/bluetooth.init | 4 ++++
3 1 file changed, 4 insertions(+)
4
5--- bluez-utils-3.18.orig/scripts/bluetooth.init
6+++ bluez-utils-3.18/scripts/bluetooth.init
7@@ -47,10 +47,14 @@ case "$1" in
8 echo -n "Stopping $DESC:"
9 killall $DAEMON_NAME > /dev/null 2>&1 || true
10 echo -n " $DAEMON_NAME"
11 echo "."
12 ;;
13+ restart)
14+ $0 stop
15+ $0 start
16+ ;;
17 *)
18 N=/etc/init.d/$NAME
19 echo "Usage: $N {start|stop}" >&2
20 exit 1
21 ;;
diff --git a/meta/packages/bluez/bluez-utils/allow-no-hal.patch b/meta/packages/bluez/bluez-utils/allow-no-hal.patch
deleted file mode 100644
index 3350c80d69..0000000000
--- a/meta/packages/bluez/bluez-utils/allow-no-hal.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1---
2 configure.in | 11 ++++++++++-
3 1 file changed, 10 insertions(+), 1 deletion(-)
4
5Index: bluez-utils-3.18/configure.in
6===================================================================
7--- bluez-utils-3.18.orig/configure.in 2007-09-02 17:40:57.000000000 +0100
8+++ bluez-utils-3.18/configure.in 2007-10-15 11:45:01.000000000 +0100
9@@ -31,7 +31,16 @@ AC_PATH_ALSA
10 AC_PATH_GSTREAMER
11 AC_PATH_OPENOBEX
12 AC_PATH_OPENSYNC
13-AC_PATH_HAL
14+
15+AC_DEFUN([AC_PATH_HAL], [
16+ PKG_CHECK_MODULES(HAL, hal >= 0.5.8, hal_found=yes, hal_found=no)
17+])
18+
19+AC_SUBST(HAL_CFLAGS)
20+AC_SUBST(HAL_LIBS)
21+
22+AM_CONDITIONAL(HAL, test "${hal_enable}" = "yes" && test "${hal_found}" = "yes")
23+
24 AC_PATH_USB
25 AC_PATH_EXPAT
26 AC_PATH_INOTIFY
diff --git a/meta/packages/bluez/bluez-utils/hciattach-ti-bts.patch b/meta/packages/bluez/bluez-utils/hciattach-ti-bts.patch
deleted file mode 100644
index 217c32619d..0000000000
--- a/meta/packages/bluez/bluez-utils/hciattach-ti-bts.patch
+++ /dev/null
@@ -1,489 +0,0 @@
1--- bluez-utils-3.1/tools/hciattach.c.orig 2006-07-23 14:02:14.000000000 +0200
2+++ bluez-utils-3.1/tools/hciattach.c 2006-07-23 14:06:29.000000000 +0200
3@@ -58,6 +58,8 @@
4 #define HCI_UART_3WIRE 2
5 #define HCI_UART_H4DS 3
6
7+#include "ti_bts.h"
8+
9 struct uart_t {
10 char *type;
11 int m_id;
12@@ -67,6 +69,7 @@
13 int speed;
14 int flags;
15 int (*init) (int fd, struct uart_t *u, struct termios *ti);
16+ char *bts; /* bluetooth script */
17 };
18
19 #define FLOW_CTL 0x0001
20@@ -256,6 +259,114 @@
21 return 0;
22 }
23
24+static int brf6150(int fd, struct uart_t *u, struct termios *ti)
25+{
26+ bts_t *bfp;
27+ int i;
28+ unsigned long vers;
29+ unsigned char actionbuf[256];
30+ unsigned char resp[128]; /* Response */
31+ unsigned long count;
32+ unsigned short atype;
33+
34+ if (u->bts == NULL) /* no script, ignore */
35+ return 0;
36+
37+ bfp = bts_load_script( u->bts, &vers );
38+ if (bfp == NULL)
39+ return -1;
40+
41+ fprintf( stderr, "Loading BTS script version %lu\n", vers );
42+
43+ while ((count = bts_next_action( bfp, actionbuf,
44+ sizeof actionbuf - 1, &atype )) != 0) {
45+ if (atype == ACTION_REMARKS) {
46+ if (actionbuf[0] != 0)
47+ fprintf( stderr, "%s\n", actionbuf );
48+ }
49+ else if (atype == ACTION_SEND_COMMAND) {
50+#if 0
51+ fprintf( stderr, "ACTION_SEND_COMMAND: ", (int)atype );
52+ for (i=0; i<count; i++) {
53+ fprintf( stderr, "0x%02x ", actionbuf[i] );
54+ }
55+ fprintf( stderr, "\n" );
56+#endif
57+ int n;
58+ n = write(fd, actionbuf, count);
59+ if (n < 0 || n < count) {
60+ perror("Failed to write TI action command");
61+ return -1;
62+ }
63+ }
64+ else if (atype == ACTION_WAIT_EVENT) {
65+ action_wait_t *wait = (action_wait_t *)actionbuf;
66+#if 0
67+ fprintf( stderr, "ACTION_WAIT_EVENT: %u msec, %u size, data = ", wait->msec, wait->size );
68+ for (i=0; i<wait->size; i++) {
69+ fprintf( stderr, "0x%02x ", wait->data[i] );
70+ }
71+ fprintf( stderr, "\n" );
72+#endif
73+ usleep(wait->msec); /* seems they give usec, not msec */
74+ /* Read reply. */
75+ if ((count = read_hci_event(fd, resp, sizeof resp)) < 0) {
76+ perror("Failed to read TI command response");
77+ return -1;
78+ }
79+ if (count < wait->size) {
80+ fprintf( stderr, "TI command response is short.");
81+ }
82+ for (i=0; i<wait->size; i++) {
83+ if (i == 3) continue; /* ignore */
84+ if (resp[i] != wait->data[i]) {
85+ fprintf( stderr, "TI command response does not match expected result.\n" );
86+ }
87+ }
88+ }
89+ else if (atype == ACTION_SERIAL_PORT_PARAMETERS) {
90+ action_serial_t *sercmd = (action_serial_t *)actionbuf;
91+
92+ /* Set actual baudrate */
93+ fprintf( stderr,
94+ "BTS changing baud rate to %u, flow control to %u\n",
95+ sercmd->baud, sercmd->flow_control );
96+
97+ tcflush(fd, TCIOFLUSH);
98+
99+ if (sercmd->flow_control)
100+ ti->c_cflag |= CRTSCTS;
101+ else
102+ ti->c_cflag &= ~CRTSCTS;
103+ if (tcsetattr(fd, TCSANOW, ti) < 0) {
104+ perror("Can't set port settings");
105+ return -1;
106+ }
107+
108+ u->speed = sercmd->baud;
109+
110+ tcflush(fd, TCIOFLUSH);
111+ if (set_speed(fd, ti, sercmd->baud) < 0) {
112+ perror("Can't set baud rate");
113+ return -1;
114+ }
115+ }
116+ else if (atype == ACTION_DELAY) {
117+ action_delay_t *delay = (action_delay_t *)actionbuf;
118+ usleep(delay->msec); /* seems they give usec, not msec */
119+ }
120+ else {
121+ fprintf( stderr, "BTS action type = %d: ", (int)atype );
122+ for (i=0; i<count; i++) {
123+ fprintf( stderr, "0x%02x ", actionbuf[i] );
124+ }
125+ fprintf( stderr, "\n" );
126+ }
127+ }
128+ bts_unload_script( bfp );
129+ return 0;
130+}
131+
132 static int texas(int fd, struct uart_t *u, struct termios *ti)
133 {
134 struct timespec tm = {0, 50000};
135@@ -296,15 +407,26 @@
136 } while (resp[4] != cmd[1] && resp[5] != cmd[2]);
137
138 /* Verify manufacturer */
139- if ((resp[11] & 0xFF) != 0x0d)
140+ if (resp[11] != 0x0d)
141 fprintf(stderr,"WARNING : module's manufacturer is not Texas Instrument\n");
142
143 /* Print LMP version */
144- fprintf(stderr, "Texas module LMP version : 0x%02x\n", resp[10] & 0xFF);
145+ fprintf(stderr, "TI module LMP version : 0x%02x\n", resp[10]);
146
147 /* Print LMP subversion */
148- fprintf(stderr, "Texas module LMP sub-version : 0x%02x%02x\n", resp[14] & 0xFF, resp[13] & 0xFF);
149+ fprintf(stderr, "TI module LMP sub-version : 0x%02x%02x\n", resp[14], resp[13]);
150+ if ((resp[14] >> 2) == 3) {
151+ int err;
152+ nanosleep(&tm, NULL);
153
154+ /* BRF6150 */
155+ if ((err=brf6150( fd, u, ti )) != 0) {
156+ fprintf( stderr, "TI script failed (err=%d)\n",
157+ err );
158+ return -1;
159+ }
160+ }
161+
162 nanosleep(&tm, NULL);
163 return 0;
164 }
165@@ -1103,7 +1225,7 @@
166 {
167 printf("hciattach - HCI UART driver initialization utility\n");
168 printf("Usage:\n");
169- printf("\thciattach [-n] [-p] [-b] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow]\n");
170+ printf("\thciattach [-n] [-p] [-b] [-t timeout] [-s initial_speed] [-S bts-script] <tty> <type | id> [speed] [flow|noflow]\n");
171 printf("\thciattach -l\n");
172 }
173
174@@ -1118,11 +1240,12 @@
175 struct sigaction sa;
176 struct pollfd p;
177 char dev[PATH_MAX];
178+ char *bts = NULL;
179
180 detach = 1;
181 printpid = 0;
182
183- while ((opt=getopt(argc, argv, "bnpt:s:l")) != EOF) {
184+ while ((opt=getopt(argc, argv, "bnpt:s:S:l")) != EOF) {
185 switch(opt) {
186 case 'b':
187 send_break = 1;
188@@ -1144,6 +1267,10 @@
189 init_speed = atoi(optarg);
190 break;
191
192+ case 'S':
193+ bts = optarg;
194+ break;
195+
196 case 'l':
197 for (i = 0; uart[i].type; i++) {
198 printf("%-10s0x%04x,0x%04x\n", uart[i].type,
199@@ -1215,6 +1342,8 @@
200 if (init_speed)
201 u->init_speed = init_speed;
202
203+ u->bts = bts;
204+
205 memset(&sa, 0, sizeof(sa));
206 sa.sa_flags = SA_NOCLDSTOP;
207 sa.sa_handler = sig_alarm;
208--- bluez-utils-3.1/tools/Makefile.am.orig 2006-07-23 14:06:59.000000000 +0200
209+++ bluez-utils-3.1/tools/Makefile.am 2006-07-23 14:07:18.000000000 +0200
210@@ -37,7 +37,7 @@
211
212 noinst_PROGRAMS = hcisecfilter ppporc
213
214-hciattach_SOURCES = hciattach.c hciattach_st.c
215+hciattach_SOURCES = hciattach.c hciattach_st.c ti_bts.h ti_bts.c
216
217 hciconfig_SOURCES = hciconfig.c csr.h csr.c
218 hciconfig_LDADD = @BLUEZ_LIBS@ $(top_builddir)/common/libhelper.a
219--- bluez-utils-3.1/tools/ti_bts.h.orig 2006-07-23 14:07:26.000000000 +0200
220+++ bluez-utils-3.1/tools/ti_bts.h 2006-07-23 14:07:46.000000000 +0200
221@@ -0,0 +1,116 @@
222+/*
223+ * Copyright (c) 2005 Texas Instruments, Inc.
224+ * Ported by SDG Systems, LLC
225+ *
226+ * This program is free software; you can redistribute it and/or modify
227+ * it under the terms of the GNU General Public License version 2 as
228+ * published by the Free Software Foundation;
229+ *
230+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
231+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
232+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
233+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
234+ * CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
235+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
236+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
237+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
238+ *
239+ * ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
240+ * COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
241+ * SOFTWARE IS DISCLAIMED.
242+ *
243+ */
244+
245+#ifndef BT_SCRIPT_H
246+#define BT_SCRIPT_H
247+
248+#ifdef __cplusplus
249+extern "C" {
250+#endif
251+
252+/*
253+ * Define the interface of Bluetooth Script
254+ */
255+
256+typedef void bts_t;
257+
258+
259+#define ACTION_SEND_COMMAND 1 /* Send out raw data (as is) */
260+#define ACTION_WAIT_EVENT 2 /* Wait for data */
261+#define ACTION_SERIAL_PORT_PARAMETERS 3
262+#define ACTION_DELAY 4
263+#define ACTION_RUN_SCRIPT 5
264+#define ACTION_REMARKS 6
265+
266+/*
267+ * Structure for ACTION_SEND_COMMAND
268+ */
269+typedef struct tagCActionCommand
270+{
271+ unsigned char data[1]; /* Data to send */
272+} action_command_t;
273+
274+/*
275+ * Structure for ACTION_WAIT_EVENT
276+ */
277+typedef struct tagCActionWaitEvent
278+{
279+ unsigned long msec; /* in milliseconds */
280+ unsigned long size;
281+ unsigned char data[1]; /* Data to wait for */
282+} action_wait_t;
283+
284+
285+/*
286+ * Structure for ACTION_SERIAL_PORT_PARAMETERS
287+ */
288+typedef struct tagCActionSerialPortParameters
289+{
290+ unsigned long baud;
291+ unsigned long flow_control;
292+} action_serial_t;
293+
294+/* Flow Control Type */
295+#define FCT_NONE 0
296+#define FCT_HARDWARE 1
297+
298+#define DONT_CHANGE 0xFFFFFFFF /* For both baud rate and flow control */
299+
300+
301+/*
302+ * Structure for ACTION_DELAY
303+ */
304+typedef struct tagCActionDelay
305+{
306+ unsigned long msec; /* in milliseconds */
307+} action_delay_t;
308+
309+/*
310+ * Structure for ACTION_RUN_SCRIPT
311+ */
312+typedef struct tagCActionRunScript
313+{
314+ char filename[1];
315+} action_run_t;
316+
317+/*
318+ * Structure for ACTION_REMARKS
319+ */
320+typedef struct tagCActionRemarks
321+{
322+ char m_szRemarks[1];
323+} action_remarks_t;
324+
325+
326+const char *cis_create_filename(const unsigned char* cmdparms);
327+bts_t * bts_load_script(const char* fname, unsigned long* version);
328+unsigned long bts_next_action(const bts_t* bts_fp, unsigned char* action_buf,
329+ unsigned long nMaxSize, unsigned short* ptype);
330+void bts_unload_script(bts_t* bts_fp);
331+
332+#ifdef __cplusplus
333+};
334+#endif
335+
336+#endif /* BT_SCRIPT_H */
337+
338--- bluez-utils-3.1/tools/ti_bts.c.orig 2006-07-23 14:07:28.000000000 +0200
339+++ bluez-utils-3.1/tools/ti_bts.c 2006-07-23 14:07:46.000000000 +0200
340@@ -0,0 +1,149 @@
341+/*
342+ * Copyright (c) 2005 Texas Instruments, Inc.
343+ * Ported by SDG Systems, LLC
344+ *
345+ * This program is free software; you can redistribute it and/or modify
346+ * it under the terms of the GNU General Public License version 2 as
347+ * published by the Free Software Foundation;
348+ *
349+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
350+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
351+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
352+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
353+ * CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
354+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
355+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
356+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
357+ *
358+ * ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
359+ * COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
360+ * SOFTWARE IS DISCLAIMED.
361+ *
362+ */
363+
364+
365+#include <stdio.h>
366+#include <stdlib.h>
367+#include "ti_bts.h"
368+
369+#ifndef MAKEWORD
370+#define MAKEWORD(a, b) ((unsigned short)(((unsigned char)(a)) | ((unsigned short)((unsigned char)(b))) << 8))
371+#endif
372+
373+#define TI_MANUFACTURER_ID 13
374+
375+/*
376+ * Common Init Script specific
377+ */
378+const char *
379+cis_create_filename(const unsigned char* cmdparms)
380+{
381+ static char bts_file[50];
382+
383+ /* Check for TI's id */
384+ unsigned short manfid = MAKEWORD(cmdparms[8], cmdparms[9]);
385+
386+ if (TI_MANUFACTURER_ID == manfid) {
387+ unsigned short version = MAKEWORD(cmdparms[10], cmdparms[11]);
388+
389+ unsigned short chip = (version & 0x7C00) >> 10;
390+ unsigned short min_ver = (version & 0x007F);
391+ unsigned short maj_ver = (version & 0x0380) >> 7;
392+
393+ if (0 != (version & 0x8000)) {
394+ maj_ver |= 0x0008;
395+ }
396+
397+ sprintf( bts_file, "TIInit_%d.%d.%d.bts",
398+ (int)chip, (int)maj_ver, (int)min_ver);
399+
400+ return &bts_file[0];
401+ }
402+ return NULL;
403+}
404+
405+typedef struct tagCHeader
406+{
407+ unsigned long magic;
408+ unsigned long version;
409+ unsigned char future[24];
410+} cheader_t;
411+
412+
413+/* The value 0x42535442 stands for (in ASCII) BTSB */
414+/* which is Bluetooth Script Binary */
415+#define FILE_HEADER_MAGIC 0x42535442
416+
417+
418+bts_t *
419+bts_load_script(const char* fname, unsigned long* version)
420+{
421+ bts_t* bts = NULL;
422+ FILE* fp = fopen(fname, "rb");
423+
424+ if (NULL != fp) {
425+ /* Read header */
426+ cheader_t header;
427+
428+ /* Read header */
429+ if (1 == fread(&header, sizeof(header), 1, fp)) {
430+ /* Check magic number for correctness */
431+ if (header.magic == FILE_HEADER_MAGIC) {
432+ /* If user wants the version number */
433+ if (NULL != version) {
434+ *version = header.version;
435+ }
436+ bts = (bts_t*)fp;
437+ }
438+ }
439+ /* If failed reading the file, close it */
440+ if (NULL == bts) {
441+ fclose(fp);
442+ }
443+ }
444+ return bts;
445+}
446+
447+unsigned long
448+bts_next_action(const bts_t* bts_fp, unsigned char* action_buf,
449+ unsigned long nMaxSize, unsigned short* ptype)
450+{
451+ unsigned long bytes = 0;
452+ FILE* fp = (FILE*)bts_fp;
453+ unsigned char action_hdr[4];
454+
455+ if (bts_fp == NULL)
456+ return 0;
457+
458+ /* Each Action has the following: */
459+ /* UINT16 type of this action */
460+ /* UINT16 size of rest */
461+ /* BYTE[] action buffer (for HCI, includes the type byte e.g. 1 for hci command) */
462+
463+ if (1 == fread(&action_hdr[0], sizeof(action_hdr), 1, fp)) {
464+ unsigned short type = *(unsigned short*)&action_hdr[0];
465+ unsigned short size = *(unsigned short*)&action_hdr[2];
466+
467+ if (size <= nMaxSize) {
468+ int nread = fread(action_buf, sizeof(action_buf[0]), size, fp);
469+
470+ if (nread == size) {
471+ *ptype = type;
472+ bytes = (unsigned long)size;
473+ }
474+ }
475+ }
476+
477+ return bytes;
478+}
479+
480+void
481+bts_unload_script(bts_t* bts_fp)
482+{
483+ FILE* fp = (FILE*)bts_fp;
484+
485+ if (NULL != fp) {
486+ fclose(fp);
487+ }
488+}
489+
diff --git a/meta/packages/bluez/bluez-utils/hcid.conf b/meta/packages/bluez/bluez-utils/hcid.conf
index bb935aa23d..a7164f6eb0 100644
--- a/meta/packages/bluez/bluez-utils/hcid.conf
+++ b/meta/packages/bluez/bluez-utils/hcid.conf
@@ -21,7 +21,7 @@ options {
21 pairing multi; 21 pairing multi;
22 22
23 # Default PIN code for incoming connections 23 # Default PIN code for incoming connections
24 passkey "BlueZ"; 24 passkey "1234";
25} 25}
26 26
27# Default settings for HCI devices 27# Default settings for HCI devices
@@ -29,7 +29,7 @@ device {
29 # Local device name 29 # Local device name
30 # %d - device id 30 # %d - device id
31 # %h - host name 31 # %h - host name
32 name "BlueZ (%d)"; 32 name "%h (%d)";
33 33
34 # Local device class 34 # Local device class
35 class 0x120112; 35 class 0x120112;
diff --git a/meta/packages/bluez/bluez-utils_3.18.bb b/meta/packages/bluez/bluez-utils3.inc
index 093064ad35..e5dae635b8 100644
--- a/meta/packages/bluez/bluez-utils_3.18.bb
+++ b/meta/packages/bluez/bluez-utils3.inc
@@ -1,20 +1,24 @@
1require bluez-utils.inc 1DESCRIPTION = "Linux Bluetooth Stack Userland Utilities."
2SECTION = "console"
3PRIORITY = "optional"
4DEPENDS = "gstreamer gst-plugins-base bluez-libs-${PV} libusb-compat dbus glib-2.0"
5PROVIDES = "bluez-utils-dbus"
6RPROVIDES_${PN} = "bluez-pan bluez-sdp bluez-utils-dbus"
7RREPLACES = "bluez-utils-dbus"
8RCONFLICTS_${PN} = "bluez-utils-nodbus"
9LICENSE = "GPL"
2 10
3DEPENDS += "glib-2.0" 11FILESPATH = "${FILE_DIRNAME}/bluez-utils-${PV}:${FILE_DIRNAME}/bluez-utils"
4PR = "r4"
5 12
6# ti patch doesn't apply, people using it should rediff it and send it upstream 13S = "${WORKDIR}/bluez-utils-${PV}"
7#SRC_URI += "file://hciattach-ti-bts.patch;patch=1 "
8 14
9SRC_URI += "file://allow-no-hal.patch;patch=1 \ 15inherit autotools update-rc.d
10 file://add-init-deps.patch;patch=1 \
11 file://add-restart.patch;patch=1"
12 16
13EXTRA_OECONF = " \ 17EXTRA_OECONF = " \
14 --enable-bccmd \ 18 --enable-bccmd \
15 --enable-hid2hci \ 19 --enable-hid2hci \
16 --enable-alsa \ 20 --enable-alsa \
17 --disable-cups \ 21 --enable-cups \
18 --enable-glib \ 22 --enable-glib \
19 --disable-sdpd \ 23 --disable-sdpd \
20 --enable-network \ 24 --enable-network \
@@ -25,13 +29,12 @@ EXTRA_OECONF = " \
25 --enable-configfile \ 29 --enable-configfile \
26 --enable-initscripts \ 30 --enable-initscripts \
27 --enable-test \ 31 --enable-test \
28 --disable-hal \ 32 "
29 "
30 33
31# The config options are explained below: 34# The config options are explained below:
32 35
33# --enable-obex enable OBEX support 36# --enable-obex enable OBEX support
34# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1 37# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and om-gtao1
35# --enable-cups install CUPS backend support 38# --enable-cups install CUPS backend support
36# --enable-bccmd install BCCMD interface utility 39# --enable-bccmd install BCCMD interface utility
37# --enable-avctrl install Audio/Video control utility 40# --enable-avctrl install Audio/Video control utility
@@ -62,17 +65,33 @@ EXTRA_OECONF = " \
62#disable it: 65#disable it:
63# --disable-hid2hci 66# --disable-hid2hci
64 67
68OE_LT_RPATH_ALLOW = "any"
69OE_LT_RPATH_ALLOW[export]="1"
70
71do_install_append() {
72 install -d ${D}${base_sbindir} ${D}${base_bindir}/ ${D}${sysconfdir}/apm/event.d/
73 if [ "${sbindir}" != "${base_sbindir}" ]; then
74 mv ${D}${sbindir}/* ${D}${base_sbindir}/
75 rmdir ${D}${sbindir}
76 fi
77 if [ "${bindir}" != "${base_bindir}" ]; then
78 mv ${D}${bindir}/* ${D}${base_bindir}/
79 rmdir ${D}${bindir}
80 fi
81 chmod u+s ${D}${base_sbindir}/hciattach ${D}${base_sbindir}/hciconfig
82 install -m 0644 ${WORKDIR}/hcid.conf ${D}${sysconfdir}/bluetooth/
83 install -m 0644 ${S}/rfcomm/rfcomm.conf ${D}${sysconfdir}/bluetooth/
84 install -m 0755 ${S}/daemon/.libs/passkey-agent ${D}${base_bindir}/ ||true
85 install -m 0755 ${S}/test/.libs/passkey-agent ${D}${base_bindir}/ ||true
86}
87
88
89INITSCRIPT_NAME = "bluetooth"
90INITSCRIPT_PARAMS = "defaults 23 19"
65 91
66PACKAGES =+ "${PN}-compat"
67 92
68CONFFILES_${PN} = " \ 93PACKAGES =+ "${PN}-compat"
69 ${sysconfdir}/bluetooth/hcid.conf \
70 ${sysconfdir}/default/bluetooth \
71 "
72 94
73CONFFILES_${PN}-compat = " \
74 ${sysconfdir}/bluetooth/rfcomm.conf \
75 "
76 95
77FILES_${PN} = " \ 96FILES_${PN} = " \
78 ${base_sbindir}/hcid \ 97 ${base_sbindir}/hcid \
@@ -89,7 +108,7 @@ FILES_${PN}-dbg += " \
89 ${libdir}/bluetooth/.debug \ 108 ${libdir}/bluetooth/.debug \
90 ${libdir}/cups/backend/.debug \ 109 ${libdir}/cups/backend/.debug \
91 ${libdir}/alsa-lib/.debug \ 110 ${libdir}/alsa-lib/.debug \
92 " 111 "
93 112
94FILES_${PN}-compat = " \ 113FILES_${PN}-compat = " \
95 ${base_bindir}/sdptool \ 114 ${base_bindir}/sdptool \
@@ -108,5 +127,15 @@ FILES_${PN}-compat = " \
108 ${base_sbindir}/hid2hci \ 127 ${base_sbindir}/hid2hci \
109 ${base_bindir}/passkey-agent \ 128 ${base_bindir}/passkey-agent \
110 ${sysconfdir}/bluetooth/rfcomm.conf \ 129 ${sysconfdir}/bluetooth/rfcomm.conf \
111 " 130 "
131
132
133
134
135
136
137
138
139
140
112 141
diff --git a/meta/packages/bluez/bluez-utils_3.36.bb b/meta/packages/bluez/bluez-utils_3.36.bb
new file mode 100644
index 0000000000..cf6d6328ea
--- /dev/null
+++ b/meta/packages/bluez/bluez-utils_3.36.bb
@@ -0,0 +1,64 @@
1require bluez-utils3.inc
2
3PR = "r1"
4
5SRC_URI = "http://bluez.sourceforge.net/download/bluez-utils-${PV}.tar.gz \
6 file://hcid.conf \
7 "
8
9# see bluez-utils3.inc for the explanation of these option
10EXTRA_OECONF = " \
11 --enable-bccmd \
12 --enable-hid2hci \
13 --enable-hidd \
14 --enable-pand \
15 --enable-dund \
16 --disable-alsa \
17 --disable-cups \
18 --enable-glib \
19 --disable-sdpd \
20 --enable-network \
21 --enable-serial \
22 --enable-input \
23 --enable-audio \
24 --enable-echo \
25 --enable-configfile \
26 --enable-initscripts \
27 --enable-test \
28 "
29
30CONFFILES_${PN} = " \
31 ${sysconfdir}/bluetooth/hcid.conf \
32 ${sysconfdir}/default/bluetooth \
33 "
34
35CONFFILES_${PN}-compat = " \
36 ${sysconfdir}/bluetooth/rfcomm.conf \
37 "
38
39PACKAGES =+ "bluez-audio"
40
41FILES_${PN} = " \
42 ${base_sbindir}/hcid \
43 ${libdir}/bluetooth/plugins/*.so \
44 ${sysconfdir}/init.d/bluetooth \
45 ${sysconfdir}/bluetooth/hcid.conf \
46 ${sysconfdir}/default \
47 ${sysconfdir}/dbus-1 \
48 ${base_sbindir}/hciattach \
49 "
50
51FILES_bluez-audio = " \
52 ${libdir}/bluetooth/plugins/libaudio.so \
53 ${libdir}/gstreamer-0.10/*.so \
54 "
55
56FILES_${PN}-dbg += " \
57 ${libdir}/bluetooth/plugins/.debug \
58 ${libdir}/gstreamer-0.10/.debug \
59 "
60
61FILES_${PN}-dev += " \
62 ${libdir}/bluetooth/plugins/*.la \
63 ${libdir}/gstreamer-0.10/*.la \
64 "
diff --git a/meta/packages/bluez/bluez4_4.7.bb b/meta/packages/bluez/bluez4_4.7.bb
new file mode 100644
index 0000000000..ae579dd0ae
--- /dev/null
+++ b/meta/packages/bluez/bluez4_4.7.bb
@@ -0,0 +1,11 @@
1DESCRIPTION = "Linux Bluetooth Stack Userland."
2SECTION = "libs"
3PRIORITY = "optional"
4HOMEPAGE = "http://www.bluez.org"
5LICENSE = "GPL"
6PR = "r0"
7
8SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/bluez-${PV}.tar.gz"
9S = "${WORKDIR}/bluez-${PV}"
10
11inherit autotools pkgconfig