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.tgz
Extract the contents
tar xvf mpow_MPBH456AB_driver+for+Linux.tgz
and 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.bin
This 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.git
for 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.diff
and 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_bak
Inside the cloned repository first get the current kernels config
make oldconfig
make prepare
make scripts
and build the bluetooth module
cd drivers/bluetooth
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
and copy the ko
module files to the systems module dir which we backed up before.
sudo cp *.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth
This 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.
Ubuntu 22.04 users: today these instructions stopped working due to a package update.
The new Bluetooth stack now looks for the (more accurate) filenames:
Notice the addition of the letter "u" just before the underscore. So, all you should need to do after downloading the driver is copy them to the new location:
If your device suddenly stopped working, you can confirm that this is your issue by running
dmesg
ortail -f /var/log/kern.log
and then try to turn on Bluetooth under Gnome Menu > Bluetooth Settings. You should see an error message stating that it could not find the file rtl8761bu_fw.bin.