RTL8723BS Internal Bluetooth Support, it is possible?

Hello everyone!

I have a Tanix TX3 Max with integrated Bluetooth and I would love to use it to not have an external Bluetooth connected occupying a USB slot.

The RTL8723BS chipset is a single chipset that combines WiFi and Bluetooth.

WiFi works perfectly, I use Nighly builds of CoreELEC

Thanks for reading and glad to receive some answers.

Greetings.

It should already be supported, can you give the output of

udevadm info /sys/bus/sdio/devices/sdio* | paste

http://ix.io/1RBk

Are you sure you have RTL8723BS?

That data points to Broadcom BCM4334

same issue with my BCM4334 wifi works but BT does not in the nightlies. Both work in the stable branch.

You got confused with another user. :smiley:

This is my device Tanix TX3 Max
http://ix.io/1RDM

The WiFi works very well, but the internal Bluetooth does not work, so I have connected an external one that works but I would like the internal one to work.

Greetings!

Please enter the following command on SSH and see if Bluetooth works

/usr/bin/rtk_hciattach -n -s 115200 ttyS1 rtk_h5

Unfortunately it doesn’t work :frowning_face:

I unplugged the USB Bluetooth and run the command but CoreELEC still can’t fin Bluetooth devices, with the external Bluetooth it’s works.

Internal Bluetooth works on Android stock firmware.

/usr/bin/rtk_hciattach -n -s 115200 ttyS1 rtk_h5
Realtek Bluetooth init uart with init speed:115200, final_speed:115200, type:HCI UART H5
Realtek Bluetooth :Realtek hciattach version 2.5

Realtek Bluetooth :3-wire sync pattern resend : 1, len: 8

Realtek Bluetooth :Get SYNC Resp Pkt

Realtek Bluetooth :3-wire config pattern resend : 1 , len: 10
Realtek Bluetooth :Get SYNC pkt-active mode

Realtek Bluetooth :Get SYNC pkt-active mode

Realtek Bluetooth :Get CONFG pkt-active mode

Realtek Bluetooth :3-wire config pattern resend : 2 , len: 10
Realtek Bluetooth :Get CONFG resp pkt-active mode

Realtek Bluetooth :H5 init finished

Realtek Bluetooth :config offset(f4),length(8)
Realtek Bluetooth :config baud rate to :5002, hwflowcontrol:5f, 1
Realtek Bluetooth :config offset(27),length(1)
Realtek Bluetooth :config offset(fe),length(1)
Realtek Bluetooth :config offset(15b),length(4)
Realtek Bluetooth :config offset(1e3),length(1)
Realtek Bluetooth :config offset(db),length(1)
Realtek Bluetooth :Get config baud rate from config file:5002
Realtek Bluetooth :Load FW OK
Realtek Bluetooth :RTK send HCI_VENDOR_READ_RTK_ROM_VERISION_Command

Realtek Bluetooth :Send FW last command
Realtek Bluetooth :hci_download_patch tx_index:100 rx_index: 99

Realtek Bluetooth :Received reliable seqno 7 from card
Realtek Bluetooth :rtk_hw_cfg.rx_index 100

Realtek Bluetooth :Init Process finished
Realtek Bluetooth post process
Device setup complete

Try

/usr/bin/rtk_hciattach -n -s 115200 /dev/ttyS1 rtk_h5 2000000

Neither does it work :disappointed:
First i unplugged the external bluetooth and display it says: Bluetooth Disable, and when i run the latest command says: Can not found Bluetooth Devices

External Bluetooth still working perfectly.

You need to remove the dongle and reboot and then execute the command.

Once you have executed rtk_hciattach execute rfkill list and paste the output.

My BT just started working again after the nightly update ! Thanks all!

Hello adamg

I did exactly what you said, first I saw the dongle bluetooth works fine and then unplugged it, reboot the tv box and execute the command /usr/bin/rtk_hciattach -n -s 115200 /dev/ttyS1 rtk_h5 2000000 and later rfkill list.

Here is the output with the dongle disconnected.

CoreELEC (official): nightly_20190814 (Amlogic.arm)
CoreELEC:~ # rfkill list
0: bt-dev: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
2: hci0: Bluetooth
Soft blocked: no
Hard blocked: no

Here with the dongle connected.

CoreELEC:~ # rfkill list
0: bt-dev: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
2: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
3: hci1: Bluetooth
Soft blocked: no
Hard blocked: no

