在树莓派上更新 dbus

Posted

技术标签:

【中文标题】在树莓派上更新 dbus【英文标题】:Update dbus on Raspberry Pi 【发布时间】:2017-08-22 11:31:13 【问题描述】:

我需要更新我的 Raspberry Pi 上的 DBus,以便升级到最新的 Bluez 版本(我希望能获得性能优势)。我不能使用包安装,因为最新的打包版本是旧的,所以我“配置/制作/制作安装”。

问题在于它似乎与旧版本一起安装,但在不同的目录中。所以,如果我运行dbus-daemon --version,我会在安装后看到旧版本号。

原始版本(和启动路径)是/usr/bin,而我的安装是/usr/arm-linux-gnueabi/bin。我确实尝试在 /lib/systemd/system/dbus.service 中编辑启动路径,但在此之后,Linux 无法启动。

所以现在我的 Pi 上有两个版本的 dbus,旧版本正在启动。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

这是我为在我的 Raspberry Pi 3 上成功安装 D-Bus 1.10.18 和 Raspbian Jessie Lite Fresh(发布 2017-04-10)所做的:

[我使用 aptitude 而不是 apt-get。你可以一个一个替换。]

sudo aptitude install -y libapparmor1
cd ~
wget http://ftp.fr.debian.org/debian/pool/main/d/dbus/libdbus-1-3_1.10.18-1_armhf.deb
sudo dpkg --auto-deconfigure -i libdbus-1-3_1.10.18-1_armhf.deb
wget http://ftp.fr.debian.org/debian/pool/main/d/dbus/dbus_1.10.18-1_armhf.deb
sudo dpkg -i dbus_1.10.18-1_armhf.deb
sudo reboot

重启后:

pi@RasPi3-Tests:~ $ dpkg -l dbus
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
|/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
||/ Nom                     Version          Architecture     Description
+++-=======================-================-================-===================================================
ii  dbus                    1.10.18-1        armhf            simple interprocess messaging system (daemon and ...

和:

pi@RasPi3-Tests:~ $ dbus-daemon --version
D-Bus Message Bus Daemon 1.10.18
Copyright (C) 2002, 2003 Red Hat, Inc., CodeFactory AB, and others
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

【讨论】:

【参考方案2】:

在回答您的问题之前,请分享来自“journalctl -xe”或“systemctl status dbus”的失败日志。以下可能会解决您的问题,

确保在更新之前停止 dbus。 "systemctl stop dbus" systemctl daemon-reload(更改任何守护进程的服务文件后需要运行) 再次启动 dbus,systemctl start dbus。 检查“echo $PATH”中可用的二进制路径,如果没有,将其导出。在您的情况下,export PATH=/usr/arm-linux-gnueabi/bin:$PATH 应该会有所帮助

注意:当您停止 dbus 时,许多应用程序将停止工作。

【讨论】:

感谢您的想法 - 我尝试了所有方法,但它仍在加载旧的守护进程。 systemctl status dbus 给出以下输出: dbus.service - D-Bus 系统消息 Bus Loaded: loaded (/lib/systemd/system/dbus.service; static) Active: active (running) since Thu 2017-03-30 05:世界标准时间 51:38; 6分钟前 Docs: man:dbus-daemon(1) Main PID: 434 (dbus-daemon) CGroup: /system.slice/dbus.service └─434 /usr/bin/dbus-daemon --system --address=systemd : --nofork --... 如果我运行“dbus-daemon --version”,我会看到旧版本 1.8.22,但是如果我运行“/usr/arm-linux-gnueabi/bin/./dbus-daemon” --version" 我看到的是新安装的版本,1.10.16 从状态中我可以看到dbus已经启动并且在/usr/bin路径下运行良好。在 dbus.service 文件中更新 /usr/arm-linux-gnueabi/bin 的路径并重新启动守护程序。确保重新加载守护程序。如果 dbus 启动失败,则共享“systemctl status dbus”输出。 您也可以使用“ps -ef | grep dbus”来检查dbus守护进程从哪个路径启动的dbus处于运行状态。 我还尝试使用“./configure --prefix=/usr --sysconfdir=/etc”进行配置,它将新版本安装在现有 dbus 上,但现在执行 dbus 命令时出现错误“dbus-daemon:/lib/arm-linux-gnueabihf/libdbus-1.so.3:没有可用的版本信息(dbus-daemon 需要)dbus-daemon:/lib/arm-linux-gnueabihf/libdbus-1。 so.3:没有可用的版本信息(dbus-daemon 需要) dbus-daemon:重定位错误:dbus-daemon:符号 _dbus_no_memory_message,版本 LIBDBUS_PRIVATE_1.10.16 未在文件 libdbus-1.so.3 中定义,带有链接时间参考”。 【参考方案3】:

sudo apt-get install python3-dbus

【讨论】:

以上是关于在树莓派上更新 dbus的主要内容,如果未能解决你的问题,请参考以下文章

在(Raspberry Pi)树莓派上安装NodeJS

学习树莓派上编程的时候,需要哪些教程

树莓派上的浏览器安装

超简单教你在树莓派上安装opencv

在树莓派上的python3

树莓派上安装protobuf 3.18.2版本