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.
I do not understand these instructions, the file 20201202_mpow_BH456A_driver+for+Linux.7z
from https://mpow.s3-us-west-1.amazonaws.com/20201202_mpow_BH456A_driver+for+Linux.7z does not contain a file rtl8761bu_fw.bin
The URL https://mpow.s3-us-west-1.amazonaws.com/mpow_MPBH456AB_driver+for+Linux.tgz gives an access denied error.
I was able to fetch the individual files this way:
After copying to /usr/lib/firmware/rtl_bt the files seem to get loaded, but then I get the error:
Bluetooth: hci0: RTL: extension section signature mismatchI found a file https://mpow.s3-us-west-1.amazonaws.com/mpow_MPBH456AB_driver+for+Linux.tgz which expands to 20200610_LINUX_BT_DRIVER/ but this one also does not contain
rtl8761bu_{config,fw.}bin