有谁能够成功将Bluez 5.44安装到Raspbian上?我想在Raspi 3和Raspi Zero W上都使用它。
我遵循了许多 不同的 指南,但是它们都安装了5.44之前的Bluez版本。我无法遵循任何这些指南,最后无法正常运行Bluez 5.44的安装。
完成此操作的任何人,请分享您的步骤。
有谁能够成功将Bluez 5.44安装到Raspbian上?我想在Raspi 3和Raspi Zero W上都使用它。
我遵循了许多 不同的 指南,但是它们都安装了5.44之前的Bluez版本。我无法遵循任何这些指南,最后无法正常运行Bluez 5.44的安装。
完成此操作的任何人,请分享您的步骤。
Answers:
到这里有点晚了,但是最近我因遵循各种不同的指南而头疼,这些指南都不适合我。所以这是另一本指南...可能对您不起作用;)
我从官方页面下载了最新版本:bluez.org/download。如果该页面已用完,请改用此页面。
例如,在撰写本文时,它是5.47,所以我用了(在我的树莓上):
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.47.tar.xz
然后我提取并构建了它:
tar -xf bluez-5.47.tar.xz
cd bluez-5.47
阅读README
!它列出了依赖性和配置开关:
首先安装依赖项:(glib,dbus,libdbus,udev等)。大多数依赖项已经安装,如果没有安装,它们应该易于安装,所有这些都由软件包管理器提供。完成此操作后:
./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var
我还添加了内容,--enable-experimental
因为我相信GattCharacteristics对象是实验功能的一部分。然后做:
make
sudo make install
编译可能需要10分钟。安装后,您应该bluetoothd
在中找到
/usr/libexec/bluetooth
。您还应该在中看到蓝牙/usr/lib/bluetooth
。
转到每个目录并键入
./bluetoothd --version
你会注意到,在一个在libexec目录是新的,一个在LIB是旧的。
BlueZ创建这些d-bus对象和接口,以很好的方式向您展示蓝牙设备。
为了确保d-bus与您正在使用新的 BlueZ 5.47,而不是您的旧 BlueZ 5.23,您需要告诉systemd
使用新的蓝牙守护程序:
sudo vim /lib/systemd/system/bluetooth.service
确保该exec.start
行指向中的新守护程序/usr/libexec/bluetooth
。
对我来说,这还不够。不管怎样,重新启动后我总是得到蓝牙5.23 ...所以我只是创建了一个从旧版本到新版本的符号链接。
首先重命名旧文件:
sudo mv /usr/lib/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd-543.orig
创建符号链接:
ln -s /usr/libexec/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd
sudo systemctl daemon-reload
那应该做。
现在,我必须说这个,即使它与问题无关:
如果要为pi开发应用程序,请阅读blueZ docs文件夹。它向您介绍了d-bus,这确实值得学习,并允许您使用python,node.js或c(及更多)开发应用程序。在bluez dev上观看此视频。
有很多红色鲱鱼:包装程序试图为您提供“简单”功能。甚至有资源说缺乏有关如何开发蓝牙的文档。但是,只要您想做的事情不仅仅是连接设备并查看其特性,您就会意识到包装器会让您失败。
帮个忙。花几个小时来学习如何BlueZ
工作(我链接的视频是纯金的)。它使用称为d-bus的东西。阅读有关d-bus的知识。如果您喜欢Python,请查看测试文件夹中的代码。一两次阅读python dbus教程。它将很好地回报。我浪费了几天时间试图找到一些简单的方法,但是事实证明这是最好的方法。
祝好运!
sudo mv /usr/lib/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd-543.orig
符号:2.创建符号链接:sudo ln -s /usr/libexec/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd
再次感谢:)
我将其安装在具有Raspbian GNU / Linux 8(jessie)操作系统的Raspberry Pi 3上。这有点棘手,但是这些步骤对我有用。我在阅读您的帖子后安装了它。
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install bluez
sudo apt-get install blueman
在此之后,我没有找到适配器。我接下来要做的是
sudo service bluetooth start
sudo service bluetooth status
仍然没有适配器。这是由于固件的缘故,所以我接下来要做
sudo apt-get dist-upgrade -y
sudo apt-get install pi-bluetooth
sudo apt-get install bluez bluez-firmware
最后输入:
sudo usermod -G bluetooth -a pi
然后输入以下内容检查其是否有效:
cat /etc/group | grep bluetooth
如果有效,您应该在终端中看到
$ cat /etc/group | grep bluetooth
bluetooth:x:113:pi
最后命令
sudo reboot
希望这对您有用。
感谢本网站的帮助 https://www.pi-supply.com/make/fix-raspberry-pi-3-bluetooth-issues/
@亨特·阿金斯的回答使我免于如此沮丧(转述):认真,结识BlueZ。了解D-BUS。了解bluetoothctl,systemctl和bluetoothd命令。
问题是,自2016年9月发布Bluez5.42以来,已弃用了在线指南使用的许多软件包(https://wiki.archlinux.org/index.php/Bluetooth#Troubleshooting)。哦,Bluez软件包严重缺少官方文档。
这是重新安装Raspberry Pi Zero W时使蓝牙运行的命令:
$#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
从以上答案和评论中摘录:
$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
我发现的其他错误:
$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
我假设您要使用刚安装的bluez软件包。我在系统重启后立即使用以下步骤连接到BLE设备(重启后时间过长,它将失败)。我还没有进行足够的实验来找出一致的连接。以“ pi @ raspberrypi:〜$”和“ [bluetooth]#”开头的行是我的输入;剩下的就是回应。
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
我正在连接到BLE设备。pair命令不适用于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