qt利用dbus检测U盘程序交叉编译无误后,拷贝到板子里,运行报错:
"?????????QDBusInterface?" "Failed to connect to socket /usr/local/arm/dbus-1.0.
2/var/run/dbus/system_bus_socket: No such file or directory"
Object::connect: No such signal QDBusAbstractInterface::DeviceAdded(QString)
Object::connect: (receiver name: 'Widget')
Object::connect: No such signal QDBusAbstractInterface::DeviceRemoved(QString)
Object::connect: (receiver name: 'Widget')
我们看最上面一句是说找不到system_bus_socket这个文件,板子上确实没有,在上篇文章里说过, 我只拷了dbus的那三个库。于是我把PC上整个dbus-1.0.2的库都拷到板子上,可是奇怪的是我在pc上按上面的路径,发现dbus目录下为空,根本没有生成system-bus_socket.怎么回事?这说明我们交叉编译安装的时候,出问题了!nnd,只有重新交叉编译安装了:
1,
./configure --host=arm-linux --prefix=/root/bluez_install/dbus-1.0.2 CC=arm-linux-gcc --cache-file=arm-linux.cache --without-x
如果后面不加--without-x在make的时候会报错:
dbus-launch.c: In function 'kill_bus_when_session_ends':
dbus-launch.c:413:7: error: impossible constraint in 'asm'
dbus-launch.c:414:7: error: impossible constraint in 'asm'
make[2]: *** [dbus-launch.o] 错误 1
make[2]: 离开目录“/home/yan/download/dbus-1.0.2/tools”
make[1]: *** [all-recursive] 错误 1
make[1]: 离开目录“/home/yan/download/dbus-1.0.2”
make: *** [all] 错误 2
解决:原来./configure 一定要加"--with-x=no
2,./configure过程中报错:
checking abstract socket namespace... configure: error: cannot run test program while cross compiling
解决:echo ac_cv_have_abstract_sockets=yes>arm-linux.cache
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
3,make时候报错:
make[3]: *** [dbus-sysdeps-unix.lo] 错误 1
make[3]:正在离开目录 `/root/桌面/Qt/bluez源/dbus-1.0.2/dbus'
make[2]: *** [all] 错误 2make[2]:正在离开目录 `/root/桌面/Qt/bluez源/dbus-1.0.2/dbus'
make[1]: *** [all-recursive] 错误 1
make[1]:正在离开目录 `/root/桌面/Qt/bluez源/dbus-1.0.2'make: *** [all] 错误 2
解决办法:打开dbus/dbus-sysdeps-unix.c
添加:
struct ucred
{
pid_t pid; /* PID of sending process. */
uid_t uid; /* UID of sending process. */
gid_t gid; /* GID of sending process. */
};
经过三个步骤交叉编译出dbus后,打开/usr/local/arm/dbus-1.0.
2/var/run/dbus/
竟然还是找不到system_bus_socket, NND,真恼火,究竟是咋回事??????????????????????????
原来是需要运行:dbus-daemon --system,这个时候var/run/dbus下面还是什么也没有,但是在终端里(pc上的,现在还没到移植到arm)用ls命令一查看,发现var/run文件夹下很多东西,原来这个文件夹下的东西是隐藏。在看dbus下面也有sysytem_bus_socket这个文件了!下面就打包移植!
它奶奶的,弄到板子上错误依旧!而且我发现,pc上var/run/dbus下面即便用命令ls查看也什么都没有了!万念俱灰啊!
痛定思痛,仔细阅读了几乎google的所有文章,有用的有几篇:
http://note.sdo.com/u/422029744/n/p9WCM~jXIebOwE04g005D3
http://blog.chinaunix.net/space.php?uid=21931055&do=blog&id=328769
http://hi.baidu.com/lihuanhai1943/blog/item/00ef57faf02907dab58f3113.html
这才知道dbus-1.0.2文件下的bin文件是有作用的,dbus拷贝到板子上后是需要配置的。dbus下的bin里面的dbus-daemon是个很关键的东西,貌似必须用他来启动dbus。
那就切换到bin下运行:./dbus-daemon --system.
报错如下:
Failed to start message bus: Could not get UID and GID for username "messagebus
这时我试了下adduser这个命令,竟然可以用在我的Tiny210开发板上!那就赶紧:[root@FriendlyARM bin]# adduser messagebus
会提示出入密码.密码设好后,再次运行./dbus-daemon --system竟然没有报错,去查看下system_bus_socket也存在了!这可是在板子上哦,不容易啊!
接着运行我的qt检测U盘程序,这次继续报错,只不过错误不一样了:
"?????????QDBusInterface?" "The name org.freedesktop.Hal was not provided by any
.service files"
Object::connect: No such signal QDBusAbstractInterface::DeviceAdded(QString)
Object::connect: (receiver name: 'Widget')
Object::connect: No such signal QDBusAbstractInterface::DeviceRemoved(QString)
Object::connect: (receiver name: 'Widget')
一个小小的qt检测U盘插拔竟让我费了这么大劲,不知道网上那些寥寥数语就实现此功能的神人,怎么弄出来的。欲知后事如何下回分解把。洒家再研究吧。
分享到:
相关推荐
ARM平台下交叉编译的DBUS1.2的代码和库,对嵌入式LINUX和基于LINUX的移动平台开发非常有用,里面包含了所有代码和编译后生成的库文件和配置信息文件.
QtDbus详细的中文使用文档; QtDbus的signal通讯例程; QtDbus的method通讯例程; QtDbus的xml编程例程; 以上打包集合!!!
traefik-avahi-helper 一个...跑步为此,需要安装以下两个卷: -v /var/run/docker.sock:/var/run/docker.sock 这允许容器监视docker -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket 并且这允许容器将
. ├── dbus-1.12.20.tar.gz ├── dbus-glib-0.106.tar.gz ├── expat-2.3.0.tar.bz2 ├── glib-2.34.1.tar.xz ├── libffi-3.3.tar.gz ├── README └── zlib-1.2.11.tar.gz
Building for: linux-aarch64-gnu-g++ (arm64, CPU features: neon) Target compiler: gcc 6.3.1 Configuration: cross_compile use_gold_linker compile_examples enable_new_dtags largefile neon precompile_...
-no-mmx -no-sse -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-3dnow -no-avx -no-neon \ -no-qvfb \ -no-phonon \ -no-nis \ -no-opengl \ -no-cups \ -no-xcursor \ -no-script \ -...
Ubuntu14.04安装QT无法运行的解决方法,内含libdbus和libfreetype库。 直接解压到Qt/Tools/QtCreator/lib/Qt/lib/目录下即可使用。 详细使用方法请看https://www.jianshu.com/p/da6a0706fe07
DBus通讯方式中,设置适配器Adaptor和Interface的通讯方式比较麻烦,重点在于适配器类(Adaptor类)和接口类(Interface类)的生成,Qt有工具可以自动生成相应的类。※建议Qt中DBus通讯使用Interface-Connection方式...
github 仓库: 码头中心图片: 这将启用 dbus 发现的资源的 mdns ...<EOF> /etc/dbus-1/system.d/avahi.conf <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" "http://www.fr
说明bus和程序的关联 dbustest.py和dbustest-glib.c: 测试效果 测试: $make $make install $./dbustest.py ###向'/tmp/lll'添加内容:'Hi,peoples\n' $./dbustest-glib ###"/tmp/test_polkitexmd"添加内容:"Hello ...
qtfor windows 编译qtdbus
D-Bus是一种高效低耗的进程间...Qt中QDBus的Interface-Connection通讯方式方式相比于Adaptor-Interface方式较为简单,这种方式不需要XML文件,也不需要自动生成的adaptor类和Interface类,给用户提供更简便的使用方式。
这是在linux中的QT的DBUS的使用方法实例
DBus通讯方式中,设置适配器Adaptor和Interface的通讯方式比较麻烦,重点在于适配器类(Adaptor类)和接口类(Interface类)的生成,Qt有工具可以自动生成相应的类。※建议Qt中DBus通讯使用Interface-Connection方式...
Dbus的Signal发送与接收和Method的调用以及xml文件的解析
用QT做的DBus进程通讯小程序,方便学习DBus。
还支持一些高级非传感器功能,例如风扇存在、pwm 控制和自动 cpu 检测 (x86)。 主要特征 运行时可从 d-bus(实体管理器等)重新配置 隔离:每种传感器类型都被隔离到自己的守护进程中,因此一个传感器中的错误不太...
升压 D-Bus 这是一个由 Boost.Asio 提供支持的简单 D-Bus 绑定。 我尽可能地遵循 Asio 的习惯用法。 代码示例 # include # include # include < dbus> using namespace std ; using namespace boost ::asio ; ...
dbus-qt-0.70-7.2.el6.i686.rpm
error: /user/include/python2.7/pyconfig.h:15:52: fatal error: arm-linux-gnueabi/python2.7/pyconfig.h: No such file or directory compilation terminated. 分析::找不到arm-linux-gnueabi/python2.7/...