Creating a bug report/issue
trying to enable bluetooth on an Orange Pi 5+ with the RTL8852BE wifi+bt module fails to load correctly. When I enable bluetooth in dietpi-config
it reports that bluetooth is “On” however when I run hcitool dev
it doesn’t show any devices.
Required Information
-
DietPi version | G_DIETPI_VERSION_CORE=9 G_DIETPI_VERSION_SUB=3 G_DIETPI_VERSION_RC=0 G_GITBRANCH='master' G_GITOWNER='MichaIng'
-
Distro version | bookworm
-
Kernel version | Linux dietpi 6.1.43-vendor-rk35xx #1 SMP Sat Apr 27 18:12:21 UTC 2024 aarch64 GNU/Linux
-
Architecture | arm64
-
SBC model | Orange Pi 5 Plus (aarch64)
or (EG: RPi3)
-
Power supply used | 5V@4A USB C
-
SD card used | N/A (Samsung 970 EVO Plus)
Additional Information (if applicable)
- Kernel updated to 6.1.43-vendor-rk35xx through troubleshooting but this also happened on 5.10.160-legacy-rk35xx
Steps to reproduce
- enable bluetooth in
dietpi-config
hcitool dev
shows no devices
Expected behaviour
bluetooth should be enabled and device visible
Actual behaviour
bluetooth device is not visible
Extra details
Enabling bluetooth shows an error at the end
[FAILED] bluetooth enable | Exited with error
however this has been identified as a visual bug only (Orange Pi 5+ should we have switched kernel? - #48 by MichaIng)
Please check for related kernel errors:
dmesg -l 0,1,2,3
dmesg | grep 8852
I think the firmware is missing. Please try with the full firmware package:
apt install armbian-firmware-full
modprobe rtw89_8852be
That one is huge. If it works, I’ll add a patch to have this added to our armbian-firmware
package.
EDIT: Ah, and with Linux 6.1, the driver itself is missing, I think. Here a commit from Armbian to add it: net: wireless: realtek: Sync rtw89 driver from linux6.2 · orangepi-xunlong/linux-orangepi@96b2d28 · GitHub
Armbian still misses this update: linux-rockchip/drivers/net/wireless/realtek/rtw89/Kconfig at cdbd7566a3a017d407c8a9a9af176c7ca46c8c69 · armbian/linux-rockchip · GitHub
If really the firmware update does not work yet/the driver does not exist, I’ll try to apply the commit as patch for our builds.
EDIT2: Lol, I forgot that I applied this patch already, so the driver is there : rk35xx-vendor: update rtw89 via patch for RTL8852BE support · MichaIng/build@ad4e77c · GitHub
dmesg -l 0,1,2,3
...
[22157.464026] Bluetooth: hci0: RTL: firmware file rtl_bt/rtl8852bu_fw.bin not found
dmesg | grep rtl8852
[22157.462496] Bluetooth: hci0: RTL: loading rtl_bt/rtl8852bu_fw.bin
[22157.464004] bluetooth hci0: Direct firmware load for rtl_bt/rtl8852bu_fw.bin failed with error -2
[22157.464026] Bluetooth: hci0: RTL: firmware file rtl_bt/rtl8852bu_fw.bin not found
after installing armbian-firmware-full
it still wasn’t showing up in hcitool dev
but when I checked rfkill
it showed
ID TYPE DEVICE SOFT HARD
0 bluetooth bt_default blocked unblocked
1 wlan phy0 unblocked unblocked
so I used rfkill unblock 0
which resulted in rfkill
showing a new bluetooth ID that was still blocked
ID TYPE DEVICE SOFT HARD
0 bluetooth bt_default unblocked unblocked
1 wlan phy0 unblocked unblocked
2 bluetooth hci0 blocked unblocked
…so rfkill unblock 2
and now it seems to be working!
#hcitool dev
Devices:
hci0 40:9C:...
1 Like
Great. Since we do not pre-install rfkill
and remove all software blocks from our images, it should then work OOTB, once the firmware was added.
For myself:
Thanks so much for your help!
Is there anything I need to do in terms of reverting my changes before updating when these changes take effect in a future release (namely the armbian-firmware-full
package and the kernel update)? I probably installed rfkill
in my troubleshooting so I guess I can remove that at least.
No need to revert anything. I’ll inform you once an armbian-firmware
package with those additional blobs is in our repo, then you could free up some disk space with
apt install armbian-firmware
which replaces the -full
package.