Pi 4 BLE ağ geçidi: bluetoothctl varsayılan bir denetleyici bulunmadığını söylüyor
Yapay zekâ tarafından English dilinden çevrildi ·
Bitirme projem için bir Pi 4’ü BLE ağ geçidine dönüştürüyorum: laboratuvardaki altı RuuviTag’i dinliyor ve her birini v1/gw/telemetry üzerinden Hermetry’ye child device olarak bildiriyor. Hermetry kısmı, dizüstü bilgisayarımdan sahte veri gönderdiğimde çalışıyor.Bluetooth kısmı çalışmıyor. Pi üzerinde:
$ bluetoothctl
Agent registered
[bluetoothctl]# scan on
No default controller available
$ hciconfig -a
$
$ systemctl status bluetooth
Active: active (running)
Yani servis çalışıyor ama denetleyici yok. Pi 4 Model B, Raspberry Pi OS Bookworm 64-bit, yaklaşık bir ay önce yapılmış, yeni sayılabilecek bir kurulum. Birkaç hafta önce fiş yazıcı işi için kullandığım Pi’de aynı SD kart vardı; bu önemliyse diye belirteyim.
For my final-year project I’m turning a Pi 4 into a BLE gateway: it listens to six RuuviTags around the lab and reports each one to Hermetry as a child device over v1/gw/telemetry. The Hermetry part works when I feed it fake data from my laptop.
The Bluetooth part doesn’t. On the Pi:
$ bluetoothctl
Agent registered
[bluetoothctl]# scan on
No default controller available
$ hciconfig -a
$
$ systemctl status bluetooth
Active: active (running)
So the service runs but there’s no controller. Pi 4 Model B, Raspberry Pi OS Bookworm 64-bit, fresh-ish install from about a month ago. The same SD card was in the Pi I used for the receipt-printer thing a few weeks back, if that matters.
Yapay zekâ tarafından English dilinden çevrildi ·
bluez’i kurdun mu? Bence lite sürümünde varsayılan olarak yüklü değil
did you install bluez? I think it’s not there by default on lite
Yapay zekâ tarafından English dilinden çevrildi ·
Kurulu, yoksa bluetoothctl çalışmazdı.
It’s installed, bluetoothctl wouldn’t run otherwise.
Yapay zekâ tarafından English dilinden çevrildi ·
rfkill list ne gösteriyor? Yazılımsal engelleme de böyle görünür.
What does rfkill list show? A soft block looks like this too.
Yapay zekâ tarafından English dilinden çevrildi ·
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
Sadece Wi-Fi var, hiç Bluetooth girişi yok.
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
Only Wi-Fi, no Bluetooth entry at all.
Yapay zekâ tarafından English dilinden çevrildi ·
Hm, rfkill denetleyiciyi bile listelemiyorsa, çekirdek denetleyiciyi hiç ayağa kaldırmamış demektir.
Hm, if rfkill doesn’t even list it, the kernel never brought the controller up.
Yapay zekâ tarafından English dilinden çevrildi ·
Radyo olabilir. Bir keresinde Bluetooth’u çalışmayan ama Wi-Fi’si çalışan bir Pi 4 kullanmıştım, aynı çip ama yine de oluyor.
Could be the radio. I had a Pi 4 with dead Bluetooth but working Wi-Fi once, same chip but it happens.
Yapay zekâ tarafından English dilinden çevrildi ·
“Fiş yazıcıyla aynı SD kart” ipucu niteliğinde. /boot/firmware/config.txt dosyasını (Bookworm’da /boot yerine buraya taşındı) dtoverlay=disable-bt satırı için kontrol edin. Entegratörümüz bunu bir hat ağ geçidindeki RS-485 kartı için eklemişti; altı ay sonra biri aynı Pi’ye bir barkod okuyucuyu eşleştirmeye bir gün harcadı.Pi 4’te Bluetooth çipi iyi UART’a bağlıdır. disable-bt bu UART’ı GPIO pinlerine verir ve Bluetooth tamamen kaybolur; bu da rfkill çıktınızla uyuşuyor. Satırı yorum satırı yapın, ardından:
sudo systemctl enable --now hciuart
sudo reboot
# yeniden başlatmadan sonra
rfkill list # hci0: Bluetooth göstermeli
bluetoothctl show
Pi 4’te hem donanım UART’ına hem de Bluetooth’a ihtiyacınız varsa, dtoverlay=miniuart-bt Bluetooth’u mini UART üzerinde tutar; ya da Pi 4’te bulunan ek UART’lardan (uart2 ila uart5) birini kullanın.
“Same SD card as the receipt printer” is the clue. Check /boot/firmware/config.txt (on Bookworm it moved from /boot) for dtoverlay=disable-bt. Our integrator put that in for an RS-485 hat on a line gateway and six months later someone spent a day trying to pair a scanner to the same Pi.
On the Pi 4 the Bluetooth chip hangs off the good UART. disable-bt gives that UART to the GPIO pins and Bluetooth disappears completely, which matches your rfkill output. Comment the line out, then:
sudo systemctl enable --now hciuart
sudo reboot
# after reboot
rfkill list # should show hci0: Bluetooth
bluetoothctl show
If you need both a hardware UART and Bluetooth on the Pi 4, dtoverlay=miniuart-bt keeps Bluetooth on the mini UART, or use one of the extra UARTs (uart2 to uart5) the Pi 4 has.
Yapay zekâ tarafından English dilinden çevrildi ·
Sorun buymuş, printer projesinden kalan disable-bt satırı. Utanç verici. Satır yorum satırı yapıldı, hciuart etkinleştirildi, hci0 geri geldi ve altı etiketin tamamı taramada görünüyor. Artık Hermetry içinde alt öğeler olarak görünüyorlar.
That was it, the disable-bt line from the printer project. Embarrassing. Commented out, hciuart enabled, hci0 is back and all six tags show up in the scan. They’re appearing as children in Hermetry now.
Yapay zekâ tarafından English dilinden çevrildi ·
config.txt dosyasına eklediğiniz her satırın üstüne tarihi ve nedenini yazan bir yorum bırakmak değer. Bu, sonraki kişinin işini kolaylaştırır.
Worth leaving a comment above every line you add to config.txt with the date and why. Saves the next person.
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Sohbete katılın
Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

