All of lore.kernel.org
 help / color / mirror / Atom feed
From: Szymon Janc <szymon.janc@gmail.com>
To: Keith Conger <keith.conger@gmail.com>
Cc: 'BlueZ development' <linux-bluetooth@vger.kernel.org>
Subject: Re: android-bluez with usb adapter
Date: Wed, 18 Feb 2015 08:34:04 +0100	[thread overview]
Message-ID: <3935781.3YG3puahzJ@athlon> (raw)
In-Reply-To: <CALUN+EcJ4p4kkFDZDyi01iSAwDMv4M1Q=axAPiCb+YOAQ64CNQ@mail.gmail.com>

Hi Keith,

(lets keep mailing list in CC)

On Tuesday 17 February 2015 15:00:02 Keith Conger wrote:
> Thanks for getting back to me.  I did skip the hciattach part and I
> have verified /system/lib/bluetooth.default.so exists. When enabling
> via the UI I just see the following in the log:

bluetooth.default.so should be in /system/lib/hw/

This lib is loaded via hw_get_module().
(I'm not sure why this wasn't installed there - it should if you used our 
Android.mk)

> 
> E/BluetoothAdapter( 1109): Bluetooth binder is null
> E/DeviceListPreferenceFragment( 1109): Bluetooth is not supported on this
> device
> 
> I have attached a zip of my init scripts I'm using, I'm I missing anything?

I'd make it a bit simpler:
- load modules directly from init.rc on boot
- remove this init.genericam33x.bt.rc file.
  this magic is not needed with btusb, also bluetoothd will power up device on
  start and power down on shutdown.
- remove init.bt.sh (not needed if you load module on init)
- import init.bluetooth.rc directly from you init.fooboard.rc file

