buildroot使用外部编译链编译bluez蓝牙工具

        在开发ublox w263 wifi蓝牙时,之前是使用yocto系统集成编译出的bluez工具,减少了自己编译工具软件和依赖库的工作,切换项目使用原生linux系统后,所以的软件需要自己编译,不想编译每个依赖文件和库,所以使用buildroot自动编译bluez蓝牙工具。

        依赖软件和库:bluez,readline,dbus,expat,glib,pcre。

buildroot使用外部编译链

buildroot使用的版本是:buildroot-2017.02.3

1、配置默认的平台:make imx6q-sabresd_defconfig

2、配置外部编译链:make menuconfig

Target options  ---> 

buildroot使用外部编译链编译bluez蓝牙工具_第1张图片

Toolchain  --->

buildroot使用外部编译链编译bluez蓝牙工具_第2张图片

[wangyb@wangyb-VirtualBox:bin]$ ./arm-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=./arm-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/home/wangyb/WG7101/mg7101-sdk/toolchains/arm-linux-gnueabi/bin/../libexec/gcc/arm-linux-gnueabi/4.9.4/lto-wrapper
Target: arm-linux-gnueabi
Configured with: /home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabi/snapshots/gcc-linaro-4.9-2017.01/configure SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabi/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabi/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabi/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-objc-gc --enable-shared --without-included-gettext --enable-nls --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --with-float=soft --with-mode=thumb --with-tune=cortex-a9 --with-arch=armv7-a --with-fpu=vfpv3-d16 --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabi/_build/sysroots/arm-linux-gnueabi --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabi/_build/builds/destdir/x86_64-unknown-linux-gnu/arm-linux-gnueabi/libc --enable-checking=release --disable-bootstrap --enable-languages=c,c++,fortran,lto --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=arm-linux-gnueabi --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabi/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 4.9.4 (Linaro GCC 4.9-2017.01) 

 内核和uboot不进行编译:

Kernel  --->

        [ ] Linux Kernel

Bootloaders  --->

        [ ] U-Boot

配置bluez

Target packages  --->

        Networking applications  --->

buildroot使用外部编译链编译bluez蓝牙工具_第3张图片

 这里选择bluez-utils 5.x,如果选择bluez-utils的话编译后缺失工具,没有bluetoothctl软件。

5.x版本是bluez-5.43,bluez-utils的版本是bluez-4.101应该是比较老所以缺失或者不是bluetoothctl。

 编译

编译问题及解决方法:

Incorrect selection of kernel headers: expected 3.10.x, got 4.0.x
package/pkg-generic.mk:206: recipe for target '/home/wangyb/WG7101/tools/buildroot-2017.02.3/output/build/toolchain-external-custom/.stamp_configured' failed
make[1]: *** [/home/wangyb/WG7101/tools/buildroot-2017.02.3/output/build/toolchain-external-custom/.stamp_configured] Error 1
Makefile:79: recipe for target '_all' failed
make: *** [_all] Error 2
【touch /home/wangyb/WG7101/tools/buildroot-2017.02.3/output/build/toolchain-external-custom/.stamp_configured】

/home/wangyb/WG7101/tools/buildroot-2017.02.3/output/host/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/gnu/stubs.h:10:29: fatal error: gnu/stubs-hard.h: 没有那个文件或目录
 # include 【注释】

debianutils/lib.a(mktemp.o):在函数‘mktemp_main’中:
mktemp.c:(.text.mktemp_main+0x98): 警告: the use of `mktemp' is dangerous, better use `mkstemp'
/home/wangyb/WG7101/mg7101-sdk/toolchains/arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/4.9.4/../../../../arm-linux-gnueabi/bin/ld: error: applets/built-in.o uses VFP register arguments, busybox_unstripped does not
/home/wangyb/WG7101/mg7101-sdk/toolchains/arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/4.9.4/../../../../arm-linux-gnueabi/bin/ld: 合并目标文件 applets/built-in.o 的特定数据时失败
/home/wangyb/WG7101/mg7101-sdk/toolchains/arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/4.9.4/../../../../arm-linux-gnueabi/bin/ld: error: libbb/lib.a(appletlib.o) uses VFP register arguments, busybox_unstripped does not
【Target options修改】

