Impossible de faire fonctionner le bluetooth (AR3012)

Tags: #<Tag:0x00007f50a15dcde0>

Je dispose d’un Lenovo avec une carte bluetooth AR3012, elle est branché en interne sur le bus USB

$ lsusb
...
Bus --- Device ---: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
...

Elle est reconnu en tant que périphérique bluetooth (sous hci0) mais impossible d’utiliser les fonctionnalités, curieusement elle utilise le driver “btusb” et non un “athxx”. Sur Ubuntu elle fonctionnait correctement sans configuration, je suis sous Buster.
Pour finir j’ai un message d’erreur du noyau

$ dmesg | grep -i bluetooth
[   19.064953] Bluetooth: Core ver 2.22
[   19.068085] Bluetooth: HCI device and connection manager initialized
[   19.069754] Bluetooth: HCI socket layer initialized
[   19.071368] Bluetooth: L2CAP socket layer initialized
[   19.073037] Bluetooth: SCO socket layer initialized
**[   19.722281] Bluetooth: hci0: don't support firmware rome 0x31010000**
[   27.763808] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   27.765067] Bluetooth: BNEP filters: protocol multicast
[   27.766216] Bluetooth: BNEP socket layer initialized

Quelqu’un aurait-il une solution ?

paquet :
https://packages.debian.org/fr/jessie/firmware-atheros
suppose que /etc/apt/sources.list référence les dépots non free :
https://wiki.debian.org/fr/SourcesList

Je l’ai installé.
Mais je pense que c’est Linux qui se trompe de driver, car chez moi /sys/module/btusb/drivers/usb:btusb dispose de 2 sous-dossiers qui pointent vers ma carte Bluetooth, mais /sys/module/ath3k/drivers/usb:ath3kn’a pas ces dossiers…
Il y a t’il un moyen de forcer Linux à utiliser ath3k au lieu de btusb ? J’ai déjà essayer l’echo vers remove_id/new_id mais l’add ne produisait rien.

question : ath3k est il chargé ?
lsmod | grep -i blue
Un papier assez complet et clair sur les modules :
http://www.linuxpedia.fr/doku.php/commande/modules

J’ai l’impression : bluetooth 626688 13 btrtl,btintel,bnep,btbcm,**ath3k**,btusb
Cependant j’ai l’impression que ath3k et btusb sont liés…
Car hwinfo --usb me renvoie

06: USB 00.1: 11500 Bluetooth Device
  [Created at usb.122]
  Unique ID: S4LM.tx4ZIeIPK4B
  Parent ID: 7eqy.erpEvbsFWX1
  SysFS ID: /devices/pci0000:00/0000:00:13.0/usb6/6-2/6-2:1.1
  SysFS BusID: 6-2:1.1
  Hardware Class: bluetooth
  Model: "Qualcomm Atheros AR3012 Bluetooth 4.0"
  Hotplug: USB
  Vendor: usb 0x0cf3 "Qualcomm Atheros Communications"
  Device: usb 0x3004 "AR3012 Bluetooth 4.0"
  Revision: "0.02"
  Driver: "btusb"
  Driver Modules: "btusb"
  Speed: 12 Mbps
  Module Alias: "usb:v0CF3p3004d0002dcE0dsc01dp01icE0isc01ip01in01"
  Driver Info #0:
    Driver Status: ath3k is active
    Driver Activation Cmd: "modprobe ath3k"
  Driver Info #1:
    Driver Status: btusb is active
    Driver Activation Cmd: "modprobe btusb"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #7 (Hub)

Oui, si j’ai bien compris c’est normal, le second doit appeler le premier pour charger le firmware. Mais les deux pilotes sont actifs, et le périphérique identifié.
Dmesg affiche encore une erreur ?
Que dit rfkill (commande rfkill list en root) ?

Perso j’ai laissé tomber les outils graphiques (blueman) pour me servir des commandes en terminal (différents paquets bluez et obex) pour les quelques fois où j’utilise bluetooth.

dmesg n’a pas changé depuis la dernière fois. rfkill list me retourne ça

0: ideapad_wlan: Wireless LAN
	Soft blocked: no
	Hard blocked: no
1: ideapad_bluetooth: Bluetooth
	Soft blocked: no
	Hard blocked: no
2: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
3: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no

J’ai testé sudo hciconfig hci0 up qui me retourne :sob:

Can't init device hci0: Input/output error (5)

J’ai l’impression que tu es loin d’être le seul !!
Exemple :
https://bugzilla.redhat.com/show_bug.cgi?id=1568911
Et il y en a plein dans le même style avec ce chip.
Je sèche, désolé… J’avoue que Bluetooth me semple assez folklorique à utiliser, en raison des multiples versions et outils plus ou moins compatibles entre eux (ce n’est pas lié à Linux, mon portable, android, et ma voiture se comprennent ou non en fonction de leurs humeurs respectives et de la météo :disappointed_relieved:). J’ai trouvé chez moi un équilibre minimaliste en ligne de commande et je n’en bouge pas.

Désormais ça fonctionne ! Bug résolu avec les dernières mises à jour.