Vous installez Bluez 5.44 sur Raspbian?

9

Quelqu'un a-t-il réussi à installer Bluez 5.44 sur Raspbian? J'aimerais l'utiliser sur un Raspi 3 et un Raspi Zero W.

J'ai suivi de nombreux guides différents mais ils installent tous des versions de Bluez antérieures à 5.44. Je ne suis en mesure de suivre aucun de ces guides et de me retrouver avec une installation Bluez 5.44 qui fonctionne.

Quiconque l'a fait, veuillez partager vos étapes.

rityzmon
la source
J'ai essayé de nombreuses instructions et c'est la seule qui a réellement fonctionné: learn.adafruit.com/install-bluez-on-the-raspberry-pi/… Avec la seule différence étant que j'ai obtenu mon fichier .tar de: mirrors.edge. kernel.org/pub/linux/bluetooth et j'ai téléchargé une version 5.52 qui était la plus récente de l'époque.
Hurri

Réponses:

11

Un peu tard ici, mais j'ai récemment eu le mal de tête de suivre une variété de guides différents, dont aucun ne fonctionnait pour moi. Voici donc un autre guide ... qui ne fonctionnera probablement pas pour vous;)

J'ai téléchargé la version la plus récente de la page officielle: bluez.org/download . Si cette page est morte, utilisez celle-ci à la place.

Par exemple, au moment de la rédaction, c'était 5,47, j'ai donc utilisé (sur ma framboise):

wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.47.tar.xz 

Ensuite, je l'ai extrait et construit:

tar -xf bluez-5.47.tar.xz
cd bluez-5.47

Lisez le README! Il répertorie les dépendances et les commutateurs de configuration:

Installez d'abord les dépendances: (glib, dbus, libdbus, udev, etc.) La plupart d'entre elles sont déjà installées et sinon elles devraient être faciles à installer, toutes fournies par le gestionnaire de paquets. Une fois que vous avez fait cela:

./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var 

J'ai également ajouté --enable-experimentalparce que je pense que l' objet GattCharacteristics fait partie des fonctionnalités expérimentales. Alors fais:

make
sudo make install

Il faut peut-être 10 minutes pour compiler. Après l'installation, vous devriez trouver bluetoothddans /usr/libexec/bluetooth. Vous devriez également voir bluetoothd dans /usr/lib/bluetooth.

Accédez à chacun de ces répertoires et saisissez

./bluetoothd --version

Vous remarquerez que celui de libexec est nouveau et que celui de lib est ancien.

BlueZ crée ces objets et cette interface d-bus pour vous exposer les appareils Bluetooth de manière agréable.

Afin de vous assurer que d-bus vous parle du nouveau BlueZ 5.47 et non de votre ancien BlueZ 5.23, vous devez dire systemdd'utiliser le nouveau démon Bluetooth:

    sudo vim /lib/systemd/system/bluetooth.service

Assurez-vous que la exec.startligne pointe vers votre nouveau démon /usr/libexec/bluetooth.

Pour moi, ce n'était pas suffisant. Quoi qu'il en soit, au redémarrage, j'ai toujours eu bluetoothd 5.23 ... Je viens donc de créer un lien symbolique de l'ancien vers le nouveau.

Renommez d'abord l'ancien fichier:

sudo mv /usr/lib/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd-543.orig

Créez le lien symbolique:

ln -s /usr/libexec/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd
sudo systemctl daemon-reload

Ça devrait le faire.

Maintenant, je dois dire ceci, même si ce n'est pas pertinent pour la question :

Si vous souhaitez développer une application pour votre pi, lisez le dossier blueZ docs . Il vous présente quelque chose appelé d-bus , qui vaut vraiment la peine d'être étudié et vous permet de développer votre application en python, node.js ou c (et plus). Regardez cette vidéo sur bluez dev .

Il y a beaucoup de harengs rouges là-bas: des wrappers qui tentent de vous offrir des fonctionnalités "faciles". Même les ressources qui disent qu'il y a un manque de documentation sur la façon de développer le bluetooth. Cependant, dès que vous voudrez faire autre chose que de simplement vous connecter à l'appareil et voir ses caractéristiques, vous vous rendrez compte que le wrapper vous fera défaut.

