The MPOW Bluetooth 5 dongle (Model: BH456A) does not work out of the box on Ubuntu 20.04 (kernel 5.4.0-42).
Patch the bluetooth kernel module and copy the firmware binaries to /lib/firmware.
MPOW hosts a linux driver on their homepage. Download it via:
wget https://mpow.s3-us-west-1.amazonaws.com/mpow_MPBH456AB_driver+for+Linux.tgzExtract the contents
tar xvf mpow_MPBH456AB_driver+for+Linux.tgzand copy the firmware files to the appropriate system directory
SRCDIR="20200610_LINUX_BT_DRIVER/rtkbt-firmware/lib/firmware"
sudo cp $SRCDIR/rtl8761bu_fw /lib/firmware/rtl_bt/rtl8761b_fw.bin
sudo cp $SRCDIR/rtl8761bu_config /lib/firmware/rtl_bt/rtl8761b_config.binThis patch fixed a bug in the bluetooth module wrongly identifying the bluetooth chip as another version. For reference, I added the patch to this gist.
To fix this, get the kernel source
git clone --depth 1 --single-branch --branch master git://kernel.ubuntu.com/ubuntu/ubuntu-focal.gitfor your ubuntu version.
Change master for whatever version you are on if its different.
Then apply the patch with
patch -p 1 < 2-1-1-Bluetooth-btrtl-Add-support-for-RTL8761B.diffand fix possible conflicts.
Then its time to build the bluetooth module.
First copy the old driver
sudo cp -r /lib/modules/$(uname -r)/kernel/drivers/bluetooth
/lib/modules/$(uname -r)/kernel/drivers/bluetooth_bakInside the cloned repository first get the current kernels config
make oldconfig
make prepare
make scriptsand build the bluetooth module
cd drivers/bluetooth
make -C /lib/modules/$(uname -r)/build M=$(pwd) modulesand copy the ko module files to the systems module dir which we backed up before.
sudo cp *.ko /lib/modules/$(uname -r)/kernel/drivers/bluetoothThis will overwrite the existing modules.
Running make install didn't work for me because of a missing certification error.
Probably the official Ubuntu kernel is signed.
I don't have secure boot activated, so for we unsigned drivers work fine.
Now reboot and everything should be fine.
Hi @jns-v,
Hopefully you found a solution to you problem in the meantime. In case you didn't, let me try my best.
Unfortunately I don't know the values for your case. I found the patch inside a bug report written by another person.
One thing you could try is to get the 5.4.72 arch kernel source and have a look at drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c to see how the device is handled there. My guess would be that there is an entry in the form of
IC_INFO(RTL_ROM_LMP_8761A, 0x...)which identifies the device, just as in the patch above. There should then be an entry like line 17 and following of the patch.Copying these pieces over to the current kernels source and compiling the bluetooth drivers as in my readme above could work.
Good luck!
Thomas