Aller au contenu principal
Sujet: Dongle bluetooth qui ne fonctionne pas (Lu 4004 fois) sujet précédent - sujet suivant

Dongle bluetooth qui ne fonctionne pas

Bonjour, j'ai acheté un dongle bluetooth qui est censé fonctionner sous linux. Pourtant celui ci ne fonctionne pas.

Voici quelques commandes:

install:/home/florian # lsusb
Bus 001 Device 023: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

install:/home/florian # service bluetooth status
* bluetooth.service - Bluetooth service
   Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disable>
   Active: active (running) since Tue 2019-12-17 18:23:38 CET; 3 days ago
     Docs: man:bluetoothd(8)
 Main PID: 1404 (bluetoothd)
    Tasks: 1 (limit: 4915)
   Memory: 2.2M
   CGroup: /system.slice/bluetooth.service
           `-1404 /usr/lib/bluetooth/bluetoothd

install:/home/florian # rfkill
ID TYPE      DEVICE     SOFT     HARD
 0 wlan      phy0     bloqué débloqué
 1 bluetooth hci0   débloqué débloqué
 3 bluetooth hci1   débloqué débloqué

install:/home/florian # hciconfig hci1 reset
Can't init device hci1: Operation not supported (95)

install:/home/florian # hcidump -i hci1 
< HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7
    bdaddr 00:00:00:00:00:00 all 1
> HCI Event: Command Complete (0x0e) plen 6
    Delete Stored Link Key (0x03|0x0012) ncmd 1
    status 0x11 deleted 0
    Error: Unsupported Feature or Parameter Value

Bref le problème viendrait du dongle qui informe le noyaux de sa compatibilité avec la fonction Delete Stored Link Key alors qu'il ne l'est pas.

Pourtant dans le fichier btusb.c on trouve bien un mode de compatibilité pour ce genre de dongles:

if (!rp->status) {
if (le16_to_cpu(rp->manufacturer) != 10) {
/* Clear the reset quirk since this is not an actual
* early Bluetooth 1.1 device from CSR.
*/
clear_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks);
/* These fake CSR controllers have all a broken
* stored link key handling and so just disable it.
*/
set_bit(HCI_QUIRK_BROKEN_STORED_LINK_KEY,
&hdev->quirks);

if (id->driver_info & BTUSB_CSR) {
struct usb_device *udev = data->udev;
u16 bcdDevice = le16_to_cpu(udev->descriptor.bcdDevice);
/* Old firmware would otherwise execute USB reset */
if (bcdDevice < 0x117)
set_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks);
/* Fake CSR devices with broken commands */
if (bcdDevice <= 0x100)
hdev->setup = btusb_setup_csr;
}

J'ai essayé de modifier btusb, et de recompiler ça ne semble pas fonctionner. En fait il semblerait que le mode de compatibilité n'est pas pris en compte sur tumbleweed. Vous avez une idée sur comment faire fonctionner la chose, c'est à dire comment désactiver  la commande "Delete Stored Link Key" ?

Merci

Re : Dongle bluetooth qui ne fonctionne pas

Répondre #1
Salut,

L'as-tu essayé sur une autre distrib ? Sur Windows ?
As-tu des infos sur le phériphérique dans Phonon et dans Yast -> Informations sur le matériel?