bluetoothbluetooth-lowenergyraspberry-pi3bluetoothlescanner

bluetoothctl don't find my device whereas hcitool can/Can't find device if not trusted


In relation to this post

Is there any answers to this topic ? Because I have the same problem and HackToHell asked to continue on AskUbuntu chat which is not available anymore

Actually i could find my device on Bluetoothctl, i trusted it once and i could see it everytime, but for now that it is untrusted, i can only see it with btmon, that is painful haha. I set all the devices discovering filters but still no effects. With sudo hcitool lescan --duplicates i can see my devices also

So how can i found it back ?

I tried rebooting, restarting Bluetooth, reconfiguring Bluetooth, putting hci0 to reset, down and up states, etcetc but still nothing comes out ... and i have the flags -C and --experimental in the file /lib/systemd/system/bluetooth.service after execstart=... line

Benjamin


Solution

  • Upgrade your Linux kernel to 5.1.6 or above.

    The issue fixed in this release has to do with buggy Bluetooth controller firmware, that would send a completion event twice, making the kernel turn the scan into a passive scan, therefore not creating device found events.

    Kernel -> controller: LE Set Random Address
    Controller -> kernel: Command "LE Set Random Address" Complete
    Kernel -> controller: LE Set Scan Parameters (active scan)
    Controller -> kernel: Command "LE Set Random Address" Complete
    

    The kernel would previously have assumed it could not set the scan to and active scan, so it resumes as a passive scan instead.

    Relevant commit is: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a3d50fb7ce931f08a2c6194fdc4c9a56c9ed4153

    You can verify you have this issue by running btmon.