环境说明:
编译平台:在Ubuntu16.04.1上使用buildroot-2017.08
编译结果运行平台:armv7l架构芯片,Linux内核版本4.9.84
bluez版本:bluez-5.46
整体思路:直接编译bluez包,根据buildroot的提示,一步一步添加编译bluez所需要的各个依赖
1、查看buildroot-2017.08/package/bluez5_utils/Config.in(这只是我的目录,你根据自己的目录对应起来,后面的目录也要对应到自己的目录,以后不再说明)
第一行如下:
config BR2_PACKAGE_BLUEZ5_UTILS
说明要编译bluez5则对应要把buildroot/.config文件里的BR2_PACKAGE_BLUEZ5_UTILS设为y
在buildroot-2017.08/.config文件里找的合适位置,设置 BR2_PACKAGE_BLUEZ5_UTILS=y,我设置的位置对应如下
1654 # Networking applications
1655 #
1656 # BR2_PACKAGE_AICCU is not set
1657 # BR2_PACKAGE_AIRCRACK_NG is not set
1658 # BR2_PACKAGE_APACHE is not set
1659 # BR2_PACKAGE_ARGUS is not set
1660 # BR2_PACKAGE_ARP_SCAN is not set
1661 # BR2_PACKAGE_ARPTABLES is not set
1662 # BR2_PACKAGE_ATFTP is not set
1663 # BR2_PACKAGE_AVAHI is not set
1664 # BR2_PACKAGE_AXEL is not set
1665 # BR2_PACKAGE_BABELD is not set
1666 # BR2_PACKAGE_BANDWIDTHD is not set
1667 # BR2_PACKAGE_BATCTL is not set
1668 # BR2_PACKAGE_BCUSDK is not set
1669 # BR2_PACKAGE_BIND is not set
1670 # BR2_PACKAGE_BLUEZ_TOOLS is not set
1671 # BR2_PACKAGE_BLUEZ_UTILS is not set
1672 BR2_PACKAGE_BLUEZ5_UTILS=y
然后在buildroot-2017.08下执行make
2、make后提示如下
Makefile:539: *** dbus is in the dependency chain of bluez5_utils that has added it to its _DEPENDENCIES variable without selecting it or depending on it from Config.in。 停止。
Makefile:79: recipe for target ‘_all’ failed
解决:查看buildroot-2017.08/package/bluez5_utils/bluez5_utils.mk文件
发现依赖dbus,如下:
BLUEZ5_UTILS_DEPENDENCIES = dbus libglib2
所以要把buildroot下的.config里的dbus功能对应项设为y
查看buildroot-2017.08/package/dbus/Config.in
找到dbus功能的对应名为 BR2_PACKAGE_DBUS 如下:
config BR2_PACKAGE_DBUS
修改buildroot下的.config文件
找到文件里BR2_PACKAGE_DBUS 项,原为:
BR2_PACKAGE_DBUS is not set
修改为:
BR2_PACKAGE_DBUS =y
然后继续make编译
3、make后提示
Makefile:539: *** libglib2 is in the dependency chain of bluez5_utils that has added it to its _DEPENDENCIES variable without