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

news/2024/4/24 1:56:39/文章来源:https://blog.csdn.net/TSZ0000/article/details/130137682

        在开发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  ---> 

Toolchain  --->

[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  --->

 这里选择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 <gnu/stubs-hard.h>【注释】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就编译完成了,编译出需要的软件和库,接下来就是研究如何开启蓝牙功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_286224.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Kubernetes】StatefulSet对象详解

文章目录简介1. StatefulSet对象的概述、作用及优点1.1 对比Deployment对象和StatefulSet对象1.2 以下是比较Deployment对象和StatefulSet对象的优缺点&#xff1a;2. StatefulSet对象的基础知识2.1 StatefulSet对象的定义2.1.1 下表为StatefulSet对象的定义及其属性&#xff1…

【GitHub Copilot X】基于GPT-4的全新智能编程助手

文章目录一、前言1.1 编程助手的重要性和历史背景1.2 Copilot X 的背景和概览1.3 Copilot X 的核心技术二、自然语言处理技术的发展和现状2.1 GPT-4 技术的基本原理和应用场景2.2 Copilot X 如何利用 GPT-4 进行智能编程2.3 Copilot X 的特点和优点三、比较 Copilot X 和传统编…

从零开始学习Java神经网络、自然语言处理和语音识别,附详解和简易版GPT,语音识别完整代码示例解析

&#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; 目录一、神经网络简介二、实现简单神经网络三、Java自然语言处理示例代码&#xff08;简易版GPT&#xff09;四、Java简易版语音识别示例代码五、结论神经网络是一种模仿人脑神经…

【Linux系统】理解Linux中进程间通信

Linux进程间通信1 进程间通信的介绍1.1为什么要有进程间通信1.2 为什么能进程间通信2 进程间通信的框架2.1 进程间通信机制的结构2.2 进程间通信机制的类型2.2.1 共享内存式2.2.2 消息传递式2.3 进程间通信的接口设计3 进程间通信机制简介4 详细讲解进程间通信部分机制&#xf…

DFIG控制10: 双馈发电机的动态模型

DFIG控制10&#xff1a; 双馈发电机的动态模型。主要介绍DFIG在三相坐标系、定子αβ坐标系、dq同步坐标系下的模型。 本文主要是整理了DFIG的动态模型的公式和坐标变换的过程。某些描述是为了便于自己理解&#xff0c;不一定准确。 大部分内容参考&#xff1a; G. Abad, J. …

树莓派连接串口时无法开机

树莓派连接串口时无法开机我的情况我的思考我的解决过程重点参考我的情况 因为项目需要&#xff0c;因此需要使用树莓派控制电机&#xff0c;而电机是一上电就会给树莓派发送数据&#xff0c;而这时树莓派还正处于开机时&#xff0c;结果就是开机失败。当将串口断开时就又可以…

8.Java面向对象---类、属性和方法

Java面向对象—类、属性和方法 在生活中&#xff0c;说到类&#xff0c;可以联想到类别&#xff0c;同类&#xff0c;会想到一类人&#xff0c;一类事物等等。而这一类人或事物都是具有相同特征或特点和行为的&#xff0c;我们根据不同的特征或特点和行为将他们归类或分类。同…

形式语言和自动机总结DFA、NFA正则语言

第一章DFA 形式定义和状态转移函数: DFA是一种特殊的NFA&#xff0c; A{Q,,,,F} Q:输入状态集&#xff0c;∑:字母表&#xff0c;δ:状态转移函数Q∑→Q q0∈Q初始状态 F终结集 设计举例 1.设计接受偶数个0和偶数个1串的DFA 2.设计 DFA 接受 {0,1} 上的字符串 w, 且 w 是 …

【数据结构】-计数排序

&#x1f387;作者&#xff1a;小树苗渴望变成参天大树 &#x1f389; 作者宣言&#xff1a;认真写好每一篇博客 &#x1f38a;作者gitee:link 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 文章目录前言一、计数排序二、排序算法复杂度…

《花雕学AI》18:AI绘画尝鲜Prompt Hunt,使用人工智能模型来创造、探索和分享艺术作品

引言&#xff1a; 人工智能是当今科技领域的热门话题&#xff0c;它不仅可以帮助人类解决各种实际问题&#xff0c;也可以激发人类的创造力和艺术感。Prompt Hunt就是一个利用人工智能模型来创造、探索和分享艺术作品的AI绘画网站。它提供了三种不同的模型&#xff0c;分别是S…

Java垃圾收集原理

程序计数器、虚拟机栈、本地方法栈这三个区域随线程而灭&#xff0c;栈中栈帧的内存大小也是在确定的。这几个区域的内存分配和回收都具有确定性&#xff0c;因此不需要过多考虑如何回收。 Java堆和方法区这两个区域有着很显著的不确定性 一个接口的实现类需要的内存可能不一…

用Flutter开发一款音乐App(从0到1开发一款音乐App)

Flutter Music_Listener(flutter音乐播放器) Flutter version 3.9 项目介绍 1、项目整体基于getxretrofitdiojsonserialize开发 2、封装通用控制器BaseController&#xff0c;类似jetpack mvvm框架中的BaseViemodel 3、封装基础无状态基类BaseStatelessWidget&#xff0c;结合…

十三、市场活动:全部导出

功能需求&#xff1a;批量导出市场活动 用户在市场活动主页面,点击"批量导出"按钮,把所有市场活动生成一个excel文件,弹出文件下载的对话框; 用户选择要保存的目录,完成导出市场活动的功能. *导出成功之后,页面不刷新 功能分析&#xff1a;导出市场活动 1.给批量…

Vue组件化编程【Vue】

2.Vue 组件化编程 2.1 模块与组件、模块化与组件化 2.1.1 模块 理解&#xff1a;向外提供特定功能的js程序&#xff0c;一般就是一个js文件为什么&#xff1a;js文件很多很复杂作用&#xff1a;复用js、简化js的编写、提高js运行效率。 2.1.2 组件 理解&#xff1a;用来实…

接口自动化【一】(抓取后台登录接口+postman请求通过+requests请求通过+json字典区别)

文章目录 前言一、requests库的使用二、json和字典的区别三、后端登录接口-请求数据生成四、接口自动化-对应电商项目中的功能五、来自postman的代码-后端登录总结前言 记录&#xff1a;json和字典的区别&#xff0c;json和字段的相互转化&#xff1b;postman发送请求与Python…

source insight4.0使用技巧总结

一、技巧1&#xff1a;查看函数调用关系 步骤 1&#xff1a;在主菜单中点击下图中的按钮 图 1 打开relation界面 步骤 2&#xff1a;在弹出的relation界面点击“设置”按钮&#xff0c; 图2 点击“设置”按钮 步骤3&#xff1a; 在“设置”界面中&#xff0c;“Levels”选择…

AC7811-FOC无感控制代码详解

目录 矢量控制原理 矢量控制框图 电流采样方式 电流在整个控制过程中的传递 采样关键点 三电阻 双电阻 单电阻 三者对比 坐标变换 dq轴电流的PI控制 启动方式 启动波形 脉冲注入 高频注入 Startup 预定位到指定角度 PulseInject_api hfi_api Speed loop s…

前端学习:HTML块、类、Id

目录 快 一、块元素、内联元素 二、HTML 元素 三、HTML元素 类 一、分类块级元素 二、分类行内元素 Id 一、使用 id 属性 二、 class与ID的差异 三、总结 快 一、块元素、内联元素 大多数HTML元素被定义为块级元素或内联元素。 块级元素在浏览器显示时&#xff0c;通常会…

FTP-----局域网内部传输文件(1)

在日常工作中&#xff0c;如果需要跨设备的传输文件&#xff0c;您需要借助USB数据线或者借助应用实现无线互联&#xff0c;将所需文件传输到对应设备&#xff0c;这一来一去&#xff0c;花费的时间与精力变多了&#xff0c;那么&#xff0c;怎么实现不使用第三方软件来实现跨设…

3-5年以上的功能测试如何进阶自动化?【附学习路线】

做为功能测试人员来讲&#xff0c;从发展方向上可分两个方面&#xff1a; 1、业务流程方向 2、专业技能方向。 当确定好方向后&#xff0c;接下来就是如何达到了。(文末自动化测试学习资料分享) 一、业务流程方向 1、熟悉底层的业务 作为功能测试工程师来讲&#xff0c;了解…