>>>   Executing post-image script board/freescale/common/imx/post-image.sh
file(zImage): stat(/home/wangyb/WG7101/tools/buildroot-2017.02.3/output/images/zImage) failed: No such file or directory
vfat(boot.vfat): could not setup zImage
【cp ../../mg7101-sdk/kernel/linux-3.10.79/zImage output/images/
cp ../../mg7101-sdk/images/u-boot.bin output/images/u-boot.imx】

编译后文件:

[wangyb@wangyb-VirtualBox:buildroot-2017.02.3]$ ls output/target/usr/bin/ -lht
-rwxr-xr-x 1 wangyb wangyb 167K 4月  13 19:00 gatttool
-rwxr-xr-x 1 wangyb wangyb 214K 4月  13 19:00 hcidump
-rwxr-xr-x 1 wangyb wangyb 110K 4月  13 19:00 hcitool
-rwxr-xr-x 1 wangyb wangyb  57K 4月  13 19:00 mpris-proxy
-rwxr-xr-x 1 wangyb wangyb  20K 4月  13 19:00 aserver
-rwxr-xr-x 1 wangyb wangyb  88K 4月  13 19:00 bluetoothctl
-rwxr-xr-x 1 wangyb wangyb  13K 4月  13 19:00 dbus-launch
-rwxr-xr-x 1 wangyb wangyb 4.8K 4月  13 19:00 dbus-uuidgen
-rwxr-xr-x 1 wangyb wangyb 6.4K 4月  13 19:00 gio-querymodules
-rwxr-xr-x 1 wangyb wangyb  17K 4月  13 19:00 gsettings
-rwxr-xr-x 1 wangyb wangyb 107K 4月  13 19:00 hciattach
-rwxr-xr-x 1 wangyb wangyb  27K 4月  13 19:00 pcregrep
-rwxr-xr-x 1 wangyb wangyb 115K 4月  13 19:00 rctest
-rwxr-xr-x 1 wangyb wangyb 145K 4月  13 19:00 bccmd
-rwxr-xr-x 1 wangyb wangyb  22K 4月  13 19:00 bluemoon
-rwxr-xr-x 1 wangyb wangyb  16K 4月  13 19:00 btattach
-rwxr-xr-x 1 wangyb wangyb 7.3K 4月  13 19:00 dbus-run-session
-rwxr-xr-x 1 wangyb wangyb 7.9K 4月  13 19:00 dbus-update-activation-environment
-rwxr-xr-x 1 wangyb wangyb  12K 4月  13 19:00 gapplication
-rwxr-xr-x 1 wangyb wangyb  27K 4月  13 19:00 gdbus
-rwxr-xr-x 1 wangyb wangyb 9.3K 4月  13 19:00 gresource
-rwxr-xr-x 1 wangyb wangyb 149K 4月  13 19:00 sdptool
-rwxr-xr-x 1 wangyb wangyb 107K 4月  13 19:00 ciptool
-rwxr-xr-x 1 wangyb wangyb 6.5K 4月  13 19:00 dbus-cleanup-sockets
-rwxr-xr-x 1 wangyb wangyb 144K 4月  13 19:00 dbus-daemon
-rwxr-xr-x 1 wangyb wangyb  17K 4月  13 19:00 dbus-monitor
-rwxr-xr-x 1 wangyb wangyb  14K 4月  13 19:00 dbus-test-tool
-rwxr-xr-x 1 wangyb wangyb  81K 4月  13 19:00 l2ping
-rwxr-xr-x 1 wangyb wangyb  93K 4月  13 19:00 l2test
-rwxr-xr-x 1 wangyb wangyb  52K 4月  13 19:00 pcretest
-rwxr-xr-x 1 wangyb wangyb  86K 4月  13 19:00 rfcomm
-rwxr-xr-x 1 wangyb wangyb 408K 4月  13 19:00 btmon
-rwxr-xr-x 1 wangyb wangyb  17K 4月  13 19:00 dbus-send
-rwxr-xr-x 1 wangyb wangyb  53K 4月  13 19:00 gio
-rwxr-xr-x 1 wangyb wangyb 153K 4月  13 19:00 hciconfig
-rwxr-xr-x 1 wangyb wangyb 7.7K 4月  13 19:00 hex2hcd