Fais toi plaisir. Prenez quelques heures pour apprendre comment ça BlueZmarche (la vidéo que j'ai liée est en or massif). Il utilise quelque chose appelé d-bus. Lisez un peu sur d-bus. Si vous aimez Python, regardez le code dans le dossier de test. Lisez le didacticiel python dbus une ou deux fois. Cela portera ses fruits si bien. J'ai perdu quelques jours à essayer de trouver quelque chose de facile, mais cela s'est avéré être le meilleur moyen.

Bonne chance!

Hunter Akins
la source
la page originale de bluez semble morte
not2qubit
1
Merci beaucoup pour cette somme. J'ai suivi plusieurs tutoriels ( learn.adafruit.com/install-bluez-on-the-raspberry-pi/… | fam-haugk.de/starting-with-bluetooth-le-on-the-raspberry-pi ) mais seulement le vôtre l'a fait fonctionner. Deux notes: - La page Bluez est: bluez.org/download - Pour créer le lien symbolique, procédez comme suit: 1. Renommez l'ancien: sudo mv /usr/lib/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd-543.orig2. Créez le lien symbolique: sudo ln -s /usr/libexec/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd merci encore :)
Thor_Bux
Je suis content que ça ait marché! J'ai également fait les commentaires que vous avez suggérés. Acclamations
Hunter Akins
Il y a une étape ici, lisez le fichier README et installez les dépendances, qui peuvent se transformer en cascade de dépendances. Cela aide: rrbluetoothx.blogspot.nl/2016/04/…
brianfit
3

Je l'ai installé sur mon Raspberry Pi 3 avec OS Raspbian GNU / Linux 8 (jessie). C'était un peu délicat mais ces étapes ont fonctionné pour moi. Je l'ai installé après avoir lu votre message.

sudo apt-get update
sudo apt-get upgrade -y 
sudo apt-get install bluez
sudo apt-get install blueman

Après cela, je n'ai trouvé aucun adaptateur. La prochaine chose que j'ai faite était

sudo service bluetooth start
sudo service bluetooth status

Toujours pas d'adaptateur. Cela est dû au firmware, j'ai donc dû le faire ensuite

sudo apt-get dist-upgrade -y 
sudo apt-get install pi-bluetooth 
sudo apt-get install bluez bluez-firmware

Tapez enfin:

sudo usermod -G bluetooth -a pi

Vérifiez ensuite si cela a fonctionné en tapant:

cat /etc/group | grep bluetooth

Si cela a fonctionné, vous devriez le voir dans votre terminal

$ cat /etc/group | grep bluetooth
bluetooth:x:113:pi

Dernière commande

sudo reboot

J'espère que cela fonctionne pour toi.

Merci à ce site pour son aide https://www.pi-supply.com/make/fix-raspberry-pi-3-bluetooth-issues/

Pismurf
la source
1

La réponse de @Hunter Akins m'a sauvé de tant de frustration quand il a dit (paraphrasé): sérieusement, apprenez à connaître BlueZ. Apprenez à connaître D-BUS. Apprenez à connaître les commandes bluetoothctl, systemctl et bluetoothd.

Le problème est que, depuis la sortie de Bluez5.42 en septembre 2016, de nombreux packages utilisés par les guides en ligne ont été déconseillés ( https://wiki.archlinux.org/index.php/Bluetooth#Troubleshooting ). Oh, et le paquet Bluez manque cruellement de documentation officielle.

Voici les commandes que j'ai utilisées pour faire fonctionner Bluetooth sur le Raspberry Pi Zero W, à partir d'une nouvelle installation:

$#Fresh install the latest version of Raspbian thru the latest version of NOOBS
$#Instructions for fresh install of at https://www.raspberrypi.org/help/noobs-setup/2/
$sudo apt-get update
$sudo apt-get upgrade #ensures you have latest linux kernel
$sudo init 6 #more robust than sudo reboot
$sudo apt-get -s install bluez #-s simulates the install, showing you
$#that the apt-get version is too old
$sudo apt-get --purge remove bluez #removes the bluez on your machine

Tiré de la réponse et des commentaires ci-dessus:

$sudo apt-get -s install bluez #-s simulates the install, showing you
$#that an outdated version of bluez is on your machine
$sudo apt-get --purge remove bluez
$cd ~
$wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.49.tar.xz # find the latest bluez kernel at
$#http://www.kernel.org/pub/linux/bluetooth and install that, changing the version number of upcoming steps 
$tar xvf bluez-5.49.tar.xz
$sudo apt-get install -y libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev
$cd bluez-5.49
$./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var
$make
$sudo make install
$cd ~
$cd /usr/libexec/bluetooth
$./bluetoothd --version
$cd ~
$cd usr/lib/bluetooth
$./bluetoothd --version #identify what the newer version is. 
#Mine was in libexec. If yours is not, reverse the paths in the following steps
$cd ~
$sudo nano /lib/systemd/system/bluetooth.service
#Go to the Exec Start line. Point it to /usr/libexec/bluetooth/bluetoothd
$sudo mv /usr/lib/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd-543.orig
$sudo ln -s /usr/libexec/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd 
$sudo systemctl daemon-reload 

Bug supplémentaire que j'ai trouvé:

$sudo apt-get install -y bluez-obexd 
$# see https://forums.fedoraforum.org/showthread.php?315160-Cannot-get-bluetooth-devices-to-work
$sudo init 6 #more robust sudo reboot

Je suppose que vous souhaitez utiliser le package bluez que vous venez d'installer. J'utilise les étapes suivantes pour me connecter à un périphérique BLE juste après un redémarrage du système (donné trop longtemps après un redémarrage, il échoue). Je n'ai pas suffisamment expérimenté pour trouver une connexion cohérente. Les lignes précédées de "pi @ raspberrypi: ~ $" et "[bluetooth] #" étaient mes entrées; les autres étaient des réponses.

pi@raspberrypi:~ $ bluetoothctl
Agent registered
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:DD:65:21 Discovering: yes      (The raspberry pi, I believe)
[CHG] Device 34:15:13:87:98:37 RSSI: -45     (device I want)
[bluetooth]# trust 34:15:13:87:98:37
Changing 34:15:13:87:98:37 trust succeeded
[bluetooth]# connect 34:15:13:87:98:37
Attempting to connect to 34:15:13:87:98:37    (this will take a few seconds)
[CHG] Device 34:15:13:87:98:37 Connected: yes
Connection successful
...(Specifications of your device)...
[CHG] Device 34:15:13:87:98:37 ServicesResolved: yes

Je me connecte à un appareil BLE. La commande pair ne fonctionnera pas, car elle est destinée à Bluetooth Classic:

[bluetooth]# pair 34:15:13:87:98:37
Attempting to pair with 34:15:13:87:98:37
[CHG] Device 34:15:13:87:98:37 Connected: yes
Failed to pair: org.bluez.Error.AuthenticationFailed
[CHG] Device 34:15:13:87:98:37 Connected: no
John Doe
la source
1
le morceau de cette information correspond au pdf étape par étape trouvé sur bluetooth.com blog.bluetooth.com/bluez-on-raspberry-pi
austin