> Thanks again for your help!
> Keith
> 
> On Tue, Feb 17, 2015 at 2:47 PM, Szymon Janc <szymon.janc@gmail.com> wrote:
> > Hi Keith,
> > 
> > On Tuesday 17 February 2015 14:16:37 Keith Conger wrote:
> >> I'm trying to swap out bluedroid with android-bluez to add bluetooth
> >> usb adapter support into KitKat for my Beaglebone Black(ARM). Should
> >> this be possible?
> > 
> > Yeap, this is possible.
> > 
> >> I followed this guide,
> >> http://forum.xda-developers.com/showthread.php?t=2640723 skipping the
> >> CSR parts.
> >> 
> >> Here is a logcat with debugging enabled.  I've googled the errors and
> >> have had no luck.  Does anyone have any ideas?
> >> 
> >> I/bluetoothd( 1072): Bluetooth daemon 5.28
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/main.c:set_capabilities() Caps: eff:
> >> 0x3400, perm: 0x3400, inh: 0x0
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/bluetooth.c:bt_bluetooth_start()
> >> index -1
> >> 
> >> I/bluetoothd( 1072): Starting SDP server
> >> 
> >> D/bluetoothd( 1072): external/bluetooth/bluez/android/main.c:main()
> >> Entering main loop
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0xffff] command 0x0001
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 01 00 ff ff 00 00
> >> 
> >>           ..??..
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 ff ff 06 00 01 00 00 01 07 00
> >> 
> >>           ..??........
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0xffff] command 0x0001 complete: 0x00
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/bluetooth.c:read_version_complete()
> >> 
> >> I/bluetoothd( 1072): Bluetooth management interface 1.7 initialized
> >> 
> >> I/bluetoothd( 1072): Kernel connection control will be used
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0xffff] command 0x0003
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 03 00 ff ff 00 00
> >> 
> >>           ..??..
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 ff ff 07 00 03 00 00 01 00 00 00
> >> 
> >>           ..??.........
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0xffff] command 0x0003 complete: 0x00
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/bluetooth.c:read_index_list_complete()
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/bluetooth.c:read_index_list_complete()
> >> Number of controllers: 1
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0004
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 04 00 00 00 00 00
> >> 
> >>           ......
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 00 00 1b 01 04 00 00 e9 36 36 e7
> >> 18 00 03  .........?66?...
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   0f 00 bf 10 00 00 90 00 00 00 00 00 00
> >> 42 43 4d  ..?..........BCM
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   32 30 34 35 42 33 00 00 00 00 00 00 00
> >> 00 00 00  2045B3..........
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00
> >> 
> >>           .
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0004 complete: 0x00
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/bluetooth.c:read_info_complete()
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/src/sdpd-service.c:register_device_id()
> >> Adding device id record for 0002:1d6b:0247:051c
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/src/sdpd-service.c:add_record_to_server()
> >> Adding record with handle 0x10001
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/src/sdpd-service.c:add_record_to_server()
> >> Record pattern UUID 00001002-0000-1000-8000-00805f9
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/src/sdpd-service.c:add_record_to_server()
> >> Record pattern UUID 0000113a-0000-1000-8000-00805f9
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/src/sdpd-service.c:add_record_to_server()
> >> Record pattern UUID 0000113b-0000-1000-8000-00805f9
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/bluetooth.c:load_ltks() ltks 0
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/bluetooth.c:load_irks() irks 0
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/bluetooth.c:load_link_keys() keys 0
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x000e
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 0e 00 00 00 02 00 02 0c
> >> 
> >>           ........
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 00 00 06 00 0e 00 00 00 00 00
> >> 
> >>           ............
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x000e complete: 0x00
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0011
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 11 00 00 00 10 00 00 00 00 00 00 00 00
> >> 00 00 00  ................
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 00 00 00
> >> 
> >>           ......
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 00 00 06 00 11 00 00 00 00 00
> >> 
> >>           ............
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0011 complete: 0x00
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0034
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 34 00 00 00 07 00 00 00 00 00 00 00 00
> >> 
> >>           4............
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 00 00 0a 00 34 00 00 00 00 00 00
> >> 00 00 00  ......4.........
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0034 complete: 0x00
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0018
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 18 00 00 00 01 00 01
> >> 
> >>           .......
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 00 00 03 00 18 00 00
> >> 
> >>           .........
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0018 complete: 0x00
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0028
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 28 00 00 00 08 00 02 00 6b 1d 47 02 1c
> >> 05        (.......k.G...
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 00 00 03 00 28 00 00
> >> 
> >>           ......(..
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0028 complete: 0x00
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0010
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 10 00 00 00 11 00 fb 34 9b 5f 80 00 00
> >> 80 00 10  ......?4._......
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 00 12 00 00 00
> >> 
> >>           .......
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 00 00 06 00 10 00 00 00 00 00
> >> 
> >>           ............
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0010 complete: 0x00
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0010
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 10 00 00 00 11 00 fb 34 9b 5f 80 00 00
> >> 80 00 10  ......?4._......
> >> 
> >> I/bluetoothd( 1072): mgmt_if:   00 00 3b 11 00 00 00
> >> 
> >>           ..;....
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 00 00 06 00 10 00 00 00 00 00
> >> 
> >>           ............
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0010 complete: 0x00
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0013
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 13 00 00 00 02 00 00 00
> >> 
> >>           ........
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 02 00 00 00 03 00 13 00 0c
> >> 
> >>           .........
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x13 status: 0x0c
> >> 
> >> I/bluetoothd( 1072): Failed to load LTKs: Not Supported (0x0c)
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0030
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 30 00 00 00 02 00 00 00
> >> 
> >>           0.......
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 02 00 00 00 03 00 30 00 0c
> >> 
> >>           ......0..
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x30 status: 0x0c
> >> 
> >> I/bluetoothd( 1072): Failed to load IRKs: Not Supported (0x0c)
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0012
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 12 00 00 00 03 00 00 00 00
> >> 
> >>           .........
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 00 00 03 00 12 00 00
> >> 
> >>           .........
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0012 complete: 0x00
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/bluetooth.c:load_link_keys_complete()
> >> status 0
> >> 
> >> I/bluetoothd( 1072): Adapter initialized
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/ipc.c:cmd_connect_cb()
> >> 
> >> E/bluetoothd( 1072): IPC: command socket connect failed
> >> 
> >> I/bluetoothd( 1072): Switching controller off
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0005
> >> 
> >> I/bluetoothd( 1072): mgmt_if: < 05 00 00 00 01 00 00
> >> 
> >>           .......
> >> 
> >> I/bluetoothd( 1072): mgmt_if: > 01 00 00 00 07 00 05 00 00 90 00 00 00
> >> 
> >>           .............
> >> 
> >> I/bluetoothd( 1072): mgmt_if: [0x0000] command 0x0005 complete: 0x00
> >> 
> >> D/bluetoothd( 1072):
> >> external/bluetooth/bluez/android/main.c:cleanup_services()
> >> 
> >> I/bluetoothd( 1072): Stopping SDP server
> >> 
> >> I/bluetoothd( 1072): Exit
> > 
> > This log looks OK. Adapter was found and initialized. Only problem is that
> > there was no IPC socket listening for it to connect.
> > 
> > On Android bluetoothd is not suppose to be started 'by hand'. It needs to
> > be started as service defined in init.rc (check android/README and
> > android/init.bluetooth.rc). This service is started via
> > bluetooth.default.so provided by BlueZ (this is implementation ofn
> > Android Bluetooth HAL interface). When bluetoothd starts and initializes
> > adapter it tries to connect IPC to this library. If lib is not loaded
> > (and there is no socket to connect to) bluetoothd shuts down.
> > 
> > This library is loaded by Android Framework and when you enable BT from UI
> > lib will be initialized and daemon will be started. Other option for
> > testing is our test tool called haltest. This is command line tool that
> > will load bt lib and allow you to play with bt stack (this tool doesn't
> > use Android Framework).> 
> > So what you should check:
> >  - you have init.bluetooth.rc in /
> >  - this file is included from your board init.foo.rc file
> >  - daemon and bluetooth.default.so are installed on system (this should be
> >  
> >    handled just fine by Android.mk provided by BlueZ)
> >  
> >  - you don't need hciattach service - this is not needed with btusb
> > 
> > --
> > Szymon K. Janc
> > szymon.janc@gmail.com

-- 
Szymon K. Janc
szymon.janc@gmail.com

  parent reply	other threads:[~2015-02-18  7:34 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-17 21:16 android-bluez with usb adapter Keith Conger
2015-02-17 21:47 ` Szymon Janc
     [not found]   ` <CALUN+EcJ4p4kkFDZDyi01iSAwDMv4M1Q=axAPiCb+YOAQ64CNQ@mail.gmail.com>
2015-02-18  7:34     ` Szymon Janc [this message]
2015-02-18 16:01       ` Keith Conger
2015-02-18 18:41         ` Keith Conger
2015-02-18 19:52           ` Szymon Janc
2015-02-18 19:57             ` Szymon Janc
     [not found]               ` <CALUN+EcsmogUt4PU-sSM4peusX4gdnmAF=ou1ouj5y-QPSpq3Q@mail.gmail.com>
2015-02-18 20:37                 ` Szymon Janc
     [not found]                   ` <CALUN+EfrG1o8VsTWjMxW7Y4NGe=-E3M_hz_618ToAG4QHwPZKA@mail.gmail.com>
2015-02-19 15:39                     ` Keith Conger
2015-02-19 16:02                       ` Andrei Emeltchenko
2015-02-19 16:06                         ` Keith Conger
2015-02-19 16:08                           ` Szymon Janc
2015-02-19 16:31                             ` Keith Conger
2015-02-19 17:25                               ` Keith Conger
2015-02-19 18:49                                 ` Keith Conger
2015-02-20 10:05                                   ` Szymon Janc
2015-02-20 14:59                                     ` Keith Conger
2015-02-20 16:30                                       ` Szymon Janc

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3935781.3YG3puahzJ@athlon \
    --to=szymon.janc@gmail.com \
    --cc=keith.conger@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.