标题:USB 蓝牙适配器在ARM 开发板下的使用:

关键字: dbus,bluez-lib, bluez-utils, USB 蓝牙,ARM

正文:

1、我的操作环境是

主机:xp + VMware ubuntu 10.10 。 开发板:OK6410 。 文件系统: yaffs2 。 蓝牙:蓝牙适配器(适配器在PC ubuntu 下测试可用)。交叉编译器:arm-linux-gcc 4.3.2

操作环境环境提示:如果你有red hat 或者 Fedora 这两个操作环境,建议你首选这两个环境,应为Ubuntu 操作起来问题太多了。

2、配置内核支持Bluetooth,

2.1 make menuconfig

[*] Networking support  --->

<*>   Bluetooth subsystem support  --->    //蓝牙子系统必须选择

<*>   L2CAP protocol suppor       //逻辑链路控制和适配协议。

<*>   SCO links support           //蓝牙语音和耳机支持

<*>   RFCOMM protocol suppor      //面向流的传输协议,支持拨号网络等

[*]   RFCOMM TTY support          //

<*>   BNEP protocol support       //蓝牙网络封装协议,自组网支持

[*]   Multicast filter support    //蓝牙多播,支持支持BNEP

[*]   Protocol filter support //蓝牙多播,支持支持支持BNEP

<*>   HIDP protocol support       //基本支持协议

Bluetooth device drivers  --->

<*> HCI USB driver              //USB蓝牙模块支持

<M>HCI UART driver              //基于串口,CF卡或PCMCIA的蓝牙

<*> HCI BlueFRITZ! USB driver

<*> HCI VHCI (Virtual HCI device) driver

2.2 下载内核 检测USB 蓝牙设备信息:

[root@Mr /mnt]#usb 1-1: new full speed USB device using s3c2410-ohci and address
usb 1-1: New USB device found, idVendor=0a12, idProduct=0001
usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[root@Mr /mnt]#

[root@FORLINX6410]# hciconfig检测蓝牙设备
hci0:   Type: USB
        BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
        DOWN
        RX bytes:0 acl:0 sco:0 events:0 errors:0
        TX bytes:0 acl:0 sco:0 commands:0 errors:0
[root@FORLINX6410]#

3、移植 Bluez 蓝牙协议栈

3.1 所依赖的库文件:

bluez-libs-3.36.tar.gz

dbus-1.5.12.tar.gz

expat-2.0.1.tar.gz

glib-2.26.1.tar.gz

bluez-utils-3.36.tar.gz

libusb-0.1.12.tar.gz

应用的安装步骤:

3.2,编译安装bluez-lib-3.36.tar.gz

这个库不需要什么依赖,直接解压,配置,编译然后安装即可。

#tar zxvf bluez-lib-3.36.tar.gz

#./configure --profix=/opt/libs --host=arm-linux --target=arm-linux CC=arm-linux-gcc

#make

#make install

3.3,编译安装expat-2.0.1.tar.gz

这个库是后面的dbus依赖的,你也可以用libxml2来代替expat,官方网站上说dbus必须依赖于他们中的一个,我这里用的是expat-2.0.1.tar.gz。

#tar zxvf expat-2.0.1.tar.gz

#./configure --profix=/opt/libs --host=arm-linux --target=arm-linux     CC=arm-linux-gcc

#make

#make install

3.4,编译安装dbus-1.5.12.tar.gz

#tar zxvf dbus-1.5.12.tar.gz

#echo ac_cv_have_abstract_sockets=yes>arm-linux.cache

#./configure --profix=/opt/libs --host=arm-linux --target=arm-linux     CC="arm-linux-gcc -I/opt/libs/include -L/opt/libs/lib" --cache-file=arm-linux.cache --with-x=no

#make

#make install

3.5,编译安装glib-2.26.1.tar.gz

#tar  -zxjf  glib-2.26.1.tar.gz

#echo ac_cv_type_long_long=yes>arm-linux.cache

#echo glib_cv_stack_grows=no>>arm-linux.cache

#echo glib_cv_uscore=no>>arm-linux.cache

#echo c_cv_func_posix_getpwuid_r=yes>>arm-linux.cache

#echo ac_cv_func_posix_getgrgid_r=yes>>

注意:">"和">>"的区别

#./configure --profix=/opt/libs --host=arm-linux --target=arm-linux     CC="arm-linux-gcc -I/opt/libs/include -L/opt/libs/lib" --cache-file=arm-linux.cache

#make

#make install

3.6,编译安装libusb-0.1.12.tar.gz

这个库不需要什么依赖,直接解压,配置,编译然后安装即可。

#tar zxvf  libusb-0.1.12.tar.gz

#./configure --profix=/opt/libs --host=arm-linux --target=arm-linux CC="arm-linux-gcc -I/opt/libs/include -L/opt/libs/lib"

#make

#make install

3.7,编译安装bluez-utils-3.36.tar.gz

#tar zxvf bluez-utils-3.36.tar.gz

#./configure --profix=/opt/libs --host=arm-linux --target=arm-linux     CC="arm-linux-gcc -I/opt/libs/include -L/opt/libs/lib" --disable-audio

#make

#make install

4、可能出现的问题和解决方案:

4.1 编译dbus 时出现:

1checking for accept4... yes
checking abstract socket namespace... no
checking for pkg-config... (cached) /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for XML_ParserCreate_MM in -lexpat... no
configure: error: Could not find expat.h, check config.log for failed attempts

解决方案:

export LDFLAGS=-Wl,-L/usr/local/lib,-lexpat
export CPPFLAGS=-I/usr/local/include

4.2 安装glib 时出现glib msgfmt.. no (这个问题极易出现在Ubuntu 上)

解决方案:apt-get install gettest

