小白ARM平台移植 USB 蓝牙、交叉编译 bluez-4.95
资源下载链接:
bluez-4.95相关源码:http://download.csdn.net/detail/u011408697/8515323
RTL8723BU蓝牙驱动源码,不含dbus-1.10.0:http://download.csdn.net/detail/qqchangjianfei/9554279
一、交叉编译并移植bluez-4.95
实验室的项目需要在九鼎X210BV3开发板上移植蓝牙-WIFI二合一模块的驱动,模块的芯片型号是RTL8723BU,之前没有做过这方面的项目,于是开始在网上查资料。按照网上的流程做下来,碰到了一些问题,所以写下来,希望对大家有所帮助。
参考博客:http://blog.csdn.net/u011408697/article/details/44459239
代码之间依赖关系,请大家按顺序编译
bluez ─┬─ dbus ─── expat
└─ glib
bluez-hcidump
prefix、host、with前面是两个减号,博客显示有问题,请大家注意
1、交叉编译 expat-2.0.1:
./configure –prefix=/usr/local/bluez-4.95 –host=arm-linux CC=arm-none-linux-gnueabi-gcc
make
make install
2、交叉编译 dbus-1.4.1:
./configure \
–prefix=/usr/local/bluez-4.95 \
–host=arm-linux \
–with-x=no \
–enable-abstract-sockets \
CC=arm-none-linux-gnueabi-gcc \
CFLAGS=-I/usr/local/bluez-4.95/include \
LDFLAGS=-L/usr/local/bluez-4.95/lib
make
make install
原博客交叉编译使用了dbus-1.4.1,但是我就一直编译不通过,试了试dbus-1.10.0,编译成功。
3、交叉编译 glib-2.16.2:
./configure \
–prefix=/usr/local/bluez-4.95 \
–host=arm-linux \
CC=arm-none-linux-gnueabi-gcc \
glib_cv_stack_grows=no \
glib_cv_uscore=yes \
glib_cv_have_qsort_r=yes \
ac_cv_func_posix_getpwuid_r=yes \
ac_cv_func_posix_getgrgid_r=yes
make
make install
可能报错 1:
You must have either have gettext support in your C library, or use the
GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html)
解决:apt-get install gettext
可能报错 2:configure: error: Could not find a glib-genmarshal in your PATH
注:缺少命令 glib-genmarshal,去下个 dev 包
解决:apt-get install libglib2.0-dev
可能报错 3:(当使用 glib-2.16.0 时)
gtester.c: In function ‘launch_test_binary’:
gtester.c:276: error: ‘ARG_MAX’ undeclared (first use in this function)
gtester.c:276: error: (Each undeclared identifier is reported only once
gtester.c:276: error: for each function it appears in.)
gtester.c:276: warning: unused variable ‘argv’
注:这是 glib-2.16.2 以前的 bug,在官方 2.16.1 to 2.16.2 中 fix 了,所以推荐使用 glib-2.16.2.tar.gz
4、交叉编译 bluez-4.95:
export PKG_CONFIG_LIBDIR=/usr/local/bluez-4.95/lib/pkgconfig
./configure \
–prefix=/usr/local/bluez-4.95 \
–host=arm-linux \
–disable-audio \
–enable-network \
–enable-serial \
–enable-input \
–enable-service \
–enable-health \
–enable-usb \
–enable-tools \
–enable-bccmd \
–enable-hid2hci \
–enable-hidd \
–enable-pand \
–enable-cups \
–enable-test \
CC=arm-none-linux-gnueabi-gcc \
CFLAGS=-I/usr/local/bluez-4.95/include \
LDFLAGS=-L/usr/local/bluez-4.95/lib
make
make install
5、交叉编译 bluez-hcidump-2.5:
./configure –prefix=/usr/local/bluez-4.95 –host=arm-linux CC=arm-none-linux-gnueabi-gcc
make
make install
二、驱动移植
参考博客:http://blog.csdn.net/qqchangjianfei/article/details/51719108
1、从网上下载8723bu_bt驱动RTL8723BU.rar(蓝牙wifi驱动都有)
解压到:/home/linux/hyutong/qt_x210v3/kernel/drivers/Bluetooth,请根据自己实际路径进行修改。
修改Bluetooth下的Makefile
obj-$(CONFIG_BT_RTKBTUSB_CJF) += rtk_btusb_cjf.ortk_btusb_cjf-y:= rtk_coex.o rtk_bt.o
和Bluetooth下的Kconfig
config BT_RTKBTUSB_CJFtristate "RTK HCI USB driver byCJF"depends on USBhelpRTK Bluetooth HCI USB driver by CJF
2、增加内核选项
(1)进入内核目录,输入menuconfig
(2)选择Networking support
(3)将Bluetooth subsystem support由<>变为<*>,然后进入Bluetooth subsystem support
(4)Bluetooth subsystem support内设置如下,然后进入Bluetooth device driver
(5)Bluetooth device driver内设置如下
3、将固件编译进内核
参考博客:http://www.cnblogs.com/lr-ting/archive/2012/07/05/2563326.html
这块卡了好几天,之前把上面的步骤都做完了,但是会报错,错误信息如下:
rtk_btusb: get_firmware start
[ 1333.730412] rtk_btusb: load_firmware start
[ 1333.734466] rtk_btusb: lmp_version = 0x8723
[ 1333.738607] rtk_btusb: config name is rtl8723bu_config
[ 1393.806571] rtk_btusb: fw name is rtl8723b_fw
[ 1453.931534] rtk_btusb: get_firmware failed!
[ 1453.934247] rtk_btusb: Rtk patch end -1
[ 1453.939233] rtk_btusb: btusb_open failed pm_usage_cnt(0x0)
看上去是固件加载失败,按照网上的说法将:rtl8723b_fw 、rtl8723bu_config放到/lib/firmware下,发现还是报错,直到有一天看到:
就打算尝试一下将固件编译进内核,步骤如下:
(1)将rtl8723b_fw 、rtl8723bu_config放到:
(2)依旧是在kernel下输入make menuconfig,图片略
(3)进入Device Drivers
(4)进入Generic Driver Options
(5)Generic Driver Options内设置如下:
内核的修改算是完成了,接着将修改过的内核烧录进开发板,进行最后的使用步骤。
三、使用方法
参考博客依旧是:http://blog.csdn.net/u011408697/article/details/44459239
1、把交叉编译好的 bluez-4.95 复制到开发板上,比如放在 /usr/local/ 下
2、开发板上,vi /etc/passwd,在最后添加messagebus:x:500:500::/home/messagebus:/bin/sh,保存
3、添加环境变量:
export PATH=/usr/local/bluez-4.95/bin:$PATH
export PATH=/usr/local/bluez-4.95/sbin:$PATH
export LD_LIBRARY_PATH=/usr/local/bluez-4.95/lib:$LD_LIBRARY_PATH
4、输入命令:
hciconfighciconfig hci0 uphcitool scan
成功扫描到蓝牙设备!
小白ARM平台移植 USB 蓝牙、交叉编译 bluez-4.95相关推荐
- ARM USB蓝牙,Bluez 移植。
标题:USB 蓝牙适配器在ARM 开发板下的使用: 关键字: dbus,bluez-lib, bluez-utils, USB 蓝牙,ARM 正文: 1.我的操作环境是 主机:xp + VMware ...
- 如何在arm平台移植ubuntu系统(转)
linux查看内核版本和发行版本号: https://www.cnblogs.com/guiyishanren/articles/8638921.html 华为开源镜像网站:含有不同平台架构的系统资源 ...
- [TI TDA4 J721E]基于TDA4平台 FFmpeg / X264 的ARM平台移植
大家好,首先感谢阅读,如果您也对TDA4相关的开发感兴趣,可以私信联系博主,我们这边有个学习交流群,可以入群和大家一起交流学习. 也可以加博主WX :AIR_12 我会 ...
- Zynq移植USB触摸屏
Zynq平台移植USB触摸屏的实现(Qt5.7) 使用的环境: 1. CPU type:ARM CortexA9(Xilinx zynq7000)(使用的是黑金AX7021开发板) 2. Kernel ...
- 【华为云技术分享】为什么越来越多企业正在往ARM平台迁移?
架构变迁 说到CPU架构,我们可能必然会提到CISC(复杂指令集,比如桌面端采用的X86系列)和RISC(精简指令集,比如移动端广泛采用的ARM系列).理论上,RISC 相比于 CISC(Intel ...
- ARM平台上蓝牙协议栈Bluez的移植使用和配置
版权所有,转载请注明出处http://blog.csdn.net/gatieme/article/details/48751743 参考 http://blog.csdn.net/lizzywu/ar ...
- mysql 客户端 交叉编译_移植mysql到嵌入式ARM平台
移植MySQL到嵌入式ARM平台 MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space.ph ...
- 编译ARM平台的 QtEmbedded 的MySQL插件和移植MySQL到ARM开发板
经过几天的努力,终于交叉编译出了arm平台所需Qt/E的MySQL插件(驱动),其中顺便把MySQL也移植到了mini2410的开发板上. 编译器:arm-linux-gcc(4.3.2) Pc平台: ...
- 移植mysql到嵌入式ARM平台
移植MySQL到嵌入式ARM平台 MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space ...
- mysql在单片机移植_移植MySQL到嵌入式ARM平台
因为MySQL5.5之后,编译是用的cmake不再使用./configure,因此,只好倒回支持./configure的版本来用,这里使用了文档上的5.1.51版本.进行如下步骤完成移植: 1) 下载 ...
最新文章
- mybatis 乐观锁_MybatisPlus新特性之逻辑删除、乐观锁、自动填充
- sublime text 的小细节设置,让你的代码更优美
- mysql--字段--索引的增删改查
- 弹性碰撞后速度方向_高三期中考后分析,不得不知道的重难点
- keras中的神经网络为什么需要多次epoch
- Nginx 笔记与总结(13)Nginx 的 gzip 压缩
- 用了Dapper之后通篇还是SqlConnection,真的看不下去了
- 操作系统【四】分页存储管理
- python unittest断言_python unittest之断言及示例
- iPhone 12s Pro渲染图曝光:屏幕和相机将成升级重点
- gdb对应vc调试命令
- 电商销售数据分析(Python)
- UWP应用解除网络限制
- hdu 4747(区间更新)
- java反射学习---(框架设计的灵魂,你不收藏都后悔)
- TMS570LS1224PWM的生成及捕获
- Fabric Block区块结构解析
- Java 微服务实践
- 银行数字化的两难:安全还是效率?
- 《Kubernetes证书篇:使用TLS bootstrapping简化kubelet证书制作》
热门文章
- OFDM学习笔记(十)(MIMO-OFDM技术)
- 2021年12月四六级考试成绩批量查询Java
- Android uses-sdk tools:overrideLibrary
- 【Nginx 源码学习】平滑重启,源码追踪
- xp计算机无法正常启动,修复XP系统无法正常启动进入不了计算机的解决办法
- 计算机技术在生物学中的应用鲁东大学,生物科学与技术学院
- java常量 修改_Java 自定义常量
- 高斯日记python实现
- php 怎么使用sql server 2000,Linux下PHP支持MSSQL(SQL Server2000)
- 3GPP协议下载地址