Bluetooth not working on older iMac Broadcom BCM4321

inxi -Fxxxza                                                                                                                                          ✔ 

System:    Kernel: 5.10.15-1-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.1 
           parameters: BOOT_IMAGE=/boot/vmlinuz-5.10-x86_64 root=UUID=633c5b42-5cb3-45ea-9822-32e4832d57af ro quiet apparmor=1 
           security=apparmor resume=UUID=dcf3897e-8d5f-4feb-961e-bae7d43fea82 udev.log_priority=3 
           Desktop: KDE Plasma 5.20.5 tk: Qt 5.15.2 wm: kwin_x11 dm: SDDM Distro: Manjaro Linux 
Machine:   Type: Desktop System: Apple product: iMac7,1 v: 1.0 serial: <filter> Chassis: type: 13 v: Mac-F4238CC8 
           serial: <filter> 
           Mobo: Apple model: Mac-F4238CC8 v: PVT serial: <filter> UEFI: Apple v: IM71.88Z.007A.B03.0803051705 date: 03/05/08 
Battery:   Device-1: hidpp_battery_0 model: Logitech Wireless Touch Keyboard K400 Plus serial: <filter> 
           charge: 100% (should be ignored) rechargeable: yes status: Discharging 
CPU:       Info: Dual Core model: Intel Core2 Duo T7300 bits: 64 type: MCP arch: Core Merom family: 6 model-id: F (15) 
           stepping: B (11) microcode: BA L2 cache: 4 MiB 
           flags: lm nx pae sse sse2 sse3 ssse3 vmx bogomips: 7982 
           Speed: 798 MHz min/max: 800/2000 MHz Core speeds (MHz): 1: 798 2: 798 
           Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
           Type: l1tf mitigation: PTE Inversion; VMX: EPT disabled 
           Type: mds status: Vulnerable: Clear CPU buffers attempted, no microcode; SMT disabled 
           Type: meltdown mitigation: PTI 
           Type: spec_store_bypass status: Vulnerable 
           Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization 
           Type: spectre_v2 mitigation: Full generic retpoline, STIBP: disabled, RSB filling 
           Type: srbds status: Not affected 
           Type: tsx_async_abort status: Not affected 
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] RV610/M74 [Mobility Radeon HD 2400 XT] vendor: Apple driver: radeon 
           v: kernel bus ID: 01:00.0 chip ID: 1002:94c8 class ID: 0300 
           Device-2: Apple Built-in iSight type: USB driver: uvcvideo bus ID: 2-4:2 chip ID: 05ac:8502 class ID: 0e02 
           serial: <filter> 
           Display: x11 server: X.Org 1.20.10 compositor: kwin_x11 driver: loaded: ati,radeon unloaded: modesetting 
           alternate: fbdev,vesa display ID: :0 screens: 1 
           Screen-1: 0 s-res: 1680x1050 s-dpi: 96 s-size: 444x277mm (17.5x10.9") s-diag: 523mm (20.6") 
           Monitor-1: LVDS res: 1680x1050 hz: 60 dpi: 99 size: 433x270mm (17.0x10.6") diag: 510mm (20.1") 
           OpenGL: renderer: AMD RV610 (DRM 2.50.0 / 5.10.15-1-MANJARO LLVM 11.0.1) v: 3.3 Mesa 20.3.4 compat-v: 3.0 
           direct render: Yes 
Audio:     Device-1: Intel 82801H HD Audio vendor: Apple driver: snd_hda_intel v: kernel bus ID: 00:1b.0 chip ID: 8086:284b 
           class ID: 0403 
           Sound Server: ALSA v: k5.10.15-1-MANJARO 
Network:   Device-1: Broadcom BCM4321 802.11a/b/g/n vendor: Apple AirPort Extreme driver: b43-pci-bridge v: N/A modules: ssb 
           port: 3000 bus ID: 04:00.0 chip ID: 14e4:4328 class ID: 0280 
           Device-2: Marvell 88E8058 PCI-E Gigabit Ethernet driver: sky2 v: 1.30 port: 2000 bus ID: 05:00.0 chip ID: 11ab:436a 
           class ID: 0200 
           IF: ens5 state: down mac: <filter> 
           IF-ID-1: anbox0 state: down mac: <filter> 
           IF-ID-2: wlan0 state: up mac: <filter> 
