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