From: Szymon Janc <ext.szymon.janc@tieto.com>
To: krishnaks@iwavesystems.com
Cc: Marcel Holtmann <marcel@holtmann.org>, linux-bluetooth@vger.kernel.org
Subject: Re: USB BT gives problem If device plugged during boot to platform.
Date: Tue, 08 Sep 2015 15:12:29 +0200 [thread overview]
Message-ID: <4063128.4B3eOl7Vlx@leonov> (raw)
In-Reply-To: <88de30607cc30c5d6e25e43bd6965da0.squirrel@iwavesystems.com>
Hi,
On Tuesday 08 of September 2015 09:04:18 krishnaks@iwavesystems.com wrote:
> >>> Hi,
> >>>
> >>>> I am porting bluez 5.33 to android kitkat 4.4.3.I am using USB based
> >>>> Bluetooth device. I referred instruction in
> >>>> http://git.kernel.org/cgit/bluetooth/bluez.git/tree/android/README and
> >>>> able to build.
> >>>> After botting Android image with USB dongle connected and type
> >>>> "hciconfig
> >>>> hci0 up" on console, It is throwing following error.
> >>>> Can't init device hci0: Unknown error 132 (132)
> >>>>
> >>>> If I Type hciconfig -a . It gives following.
> >>>> hci0: Type: BR/EDR Bus: USB
> >>>>
> >>>> BD Address: 5C:F3:70:6C:5E:FB ACL MTU: 1021:8 SCO MTU: 64:1
> >>>> DOWN
> >>>> RX bytes:547 acl:0 sco:0 events:27 errors:0
> >>>> TX bytes:384 acl:0 sco:0 commands:27 errors:0
> >>>> Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
> >>>> Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
> >>>> Link policy: RSWITCH SNIFF
> >>>> Link mode: SLAVE ACCEPT
> >>>>
> >>>> But If I unplug and plug USB dongle, and then try same command
> >>>> (hciconfig
> >>>> hci0 up), It works. Even "hcitool scan" command also working after
> >>>> that.
> >>>>
> >>>> Why 1st time not working when USB dongle is connected?
> >>>> Also when I check Bluez debug log in logcat.
> >>>> I am getting one error log when USB dongle connected during boot.
> >>>> E/bluetoothd( 841): Failed to set mode: Blocked through rfkill
> >>>> (0x12).
> >>>
> >>> I think that blocked through rfkill is pretty obvious. Check with the
> >>> rfkill tool on what the current settings are. For some reason it seems
> >>> Bluetooth is blocked by default. And I remember there were some kernel
> >>> patches for this. Just do not remember the details.
> >>>
> >>> Regards
> >>>
> >>> Marcel
> >>>
> >>> --
> >>> To unsubscribe from this list: send the line "unsubscribe
> >>> linux-bluetooth"
> >>> in
> >>> the body of a message to majordomo@vger.kernel.org
> >>> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >>
> >> Hi,
> >>
> >> Thanks for the reply.
> >>
> >> In my busybox utils rfkill is not enabled. If I enable it and try
> >> "rfkill
> >> unblock" is that will be enough? or I need to search for Kernel patch
> >> that
> >> fixes this rfkill block issue?
> >
> > Hi,
> >
> > By Analysing I found 3 scenarios and only in one scenario BT is working.
> > Scenario 1 : Connect USB BT Dongle and then boot the android device.Then
> > Turn on from Android Bluetooth settings
> >
> > Result: Not working. Rfkill block error.
> > E/bluetoothd( 868): Failed to set mode: Blocked through rfkill (0x12)
> >
> > Scenario 2: Connect USB BT Dongle and boot. Then unplug and plug again.
> > Then Turn on from Android Bluetooth settings.
> >
> > Result: Working: BT turning on and scanning BT/BLE devices.
> >
> > Scenario 3: Boot Android device and then plug the USB BT Dongle.Then Turn
> > on from Android Bluetooth settings.
> >
> > Result: Not working. Here we are not getting any debug prints from bluez.
> > Whether we need to rerun the init.bluetooth.rc as BT Dongle was not
> > connected during boot.
> > From Logcat,observing following error messages
> >
> > IBluetooth.configHciSnoopLog return false
> > Bluetooth module is not loaded
> >
> > Logcat:
> >
> > -------------------Start-------------------
> > D/BluetoothManagerService( 543): enable(): mBluetooth =null mBinding =
> > false
> > D/BluetoothManagerService( 543): Message: 1
> > D/BluetoothManagerService( 543): MESSAGE_ENABLE: mBluetooth = null
> > D/BluetoothAdapterService( 1032): REFCOUNT: CREATED. INSTANCE_COUNT2
> > D/BluetoothAdapterState( 1032): make
> > I/BluetoothAdapterState( 1032): Entering OffState
> > D/BluetoothManagerService( 543): BluetoothServiceConnection:
> > com.android.bluetooth.btservice.AdapterService
> > D/BluetoothManagerService( 543): Message: 40
> > D/BluetoothManagerService( 543): MESSAGE_BLUETOOTH_SERVICE_CONNECTED: 1
> > E/BluetoothManagerService( 543): IBluetooth.configHciSnoopLog return
> > false
> > D/BluetoothManagerService( 543): Calling onBluetoothServiceUp callbacks
> > D/BluetoothManagerService( 543): Broadcasting onBluetoothServiceUp() to 5
> > receivers.
> > D/BluetoothAdapterState( 1032): CURRENT_STATE=OFF, MESSAGE = USER_TURN_ON
> > D/BluetoothAdapterProperties( 1032): Setting state to 11
> > I/BluetoothAdapterState( 1032): Bluetooth adapter state changed: 10-> 11
> > D/BluetoothAdapterService( 1032): Broadcasting updateAdapterState() to 1
> > receivers.
> > D/BluetoothManagerService( 543): Message: 60
> > D/BluetoothManagerService( 543): MESSAGE_BLUETOOTH_STATE_CHANGE:
> > prevState = 10, newState=11
> > D/BluetoothManagerService( 543): Bluetooth State Change Intent: 10 -> 11
> > D/BluetoothBondStateMachine( 1032): make
> > D/BluetoothMapService( 1032): onReceive
> > I/BluetoothBondStateMachine( 1032): StableState(): Entering Off State
> > D/HeadsetService( 1032): Received start request. Starting profile...
> > D/HeadsetStateMachine( 1032): make
> > E/BluetoothHeadsetServiceJni( 1032): Bluetooth module is not loaded
> > D/A2dpService( 1032): Received start request. Starting profile...
> > V/Avrcp ( 1032): make
> > E/BluetoothAvrcpServiceJni( 1032): Bluetooth module is not loaded
> > D/A2dpStateMachine( 1032): make
> > E/BluetoothA2dpServiceJni( 1032): Bluetooth module is not loaded
> > D/A2dpStateMachine( 1032): Enter Disconnected: -2
> > D/HidService( 1032): Received start request. Starting profile...
> > E/BluetoothHidServiceJni( 1032): Bluetooth module is not loaded
> > D/HealthService( 1032): Received start request. Starting profile...
> > I/BluetoothAdapterState( 1032): Entering PendingCommandState State:
> > isTurningOn()=true, isTurningOff()=false
> > E/BluetoothHealthServiceJni( 1032): Bluetooth module is not loaded
> > D/BluetoothAdapterService( 1032): Profile still not
> > running:com.android.bluetooth.hdp.HealthService
> > D/PanService( 1032): Received start request. Starting profile...
> > D/BluetoothPanServiceJni( 1032): initializeNative(L110): pan
> > E/BluetoothPanServiceJni( 1032): ## ERROR : initializeNative(L115):
> > Bluetooth module is not loaded##
> > D/BluetoothTethering( 543): got CMD_CHANNEL_HALF_CONNECTED
> > E/BluetoothTethering( 543): Trying to set mAsyncChannel twice!
> > D/BtGatt.DebugUtils( 1032): handleDebugAction() action=null
> > D/HeadsetPhoneState( 1032): sendDeviceStateChanged. mService=0 mSignal=0
> > mRoam=0 mBatteryCharge=5
> > D/BtGatt.GattService( 1032): Received start request. Starting profile...
> > D/BtGatt.GattService( 1032): start()
> > E/BtGatt.JNI( 1032): ERROR: void android::initializeNative(JNIEnv*,
> > jobject)(L694): Bluetooth module is not loaded##
> > D/BluetoothAdapterService( 1032): Profile still not
> > running:com.android.bluetooth.hdp.HealthService
> > D/BluetoothAdapterService( 1032): Profile still not
> > running:com.android.bluetooth.hdp.HealthService
> > D/BluetoothMapService( 1032): Received start request. Starting profile...
> > D/BluetoothMapService( 1032): start()
> > D/BluetoothAdapterService( 1032): Profile still not
> > running:com.android.bluetooth.map.BluetoothMapService
> > D/BluetoothAdapterService( 1032): Profile still not
> > running:com.android.bluetooth.map.BluetoothMapService
> > D/BluetoothAdapterService( 1032): Profile still not
> > running:com.android.bluetooth.map.BluetoothMapService
> > D/BluetoothAdapterState( 1032): CURRENT_STATE=PENDING, MESSAGE = STARTED,
> > isTurningOn=true, isTurningOff=false
> > E/BluetoothAdapterState( 1032): Error while turning Bluetooth On
> > D/BluetoothAdapterProperties( 1032): Setting state to 10
> > I/BluetoothAdapterState( 1032): Bluetooth adapter state changed: 11-> 10
> > D/BluetoothAdapterService( 1032): Broadcasting updateAdapterState() to 1
> > receivers.
> > I/BluetoothAdapterState( 1032): Entering OffState
> > D/BluetoothManagerService( 543): Message: 60
> > D/BluetoothManagerService( 543): MESSAGE_BLUETOOTH_STATE_CHANGE:
> > prevState = 11, newState=10
> > D/BluetoothManagerService( 543): Broadcasting
> > onBluetoothStateChange(false) to 10 receivers.
> > D/BluetoothA2dp( 543): onBluetoothStateChange: up=false
> > D/BluetoothHeadset( 543): onBluetoothStateChange: up=false
> > D/BluetoothPbap( 851): onBluetoothStateChange: up=false
> > D/BluetoothHeadset( 839): onBluetoothStateChange: up=false
> > D/BluetoothMap( 851): onBluetoothStateChange: up=false
> > D/BluetoothHeadset( 839): onBluetoothStateChange: up=false
> > D/BluetoothHeadset( 839): onBluetoothStateChange: up=false
> > D/BluetoothInputDevice( 851): onBluetoothStateChange: up=false
> > D/BluetoothManagerService( 543): Bluetooth State Change Intent: 11 -> 10
> > E/BluetoothManagerService( 543): recoverBluetoothServiceFromError
> > D/BluetoothMapService( 1032): onReceive
> > D/DockEventReceiver( 851): finishStartingService: stopping service
> > W/ContextImpl( 851): Calling a method in the system process without a
> > qualified user: android.app.ContextImpl.startService:1487
> > android.content.ContextWrapper.startService:494
> > android.content.ContextWrapper.startService:494
> > com.android.settings.bluetooth.DockEventReceiver.beginStartingService:134
> > com.android.settings.bluetooth.DockEventReceiver.onReceive:115
> > D/BluetoothManagerService( 543): Sending off request.
> > D/BluetoothAdapterState( 1032): CURRENT_STATE=OFF, MESSAGE = USER_TURN_OFF
> > D/BluetoothManagerService( 543): Calling onBluetoothServiceDown callbacks
> > D/BluetoothManagerService( 543): Broadcasting onBluetoothServiceDown() to
> > 5 receivers.
> > D/BluetoothAdapterService( 1032): Cleaning up adapter native....
> > D/BluetoothAdapterService( 1032): Done cleaning up adapter native....
> > D/BluetoothAdapterService(746876560)( 1032): ****onDestroy()********
> >
> > -------------------End---------------------
> >
> > For Scenario 1 , I am trying to build rfkill tool for android(Currently no
> > success). Can we change the state from code by opening rfkill path
> > "/sys/class/rfkill/rfkill0/state" and write 1 to enable?
> >
> > But scenario 3 looks like I missed some configuration.
> >
> > What could be the problem?
> >
> > Regards,
> > KP
> >
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth"
> > in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> Hi All,
>
>
> I analysed the Android flow and found that Android System server will
> initialize and check for bluetooth hardware on during Boot. So if we
> connect the USB BT Dongle after boot Android BT service may not identify
> it.
> May be this is the reason because of which scenario 3 (Boot Android device
> and then plug the USB BT Dongle.Then Turn on from Bluetooth setting) is
> not working.
> This is my understanding. Correct me If I am wrong.
>
> Anyone tried USB BT pnp on android?
This should work but you need to load modules on boot (or have all compiled
into kernel).
--
BR
Szymon Janc
next prev parent reply other threads:[~2015-09-08 13:12 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-08 9:51 USB BT gives problem If device plugged during boot to platform krishnaks
2015-09-08 13:04 ` krishnaks
2015-09-08 13:12 ` Szymon Janc [this message]
2015-09-08 14:09 ` krishnaks
2015-09-09 7:36 ` Szymon Janc
2015-09-09 10:58 ` krishnaks
2015-09-11 12:18 ` krishnaks
2015-09-12 10:21 ` Marcel Holtmann
-- strict thread matches above, loose matches on Subject: below --
2015-08-28 13:31 krishnaks
2015-08-28 19:07 ` Marcel Holtmann
2015-08-31 7:13 ` krishnaks
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=4063128.4B3eOl7Vlx@leonov \
--to=ext.szymon.janc@tieto.com \
--cc=krishnaks@iwavesystems.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcel@holtmann.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).