I have this box, X96_Max_Plus_A100, using Amlogic-ng.arm-20-Nexus-nightly_20211216 with the sm1_s905x3_4g.dtb
Bluetooth works well with the stock Android 9, but does not really work with Coreelec. Range is about 1 foot and keeps disconnecting, etc.
I am able to connect to the Android system with adb and remount as root, so I have some questions about the way Android loads bluetooth and whether i may be able to use the information to get similar bluetooth performance in Corelec?
First I looked at /vendor/etc/bluetooth
franklin:/ # ls -a /vendor/etc/bluetooth
. BCM43430A0.hcd BCM43751.hcd bcm4354a1.hcd
.. BCM43430B0.hcd auto_pairing.conf bcm43569a2.hcd
4343.hcd BCM4345C0.hcd bcm43241b4.hcd blacklist.conf
BCM20702.hcd BCM4345C5.hcd bcm43341b0.hcd bt_vendor.conf
BCM20703A2.hcd BCM4354.hcd bcm43342.hcd
BCM2076.hcd BCM4359C0.hcd bcm4335c0.hcd
BCM4330.hcd BCM4362A2.hcd bcm4350.hcd
franklin:/ # cat /vendor/etc/bluetooth/bt_vendor.conf
# UART device port where Bluetooth controller is attached
UartPort = /dev/ttyS1
# Firmware patch file location
FwPatchFilePath = /etc/bluetooth/
Then I looked at those patch files
franklin:/ # ls /etc/bluetooth/
bt_did.conf bt_stack.conf
franklin:/ # cat /etc/bluetooth/bt_did.conf
# Device ID (DID) configuration
[DID1]
# Primary Record - true or false (default)
# There can be only one primary record
primaryRecord = true
# Vendor ID '0xFFFF' indicates no Device ID Service Record is present in the device
# 0x000F = Broadcom Corporation (default)
#vendorId = 0x000F
# Vendor ID Source
# 0x0001 = Bluetooth SIG assigned Device ID Vendor ID value (default)
# 0x0002 = USB Implementer's Forum assigned Device ID Vendor ID value
#vendorIdSource = 0x0001
# Product ID & Product Version
# Per spec DID v1.3 0xJJMN for version is interpreted as JJ.M.N
# JJ: major version number, M: minor version number, N: sub-minor version number
# For example: 1200, v14.3.6
productId = 0x1200
version = 0x1436
# Optional attributes
#clientExecutableURL =
#serviceDescription =
#documentationURL =
#=================================================================================================#
# Device ID (DID) configuration
[DID2]
# Primary Record - true or false (default)
# There can be only one primary record
#primaryRecord = false
# Vendor ID '0xFFFF' indicates no Device ID Service Record is present in the device
# 0x000F = Broadcom Corporation (default)
#vendorId = 0x000F
# Vendor ID Source
# 0x0001 = Bluetooth SIG assigned Device ID Vendor ID value (default)
# 0x0002 = USB Implementer's Forum assigned Device ID Vendor ID value
#vendorIdSource = 0x0001
# Product ID & Product Version
# Per spec DID v1.3 0xJJMN for version is interpreted as JJ.M.N
# JJ: major version number, M: minor version number, N: sub-minor version number
# Default: 0x0000, v00.0.0
#productId = 0x0000
#version = 0x0000
# Optional attributes
#clientExecutableURL =
#serviceDescription =
#documentationURL =
#=================================================================================================#
# Device ID (DID) configuration
[DID3]
# Primary Record - true or false (default)
# There can be only one primary record
#primaryRecord = false
# Vendor ID '0xFFFF' indicates no Device ID Service Record is present in the device
# 0x000F = Broadcom Corporation (default)
#vendorId = 0x000F
# Vendor ID Source
# 0x0001 = Bluetooth SIG assigned Device ID Vendor ID value (default)
# 0x0002 = USB Implementer's Forum assigned Device ID Vendor ID value
#vendorIdSource = 0x0001
# Product ID & Product Version
# Per spec DID v1.3 0xJJMN for version is interpreted as JJ.M.N
# JJ: major version number, M: minor version number, N: sub-minor version number
# Default: 0x0000, v00.0.0
#productId = 0x0000
#version = 0x0000
# Optional attributes
#clientExecutableURL =
#serviceDescription =
#documentationURL =
franklin:/ # ls /etc/bluetooth/
bt_did.conf bt_stack.conf
franklin:/ # cat /etc/bluetooth/bt_stack.conf
# Enable trace level reconfiguration function
# Must be present before any TRC_ trace level settings
TraceConf=true
# Trace level configuration
# BT_TRACE_LEVEL_NONE 0 ( No trace messages to be generated )
# BT_TRACE_LEVEL_ERROR 1 ( Error condition trace messages )
# BT_TRACE_LEVEL_WARNING 2 ( Warning condition trace messages )
# BT_TRACE_LEVEL_API 3 ( API traces )
# BT_TRACE_LEVEL_EVENT 4 ( Debug messages for events )
# BT_TRACE_LEVEL_DEBUG 5 ( Full debug messages )
# BT_TRACE_LEVEL_VERBOSE 6 ( Verbose messages ) - Currently supported for TRC_BTAPP only.
TRC_BTM=2
TRC_HCI=2
TRC_L2CAP=2
TRC_RFCOMM=2
TRC_OBEX=2
TRC_AVCT=2
TRC_AVDT=2
TRC_AVRC=2
TRC_AVDT_SCB=2
TRC_AVDT_CCB=2
TRC_A2D=2
TRC_SDP=2
TRC_SMP=2
TRC_BTAPP=2
TRC_BTIF=2
TRC_BNEP=2
TRC_PAN=2
TRC_HID_HOST=2
TRC_HID_DEV=2
# This is Log configuration for new C++ code using LOG() macros.
# See libchrome/base/logging.h for description on how to configure your logs.
# sample configuration:
#LoggingV=--v=0
#LoggingVModule=--vmodule=*/btm/*=1,btm_ble_multi*=2,btif_*=1
# PTS testing helpers
# Secure connections only mode.
# PTS_SecurePairOnly=true
# Disable LE Connection updates
#PTS_DisableConnUpdates=true
# Disable BR/EDR discovery after LE pairing to avoid cross key derivation errors
#PTS_DisableSDPOnLEPair=true
# SMP Pair options (formatted as hex bytes) auth, io, ikey, rkey, ksize
#PTS_SmpOptions=0xD,0x4,0xf,0xf,0x10
# PTS AVRCP Test mode
#PTS_AvrcpTest=true
# SMP Certification Failure Cases
# Set any of the following SMP error values (from smp_api_types.h)
# to induce pairing failues for various PTS SMP test cases.
# Setting PTS_SmpFailureCase to 0 means normal operation.
# Failure modes:
#
# SMP_PASSKEY_ENTRY_FAIL = 1
# SMP_PAIR_AUTH_FAIL = 3
# SMP_CONFIRM_VALUE_ERR = 4
# SMP_PAIR_NOT_SUPPORT = 5
# SMP_PAIR_FAIL_UNKNOWN = 8
# SMP_REPEATED_ATTEMPTS = 9
# SMP_NUMERIC_COMPAR_FAIL = 12
#PTS_SmpFailureCase=0
So I am wondering if there is a way I can use these files bt_did.conf bt_stack.conf to try to improve BT performance in my Corelec installation?
Here is what lsmod shows in Android 9 franklin:/ # lsmod Module Size Used by dhd 1683456 0 galcore 344064 0 aml_hardware_dmx 139264 0 amvdec_mavs 40960 0 vpu 45056 0 encoder 49152 0 amvdec_avs2 192512 0 amvdec_vp9 110592 0 amvdec_vc1 57344 0 amvdec_real 40960 0 amvdec_mmpeg4 40960 0 amvdec_mpeg4 57344 0 amvdec_mmpeg12 40960 0 amvdec_mpeg12 102400 0 amvdec_mmjpeg 28672 0 amvdec_mjpeg 40960 0 amvdec_h265 131072 0 amvdec_h264mvc 53248 0 amvdec_mh264 151552 0 amvdec_h264 135168 0 amvdec_avs 65536 0 stream_input 163840 12 aml_hardware_dmx,amvdec_mavs,amvdec_avs2,amvdec_vp9,amvdec_real,amvdec_mmpeg12,amvdec_mpeg12,amvdec_h265,amvdec_h264mvc,amvdec_mh264,amvdec_h264,amvdec_avs decoder_common 159744 18 amvdec_mavs,encoder,amvdec_avs2,amvdec_vp9,amvdec_vc1,amvdec_real,amvdec_mmpeg4,amvdec_mpeg4,amvdec_mmpeg12,amvdec_mpeg12,amvdec_mmjpeg,amvdec_mjpeg,amvdec_h265,amvdec_h264mvc,amvdec_mh264,amvdec_h264,amvdec_avs,stream_input firmware 24576 19 amvdec_mavs,encoder,amvdec_avs2,amvdec_vp9,amvdec_vc1,amvdec_real,amvdec_mmpeg4,amvdec_mpeg4,amvdec_mmpeg12,amvdec_mpeg12,amvdec_mmjpeg,amvdec_mjpeg,amvdec_h265,amvdec_h264mvc,amvdec_mh264,amvdec_h264,amvdec_avs,stream_input,decoder_common media_clock 36864 14 aml_hardware_dmx,amvdec_mavs,vpu,encoder,amvdec_avs2,amvdec_vp9,amvdec_mpeg12,amvdec_h265,amvdec_mh264,amvdec_h264,amvdec_avs,stream_input,decoder_common,firmware tb_detect 20480 0 atbm8881_fe_32 118784 0 mali_kbase 471040 36
EDIT: SOLVED!
I see it is moved here, thanks. Sorry for the cross post. I can now report that bluetooth is working great on here. Here is what I did:
- Copied the 4354 files from here My Files to /storage/.config/firmware/brcm
- rebooted
Let me know if I can supply any log files that might help