Chinaunix首页 | 论坛 | 博客
  • 博客访问: 671069
  • 博文数量: 845
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:22
文章分类

全部博文(845)

文章存档

2011年(1)

2008年(844)

我的朋友

分类:

2008-10-15 16:28:52

 最近两天在HH2410-R3上移植了USB蓝牙设备和 BlueZ 蓝牙栈,呵呵,蓝牙果然是个很好的东西,栈内容很丰富,挂上去以后可以使用很多功能。我现在就可以用它来接收 GPS 数据以及和用手机上网。我是在做车载的,所以特别有用。积累了一些关于蓝牙的知识,但是算是初步的,把我的经验发上来,各位做过蓝牙的大哥请多指导。

  一切版权归bluez的作者---同济大学高性能计算中心 Dennis 

  欢迎各位发邮件给我和我讨论 dennis.he.2005@gmail.com
  先介绍一下硬件,我用的是电脑卖场里面随便买到的 USB 蓝牙适配器,价格在80元左右,应该是台产的,没有牌子,像一个小一点的U盘。买之前叫卖家在windows下一下,带一个带蓝牙的手机过去试试看,确认能用再买。
  上的蓝牙栈有好几个,官方的蓝牙协议栈是Bluez,在上能找到所有的说明文档和源代码。我先是在自己的pc上安装了bluez的协议栈,然后又把它移植到了华恒HH2410-R3上。

(一) 在Red hat 9上安装Bluez
  在pc上的安装我参考了O'Reilly的Linux Unwired一书,chapter 7中详细地介绍了下的bluetooth的基础知识、安装、配置和使用。安装前必须了解一下bluez的基本结构,直接位于发射传输协议之上的协议是HCI(host control interface),我的手机和蓝牙GPS用到的高层协议是服务发现协议SDP和模拟串口的协议RFCOMM,中间那一层协议是L2CAP,应该是处理逻辑链路的吧,我并不是很清楚,请参考bluez的官方文档。
HH2410-R3上用到内核版本是2.4.18,于是我在pc上安装bluez时也使用了2.4.18的内核。使用bluez必须要对内核打patch的,于是到上了linux-2.4.18.tar.bz2后到http:///patches.html上针对2.4.18的patch,patch-2.4.18-mh15.gz。于是,解压,打patch:
# tar xjvf linux-2.4.18.tar.bz2
# cd linux/
# gzip -dc ../patch-2.4.18-mh15.gz | patch -p1
注意一下这时的patch的输出,在源代码方面的patch是针对driver/、include/、net/目录下的代码的修改,并没有修改到内核部分的内容,应该没有修改到linux核心的东西,在移植到S3C2410时应该不会有太大的问题。
下面就是编译内核,在config的时候关于bluez我的配置是这样的:
#
# Bluetooth support

CONFIG_BLUEZ=m
CONFIG_BLUEZ_L2CAP=m
CONFIG_BLUEZ_SCO=m
CONFIG_BLUEZ_RFCOMM=m
CONFIG_BLUEZ_RFCOMM_TTY=y
CONFIG_BLUEZ_BNEP=m
CONFIG_BLUEZ_BNEP_MC_FILTER=y
CONFIG_BLUEZ_BNEP_PROTO_FILTER=y 

#
# Bluetooth device drivers
#
CONFIG_BLUEZ_HCIUSB=m
# CONFIG_BLUEZ_HCIUSB_SCO is not set
CONFIG_BLUEZ_HCIUART=m
CONFIG_BLUEZ_HCIUART_H4=m
CONFIG_BLUEZ_HCIUART_BCSP=m
# CONFIG_BLUEZ_HCIUART_BCSP_TXCRC is not set
# CONFIG_BLUEZ_HCIBFUSB is not set
CONFIG_BLUEZ_HCIDTL1=m
CONFIG_BLUEZ_HCIBT3C=m
CONFIG_BLUEZ_HCIBLUECARD=m
CONFIG_BLUEZ_HCIBTUART=m
CONFIG_BLUEZ_HCIVHCI=m

[1]     

【责编:Luzi】

--------------------next---------------------

阅读(267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~