It’s very strange that it doesn’t work.

Thank you for support.

There were several fixes added tonight. Please try the next nighly build.

hci0 is your internal bluetooth so it is working otherwise it would not be there, so this is a good sign.

I have pushed some changes into the nightly but they will only be available in tomorrows image, so wait till then, download, update and then try again.

Tomorrow my box will be updated as every day with the new nighly build and I will check if the Bluetooth works and I will inform you :grinning:

Thanks @TheCoolest, @adamg and all CoreELEC developers!

Hi guys

I have to inform you that the internal Bluetooth is still not working. :worried:

Today my device was updated to nighly, but the message that a Bluetooth device was not found is still present, then I executed the command again.

This time the report is different.

CoreELEC (official): nightly_20190815 (Amlogic.arm)
CoreELEC:~ # /usr/bin/rtk_hciattach -n -s 115200 /dev/ttyS1 rtk_h5 2000000
Realtek Bluetooth init uart with init speed:115200, final_speed:2000000, type:HCI UART H5
Realtek Bluetooth :Realtek hciattach version 2.5

Realtek Bluetooth :3-wire sync pattern resend : 1, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 2, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 3, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 4, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 5, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 6, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 7, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 8, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 9, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 10, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 11, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 12, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 13, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 14, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 15, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 16, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 17, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 18, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 19, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 20, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 21, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 22, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 23, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 24, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 25, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 26, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 27, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 28, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 29, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 30, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 31, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 32, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 33, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 34, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 35, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 36, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 37, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 38, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 39, len: 0

Realtek Bluetooth :3-wire sync pattern resend : 40, len: 0

Realtek Bluetooth ERROR: H5 sync timed out

Hello guys

I found some information online, I don’t know if it can help you but hope it does. I can mention the sources but don’t know if it’s allowed, I’m going to put only the information.

Enabled CONFIG_RFKILL_GPIO = m then patch the linux using the old patch as below will also help in detecting bluetooth headset.

diff -ru a / net / rfkill / rfkill-gpio.c b / net / rfkill / rfkill-gpio.c
--- a / net / rfkill / rfkill-gpio.c 2017-02-26 05: 11: 18.000000000 -0500
+++ b / net / rfkill / rfkill-gpio.c 2017-04-24 12: 14: 28.860838267 -0400
@@ -161.6 +161.7 @@

#ifdef CONFIG_ACPI

static const struct acpi_device_id rfkill_acpi_match [] = {

    {"OBDA8723", RFKILL_TYPE_BLUETOOTH},
    {"BCM4752", RFKILL_TYPE_GPS},
    {"LNV4752", RFKILL_TYPE_GPS},
    {},

Here is another.

diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c
index 76c01cb…50ca65e 100644
— a/net/rfkill/rfkill-gpio.c
+++ b/net/rfkill/rfkill-gpio.c
@@ -163,6 +163,7 @@ static int rfkill_gpio_remove(struct platform_device *pdev)
static const struct acpi_device_id rfkill_acpi_match[] = {
{ “BCM4752”, RFKILL_TYPE_GPS },
{ “LNV4752”, RFKILL_TYPE_GPS },

  • { “OBDA8723”, RFKILL_TYPE_BLUETOOTH },
    { },
    };
    MODULE_DEVICE_TABLE(acpi, rfkill_acpi_match);

And the last one.

projects / Generic / linux / linux.x86_64.conf
@@ -3967.13 +3967.14 @@ CONFIG_SND_SOC_AMD_CZ_RT5645_MACH = m

CONFIG_SND_SOC_IMG is not set

CONFIG_SND_SOC_INTEL_SST_TOPLEVEL = y
CONFIG_SND_SST_IPC = m
CONFIG_SND_SST_IPC_PCI = m
CONFIG_SND_SST_IPC_ACPI = m
CONFIG_SND_SOC_INTEL_SST_ACPI = m
CONFIG_SND_SOC_INTEL_SST = m
CONFIG_SND_SOC_INTEL_SST_FIRMWARE = ​​m
CONFIG_SND_SOC_INTEL_HASWELL = m
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM = m

CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI is not set

CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI = m
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI = m
CONFIG_SND_SOC_INTEL_SKYLAKE = m
CONFIG_SND_SOC_ACPI_INTEL_MATCH = m

Thanks so much to all for the support.