Drives:    Local Storage: total: 232.89 GiB used: 13.14 GiB (5.6%) 
           SMART Message: Unable to run smartctl. Root privileges required. 
           ID-1: /dev/sda maj-min: 8:0 vendor: Western Digital model: WD2500AAJS-40VWA0 size: 232.89 GiB block size: 
           physical: 512 B logical: 512 B speed: 3.0 Gb/s serial: <filter> rev: 1D02 scheme: GPT 
Partition: ID-1: / raw size: 80 GiB size: 78.24 GiB (97.81%) used: 11.87 GiB (15.2%) fs: ext4 dev: /dev/sda3 maj-min: 8:3 
           ID-2: /boot/efi raw size: 4 GiB size: 3.99 GiB (99.80%) used: 312 KiB (0.0%) fs: vfat dev: /dev/sda1 maj-min: 8:1 
           ID-3: /home raw size: 138.88 GiB size: 135.7 GiB (97.71%) used: 1.26 GiB (0.9%) fs: ext4 dev: /dev/sda4 
           maj-min: 8:4 
Swap:      Kernel: swappiness: 60 (default) cache pressure: 100 (default) 
           ID-1: swap-1 type: partition size: 10 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/sda2 maj-min: 8:2 
Sensors:   System Temperatures: cpu: 45.0 C mobo: N/A gpu: radeon temp: 21.0 C 
           Fan Speeds (RPM): cpu: 1197 
Info:      Processes: 171 Uptime: 12m wakeups: 2 Memory: 3.84 GiB used: 1.43 GiB (37.3%) Init: systemd v: 247 Compilers: 
           gcc: 10.2.0 Packages: pacman: 1282 lib: 396 flatpak: 0 Shell: Zsh v: 5.8 default: Bash v: 5.1.0 running in: yakuake 
           inxi: 3.3.01 

rfkill list all                                                                                                                                       ✔ 
0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no

bluetooth                                                                                                                                             ✔ 
    bluetooth = none (no device)

sudo modprobe btusb                                                                                                                                   ✔ 
    [sudo] password for username: 

sudo systemctl start bluetooth                                                                                                                 ✔  4s 

sudo systemctl enable bluetooth                                                                                                                       ✔  

sudo systemctl status bluetooth                                                                                                                        ✔ 
    ● bluetooth.service - Bluetooth service
         Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
         Active: active (running) since Thu 2021-02-25 09:47:13 PST; 19s ago
           Docs: man:bluetoothd(8)
       Main PID: 2857 (bluetoothd)
         Status: "Running"
          Tasks: 1 (limit: 4695)
         Memory: 1.8M
         CGroup: /system.slice/bluetooth.service
                 └─2857 /usr/lib/bluetooth/bluetoothd

    Feb 25 09:47:13 username bluetoothd[2857]: src/main.c:parse_controller_config() Key file does not have key “LEScanIntervalConnect” in group “Controller”
    Feb 25 09:47:13 username bluetoothd[2857]: src/main.c:parse_controller_config() Key file does not have key “LEScanWindowConnect” in group “Controller”
    Feb 25 09:47:13 username bluetoothd[2857]: src/main.c:parse_controller_config() Key file does not have key “LEMinConnectionInterval” in group “Controller”
    Feb 25 09:47:13 username bluetoothd[2857]: src/main.c:parse_controller_config() Key file does not have key “LEMaxConnectionInterval” in group “Controller”
    Feb 25 09:47:13 username bluetoothd[2857]: src/main.c:parse_controller_config() Key file does not have key “LEConnectionLatency” in group “Controller”
    Feb 25 09:47:13 username bluetoothd[2857]: src/main.c:parse_controller_config() Key file does not have key “LEConnectionSupervisionTimeout” in group “Controller”
    Feb 25 09:47:13 username bluetoothd[2857]: src/main.c:parse_controller_config() Key file does not have key “LEAutoconnecttimeout” in group “Controller”
    Feb 25 09:47:13 username systemd[1]: Started Bluetooth service.
    Feb 25 09:47:13 username bluetoothd[2857]: Starting SDP server
    Feb 25 09:47:13 username bluetoothd[2857]: Bluetooth management interface 1.18 initialized