4.3 安装glib 时出现 error: Could not find a glib-genmarshal in your PATH,
解决方案:先在主机安装 apt-get install libglib2.0-dev

4.4 bluez-utils ./configure 时出现:BLUEZ no Bluetooth library is required

解决方案:sudo apt-get install libbluetooth-dev

4.5 bluez-utils ./configure 时出现:configure: error: D-Bus library is required

解决方案:sudo apt-get install libdbus-1-dev libdbus-glib-1-dev

4.5 bluez-utils 编译 make 时出现bluez libgmodule-2.0.so could not read symbols: File in wrong 等

解决方案: 查看 glib 配置时的 arm-linux.cache 和环境变量的配置,问题极有可能出现在这里

5 bluez 测试

5.1 测试准备

在自己配置 ./configure --prefix=/opt/libs 时 说明自己的库会被安装在/opt/libs 下

copy /opt/libs/sbin/* 到你的文件系统 /sbin

copy /opt/libs/bin/ 下的 hcitool,rfcomm,sdptool 到你的文件系统 /bin

copy /opt/libs/etc/bluetooth/* 到你的文件系统 /etc

5.2 测试命令

[root@FORLINX6410]# hciconfig hci0 up  启用蓝牙

[root@FORLINX6410]# hciconfig hci0 iscan配置开发板蓝牙可被查找
[root@FORLINX6410]# hcitool scan 查找蓝牙
Scanning ...
        00:22:A5:E2:85:AC       HTC click 这个是我手机的蓝牙设备
[root@FORLINX6410]#

ARM USB蓝牙,Bluez 移植。相关推荐

  1. Linux下基于Bluez开发USB蓝牙SPP服务端

    由于是在linux上运行的,所以参考的bluez的代码,用C语言实现了蓝牙的Server端. 原理也很简单,在服务器端,通过命令添加SPP服务 前提是先安装好bluez,一般是安装好的,没安装的话可以 ...

  2. linux 蓝牙脚本,arm linux串口蓝牙工具移植及使用(示例代码)

    ap6212中串口蓝牙在linux下的使用记录 一.linux蓝牙工具移植 主要使用到的工具及相关库如下: bluez-libs-3.36 libxml2-2.7.4 dbus-1.0.2 glib- ...

  3. Bluez移植到mini2440 .

    Bluez移植到arm mini2440上 搞了两天的蓝牙协议栈(bluez)的移植,现在终于有点小成就了,写下来和大家分享.以下介绍Bluez移植的基本步骤. 一,linux内核的配置 Linux  ...

  4. 基于ARM的嵌入式Linux移植真实体验(3)――操作系统

    基于ARM的嵌入式Linux移植真实体验(3)――操作系统 宋宝华[email]21cnbao@21cn.com[/email] 出处:dev.yesky.com 在笔者撰写的<C语言嵌入式系统 ...

  5. 海思平台上USB WIFI的移植与局域网无线调试和视频流预览-第5/11季视频课程-朱有鹏-专题视频课程...

    海思平台上USB WIFI的移植与局域网无线调试和视频流预览-第5/11季视频课程-143人已学习 课程介绍         本季课程在开发板上移植USB WIFI模块(套装附带的MT7601模块), ...

  6. A10 JBM146 usb蓝牙模块调试心得

    1.首先A10 的kernel 没有把usb 蓝牙的驱动打开 配置内核支持Bluetooth, 1.1 make menuconfig [*] Networking support  ---> ...

  7. Fedora12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440

    Fedora12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440 参考: http://hi.baidu.com/jiyeqian/blog/item/f46d2 ...

  8. Linux系统移植实验---USB驱动的移植

    实验八 USB驱动的移植 [实验目的] USB接口是现在计算机系统中最通用的一种接口, 说明:在本系统移植课程实验中命令行提示符 "$"表示是在主机上执行,"#" ...

  9. EP-N8530S USB WIFI 驱动移植

    /************************************************************************ EP-N8530S USB WIFI 驱动移植* 说 ...

最新文章

  1. 036_Hashtable和HashMap的区别
  2. 学习笔记(25):Python网络编程并发编程-Thread其他属性和守护线程
  3. HTTP Cookie详解
  4. JAVA 没有重载运算符,那么 String 类型的加法是怎么实现的,以及String类型不可变的原因和好处...
  5. 移动WEB开发之Safari、QQ、UC、360浏览器的私有Meta属性
  6. 当不知轴承型号时如何寻找轴承故障频率_知课堂 | 快速计算轴承特征频率
  7. SecondCopy 2000 简单说明
  8. uniapp中使用微信SDK
  9. zookeeper入门篇
  10. USB无线网卡和PCI-E无线网卡如何选择?
  11. 支付宝个人支付接口,无需营业执照
  12. 完整的PRD文档包含哪些内容?
  13. 网页兼容性调好了么?
  14. java和scala代码可以混合编写吗_IDEA实现Java与Scala代码混合开发
  15. 行列式的两种计算方法
  16. 几种数据规整的方法总结
  17. 使用python下载图片(福利)
  18. Python对齐显示||tabulate函数||wcwidth模块||知道这些就够了
  19. jquery 给连接上面加上hot图标
  20. 数据库厂商都怕低价竞争?阿里云说竞争靠核心技术

热门文章

  1. win7 找不到 本地用户和组
  2. 这部史诗级大片,燃到爆!
  3. 一生践行“心正则字正”
  4. 超级计算机还是超级烂尾?天河一号闲置近1年
  5. 最美中国字|硬笔书法“崇”字这样写才好看,建议收藏!
  6. wincc7.4安装授权 全(文件分享)
  7. 常见的web攻击手段
  8. 申论高效解题的步骤——按部就班
  9. 免费赠书,元旦快乐!
  10. 7-97 约会成功了吗