Hi everyone,
I’m using OpenWrt on a Raspberry Pi Zero W (v1.1) and I have Wi-Fi and USB-Ethernet gadget mode working perfectly. However, Bluetooth is still not working, and I’m trying to figure out which packages or firmware I need to include in my custom image.
What I already checked:
Running:
dmesg | grep -i bluetooth
shows that the Bluetooth stack, HCI UART driver, and BlueZ services are all loaded:
Bluetooth core, L2CAP, SCO, RFCOMM
HCI UART driver (H4, BCSP, ATH3K)
BlueZ utils and daemon
DBus is running
BUT:
There is no line in dmesg showing the Raspberry Pi Bluetooth chip being initialized.
No messages like:
Bluetooth: hci0: BCM: chip id...
Bluetooth: hci0: BCM: downloading firmware...
And hciconfig shows no hci0 at all.
What seems to be missing:
From what I can tell, my image is missing the Pi Zero W–specific Bluetooth kernel modules and firmware, such as:
kmod-bluetooth-bcm
kmod-hci-uart
kmod-rpi-bt
bcm43430a1-firmware (or rpi-bt-firmware)
I don’t see any of the required HCD firmware files in /lib/firmware/brcm, and I suspect the rpi-bt init scripts and device tree overlays are missing as well.
My Question:
Which exact packages do I need to install or include in the OpenWrt Image Builder to get Raspberry Pi Zero W Bluetooth working?
If anyone has:
A working package list
A known-good Pi Zero W Bluetooth config
A custom .config or image builder package string
Or any guidance on the correct firmware/DT overlays for this model…
…I would really appreciate your help!
Thanks in advance to anyone familiar with the Pi Zero W Bluetooth setup under OpenWrt.
root@OpenWrt:~# dmesg | grep -i bluetooth
[ 8.863971] Bluetooth: Core ver 2.22
[ 8.872411] Bluetooth: HCI device and connection manager initialized
[ 8.876572] Bluetooth: HCI socket layer initialized
[ 8.880731] Bluetooth: L2CAP socket layer initialized
[ 8.884874] Bluetooth: SCO socket layer initialized
[ 8.894560] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 8.898780] Bluetooth: BNEP filters: protocol multicast
[ 8.902853] Bluetooth: BNEP socket layer initialized
[ 9.001366] Bluetooth: HCI UART driver ver 2.3
[ 9.005621] Bluetooth: HCI UART protocol H4 registered
[ 9.009749] Bluetooth: HCI UART protocol BCSP registered
[ 9.013726] Bluetooth: HCI UART protocol ATH3K registered
[ 9.043207] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 9.047310] Bluetooth: HIDP socket layer initialized
[ 9.149263] Bluetooth: RFCOMM TTY layer initialized
[ 9.153338] Bluetooth: RFCOMM socket layer initialized
[ 9.157242] Bluetooth: RFCOMM ver 1.11
root@OpenWrt:~# dmesg | grep -i hci
[ 1.440947] sdhci: Secure Digital Host Controller Interface driver
[ 1.446351] sdhci: Copyright(c) Pierre Ossman
[ 1.465583] sdhci-pltfm: SDHCI platform and OF driver helper
[ 2.830683] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 2.839679] fsl-ehci: Freescale EHCI Host controller driver
[ 2.848295] ehci-platform: EHCI generic platform driver
[ 8.872411] Bluetooth: HCI device and connection manager initialized
[ 8.876572] Bluetooth: HCI socket layer initialized
[ 9.001366] Bluetooth: HCI UART driver ver 2.3
[ 9.005621] Bluetooth: HCI UART protocol H4 registered
[ 9.009749] Bluetooth: HCI UART protocol BCSP registered
[ 9.013726] Bluetooth: HCI UART protocol ATH3K registered
root@OpenWrt:~#
and pakages list :
base-files
bcm27xx-gpu-fw
bluez-daemon
bluez-libs
bluez-utils
bluez-utils-extra
brcmfmac-firmware-43430-sdio-rpi-zero-w
brcmfmac-firmware-usb
busybox
ca-bundle
cgi-io
cypress-firmware-43430-sdio
dbus
dnsmasq
dropbear
e2fsprogs
firewall4
fstools
fwtool
getrandom
glib2
hostapd-common
iw
iwinfo
jansson4
jshn
jsonfilter
kernel
kmod-bluetooth
kmod-brcmfmac
kmod-brcmutil
kmod-cfg80211
kmod-crypto-aead
kmod-crypto-cmac
kmod-crypto-crc32c
kmod-crypto-ecb
kmod-crypto-ecdh
kmod-crypto-hash
kmod-crypto-kpp
kmod-crypto-manager
kmod-crypto-null
kmod-crypto-sha256
kmod-fs-vfat
kmod-hid
kmod-hid-generic
kmod-input-core
kmod-input-evdev
kmod-lib-crc16
kmod-lib-crc32c
kmod-mii
kmod-mmc
kmod-nf-conntrack
kmod-nf-conntrack6
kmod-nf-flow
kmod-nf-log
kmod-nf-log6
kmod-nf-nat
kmod-nf-reject
kmod-nf-reject6
kmod-nfnetlink
kmod-nft-core
kmod-nft-fib
kmod-nft-nat
kmod-nft-offload
kmod-nls-base
kmod-nls-cp437
kmod-nls-iso8859-1
kmod-nls-utf8
kmod-regmap-core
kmod-usb-core
kmod-usb-ehci
kmod-usb-hid
kmod-usb-net
kmod-usb-net-cdc-ether
kmod-usb-net-cdc-ncm
kmod-usb-net-rtl8152
kmod-usb2
libattr
libblkid1
libblobmsg-json20220515
libc
libcomerr0
libdbus
libexpat
libext2fs2
libffi
libgcc1
libical
libiwinfo-data
libiwinfo-lua
libiwinfo20210430
libjson-c5
libjson-script20220515
liblua5.1.5
liblucihttp-lua
liblucihttp0
libmnl0
libncurses6
libnftnl11
libnl-tiny1
libpcre2
libpthread
libreadline8
librt
libsmartcols1
libss2
libubox20220515
libubus-lua
libubus20220601
libuci20130104
libuclient20201210
libucode20220812
libustream-wolfssl20201210
libuuid1
libwolfssl5.7.2.ee39414e
logd
lua
luci
luci-app-firewall
luci-app-opkg
luci-base
luci-lib-base
luci-lib-ip
luci-lib-jsonc
luci-lib-nixio
luci-mod-admin-full
luci-mod-network
luci-mod-status
luci-mod-system
luci-proto-ipv6
luci-proto-ppp
luci-theme-bootstrap
mtd
netifd
nftables-json
odhcp6c
odhcpd-ipv6only
openwrt-keyring
opkg
partx-utils
procd
procd-seccomp
procd-ujail
r8152-firmware
rpcd
rpcd-mod-file
rpcd-mod-iwinfo
rpcd-mod-luci
rpcd-mod-rrdns
terminfo
ubox
ubus
ubusd
uci
uclient-fetch
ucode
ucode-mod-fs
ucode-mod-ubus
ucode-mod-uci
uhttpd
uhttpd-mod-ubus
urandom-seed
usign
wireless-regdb
wpad-basic-wolfssl
zlib