[wangyb@wangyb-VirtualBox:buildroot-2017.02.3]$ ls output/target/usr/sbin/ -lht
-rwxr-xr-x 1 wangyb wangyb 375K 4月  13 19:00 bluetoothd
-rwxr-xr-x 1 wangyb wangyb  71K 4月  13 19:00 hciattach
-rwxr-xr-x 1 wangyb wangyb  20K 4月  13 19:00 hciemu
-rwxr-xr-x 1 wangyb wangyb 133K 4月  13 19:00 hciconfig
[wangyb@wangyb-VirtualBox:buildroot-2017.02.3]$ ls output/target/usr/lib -lht
-rwxr-xr-x 1 wangyb wangyb 108K 4月  13 19:00 libexpat.so.1.6.2
-rwxr-xr-x 1 wangyb wangyb 178K 4月  13 19:00 libncurses.so.5.9
-rwxr-xr-x 1 wangyb wangyb 117K 4月  13 19:00 libbluetooth.so.3.18.14
-rwxr-xr-x 1 wangyb wangyb  35K 4月  13 19:00 libcheck.so.0.0.0
-rwxr-xr-x 1 wangyb wangyb 233K 4月  13 19:00 libdbus-1.so.3.14.10
-rwxr-xr-x 1 wangyb wangyb  40K 4月  13 19:00 libform.so.5.9
-rwxr-xr-x 1 wangyb wangyb 1.3M 4月  13 19:00 libgio-2.0.so.0.5000.2
-rwxr-xr-x 1 wangyb wangyb 8.1K 4月  13 19:00 libpanel.so.5.9
-rwxr-xr-x 1 wangyb wangyb 5.7K 4月  13 19:00 libpcreposix.so.0.0.4
-rwxr-xr-x 1 wangyb wangyb 212K 4月  13 19:00 libreadline.so.7.0
-rwxr-xr-x 1 wangyb wangyb  72K 4月  13 19:00 libusb-1.0.so.0.1.0
-rwxr-xr-x 1 wangyb wangyb  78K 4月  13 19:00 libbluetooth.so.3.13.0
-rwxr-xr-x 1 wangyb wangyb  24K 4月  13 19:00 libffi.so.6.0.4
-rwxr-xr-x 1 wangyb wangyb 3.6K 4月  13 19:00 libgthread-2.0.so.0.5000.2
-rwxr-xr-x 1 wangyb wangyb  28K 4月  13 19:00 libhistory.so.7.0
-rwxr-xr-x 1 wangyb wangyb 227K 4月  13 19:00 libpcre.so.1.2.8
-rwxr-xr-x 1 wangyb wangyb  71K 4月  13 19:00 libz.so.1.2.11
-rwxr-xr-x 1 wangyb wangyb 816K 4月  13 19:00 libasound.so.2.0.0
-rwxr-xr-x 1 wangyb wangyb 234K 4月  13 19:00 libgobject-2.0.so.0.5000.2
-rwxr-xr-x 1 wangyb wangyb  22K 4月  13 19:00 libmenu.so.5.9
-rwxr-xr-x 1 wangyb wangyb 364K 4月  13 19:00 libsndfile.so.1.0.28
-rwxr-xr-x 1 wangyb wangyb 901K 4月  13 19:00 libglib-2.0.so.0.5000.2
-rwxr-xr-x 1 wangyb wangyb 9.7K 4月  13 19:00 libgmodule-2.0.so.0.5000.2
drwxr-xr-x 3 wangyb wangyb 4.0K 4月  13 19:00 bluez
[wangyb@wangyb-VirtualBox:buildroot-2017.02.3]$ ls output/images/ -lh
-rw-r--r-- 1 wangyb wangyb  16M 4月  13 19:00 boot.vfat
-rw-r--r-- 1 wangyb wangyb  17M 4月  13 19:00 rootfs.ext2
lrwxrwxrwx 1 wangyb wangyb   11 4月  13 19:00 rootfs.ext4 -> rootfs.ext2
-rw-r--r-- 1 wangyb wangyb  14M 4月  13 19:00 rootfs.tar
-rw-r--r-- 1 wangyb wangyb  41M 4月  13 19:00 sdcard.img
-rw-r--r-- 1 wangyb wangyb 509K 4月  13 09:56 u-boot.imx
-rwxrwxr-x 1 wangyb wangyb 3.9M 4月  13 09:56 zImage

到这里bluez就编译完成了,编译出需要的软件和库,接下来就是研究如何开启蓝牙功能。

你可能感兴趣的:(Linux,linux,bluez)