sudo mhwd-kernel -li                                                                                                                                  ✔ 

Currently running: 5.10.15-1-MANJARO (linux510)
The following kernels are installed in your system:
   * linux510
   * linux54

sudo dmesg | grep -Ei 'b43|bcma|brcm|wl|[F]irm|deauth'                                                                                                ✔ 

[    0.409058] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-3f] only partially covers this bridge
[    2.054166] b43-pci-bridge 0000:04:00.0: enabling device (0000 -> 0002)
[    2.164316] b43-pci-bridge 0000:04:00.0: Sonics Silicon Backplane found on PCI device 0000:04:00.0
[   12.816990] b43-phy0: Broadcom 4321 WLAN found (core revision 12)
[   12.850750] b43-phy0: Found PHY: Analog 5, Type 4 (N), Revision 2
[   12.850777] b43-phy0: Found Radio: Manuf 0x17F, ID 0x2055, Revision 4, Version 0
[   21.050791] b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07)
[   21.460776] b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07)
[  113.420758] b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07)
[  113.830766] b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07)
[  158.160779] b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07)
[  167.039344] wlan0: authenticate with 78:d2:94:09:04:4b
[  167.181051] wlan0: send auth to 78:d2:94:09:04:4b (try 1/3)
[  167.187079] wlan0: authenticated
[  167.187572] wlan0: associate with 78:d2:94:09:04:4b (try 1/3)
[  167.190874] wlan0: RX AssocResp from 78:d2:94:09:04:4b (capab=0x1411 status=0 aid=5)
[  167.191299] wlan0: associated
[  167.242157] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

hwinfo --netcard --wlan --bluetooth | grep -Ei "model\:|driver\:|status\:|cmd\:|file\:|detected\:" | grep -v "Config Status"                          ✔ 

  Model: "Marvell Imac 8,1 Wired Ethernet Adapter"
  Driver: "sky2"
  Device File: ens5
  Link detected: no
    Driver Status: sky2 is active
    Driver Activation Cmd: "modprobe sky2"
  Model: "Apple AirPort Extreme"
  Driver: "b43-pci-bridge"
  Device File: wlan0
  Link detected: yes
    Driver Status: ssb is active
    Driver Activation Cmd: "modprobe ssb"

sudo nano /usr/lib/modprobe.d/bluetooth-usb.conf

# use "reset=1" as default, since it should be safe for recent devices and
# solves all kind of problems.
options btusb reset=1

bluetoothctl                                                                                                                                          ✔  

Agent registered
[bluetooth]# show
No default controller available

Been trying to get this old (~2008) iMac’s bluetooth working. It’s dual WiFi/Bluetooth BCM4321. The WiFi works if I uninstall the driver (network-broadcom-wl) in Hardware Configuration under System Settings but, the bluetooth device doesn’t seem to be found, either way.

If I modprobe btusb and start/enable the bluetooth service I’m then able to add devices from the icon in the task tray but, it just scans and finds no devices. In System Settings > Bluetooth I get “Enable Device” button but, it doesn’t do anything.

Currently, I have manjaro-firmware installed (which came with KDE edition and I think includes b43.) I tried broadcom-wl-dkms without success (WiFi no longer worked; couldn’t connect.) UPDATE: followed the steps again and broadcom-wl-dkms, in fact, works for WiFi but, didn’t help Bluetooth issue; same issues.

bluetoothctl doesn’t seem to find the device if I run power on or list etc.

I’ve been following this post:

Any help would be greatly appreciated! Thanks…

Aside: Bluetooth was working fine on El Capitan.

Tried using 5.4 kernel as well and kept messing with it but, wasn’t ever able to get the internal Bluetooth device to show up. Sure would be nice not to lose a USB spot on this thing but, such is life.

That is, I’ve installed a USB Bluetooth adapter and it worked instantly.