|
---同济大学高性能计算中心 Dennis He | |
|
| |
| 最近两天在HHARM2410-R3上移植了USB蓝牙设备和 BlueZ 蓝牙协议栈,呵呵,蓝牙果然是个很好的东西,协议栈内容很丰富,挂上去以后可以使用很多功能。我现在就可以用它来接收 GPS 数据以及和用手机上网。我是在做车载的,所以特别有用。积累了一些关于蓝牙的知识,但是算是初步的,把我的经验发上来,各位做过蓝牙的大哥请多指导。 一切版权归bluez的作者---同济大学高性能计算中心 Dennis 欢迎各位发邮件给我和我讨论 dennis.he.2005@gmail.com 先介绍一下硬件,我用的是电脑卖场里面随便买到的 USB 蓝牙适配器,价格在80元左右,应该是台产的,没有牌子,像一个小一点的U盘。买之前叫卖家在windows下测试一下,带一个带蓝牙的手机过去试试看,确认能用再买。 linux上的蓝牙协议栈有好几个,官方的蓝牙协议栈是Bluez,在www.bluez.org上能找到所有的说明文档和源代码。我先是在自己的pc上安装了bluez的协议栈,然后又把它移植到了华恒HHARM2410-R3上。 (一) 在Red hat 9上安装Bluez 在pc上的安装我参考了O'Reilly的Linux Unwired一书,chapter 7中详细地介绍了linux下的bluetooth的基础知识、安装、配置和使用。安装前必须了解一下bluez的基本结构,直接位于发射传输协议之上的协议是HCI(host control interface),我的手机和蓝牙GPS用到的高层协议是服务发现协议SDP和模拟串口的协议RFCOMM,中间那一层协议是L2CAP,应该是处理逻辑链路的吧,我并不是很清楚,请参考bluez的官方文档。 HHARM2410-R3上用到内核版本是2.4.18,于是我在pc上安装bluez时也使用了2.4.18的内核。使用bluez必须要对内核打patch的,于是到www.kernel.org上下载了linux-2.4.18.tar.bz2后到http://www.bluez.org/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 # ............. Service Name: Serial Port 1 ............ Service Name: OBEX Object Push 利用实用工具rfcomm可以把遵循RFCOMM的服务bind到一个类似的串口设备上。在绑定之前,必须确保/dev下有rfcomm*的设备,如果没有,就自己建立: # mknod -m 666 /dev/rfcommX c 216 X (X是数字) 这样就可以绑定了,比如我需要用手机拨号上网的功能,看到它的Channel 1是RFCOMM的Dialup Networking功能,则: # rfcomm bind 0 00:0E:07:58:1A:33 1 即将00:0E:07:58:1A:33设备的Channel 1服务绑定到/dev/rfcomm0上,这样,就相当于建立了一个虚拟的串行连接到一个可以拨号的无线modem上了,打开minicom,设置串口为/dev/rfcomm0,波特率19200,8N1,键入atz,返回OK。用ppp就可以拨号上网了,第一次连接时手机会弹出个输入框问PIN code,以后就不用了。 GPS设备只是作为串口来用的,也很简单: # rfcomm bind 1 00:08:1B:C0:D1:3C 打开minicom设置波特率为4800就可以读GPS数据了,大功告成! 另外,sdpd程序是本设备提供给对外的看到的服务,可以通过sdptool add --channel=X SP来增加对外的服务,我没有研究过。还有对于文件传输OBEX和个人局域网BNEQ还需要继续学习。 (二)在HHARM2410-R3上的移植 完成了在普通red hat上的安装,熟悉了蓝牙协议栈一些基本的东西,下面的任务就是把协议栈搬到开发板上了。 第一步当然是内核了,由于华恒的内核代码改过,我也不知道从bluez上下载的patch能不能使用,试试看了,只好。 # cd /HHARM2410/kernel # gzip -dc ~/patch-2.4.18-mh15.gz | patch -p1 # find ./ -name '*rej' ./fs/cramfs/inode.c.rej 不好,有文件不能patch,看看是针对cramfs文件系统的patch,我也不清楚为什么bluez的patch会修改到cramfs,不过我想问题应该不大。内核源代码关于bluetooth的部分华恒应该没有改过,因此patch的主要部分应该是没有问题的。如果内核编译后发生问题,我想大概也只有把内核代码翻出来看了。 先就这样了,用用试试看好了。与普通pc上的类似,只不过有些是m的现在统统为y了。我的配置关于Bluez的部分设置为: # # Bluetooth support # CONFIG_BLUEZ=y CONFIG_BLUEZ_L2CAP=y # CONFIG_BLUEZ_SCO is not set CONFIG_BLUEZ_RFCOMM=y CONFIG_BLUEZ_RFCOMM_TTY=y CONFIG_BLUEZ_BNEP=y CONFIG_BLUEZ_BNEP_MC_FILTER=y CONFIG_BLUEZ_BNEP_PROTO_FILTER=y # CONFIG_BLUEZ_HIDP is not set # # Bluetooth device drivers # CONFIG_BLUEZ_HCIUSB=y # CONFIG_BLUEZ_HCIUSB_SCO is not set # CONFIG_BLUEZ_HCIUART is not set # CONFIG_BLUEZ_HCIBFUSB is not set # CONFIG_BLUEZ_HCIDTL1 is not set # CONFIG_BLUEZ_HCIBT3C is not set # CONFIG_BLUEZ_HCIBLUECARD is not set # CONFIG_BLUEZ_HCIBTUART is not set # CONFIG_BLUEZ_HCIVHCI is not set device部分就设了个USB的,其他的就不设置了。 下面继续make dep;make zImage的常规过程,OK,没有发生编译问题,可以稍微舒口气了。 下面要移植Bluez的基础库了,在Redhat 9下执行 echo "PIN:123" int main(int argc, char* argv[]) 好了,一切准备完毕,做好ramdisk,记得在/dev下mknod几个rfcomm,放到板子上,可以运行! |
相关推荐
HHARM2410 嵌入式环境搭建,基本操作
HHARM2410 嵌入式环境搭建,基本操作
linux蓝牙日志,Linux下使用蓝牙(ZT)
使用 爱立信T68i、索爱T628 与 Billionton USB Bluetooth Adapter 在Debian Kernel-2.6.0内核下测试通过。(本人购买的台产Billionton USB Bluetooth Adapter有Win98/2k/xp的驱动和软件widcomm1.3.2.7, 而要想在win2003下用的话需要最新版1.4.2.10, 可这玩>艺是需要lice...
嵌入式系统/ARM技术中的HHARM2410-Integration-R2:基于三星S3C2410的处理器全功能的开发板2型
简介 HHARM2410-Integration-R2是华恒科技最新推出的一款集成了多种接口的多功能嵌入式Linux开发板。S3C2410最高处理速度为203MHz,是同类嵌入式CPU中最快的一款,并兼有低功耗、高度集成性等特性。核心板只有名片的三分之二大小,客户基于此开发板可以开发出低功耗、小体积的最终产品。 该款开发板接口丰富,在原有的基本接口功能的基础上,扩展增加了CAN总线、LIN总线、AD/DA接口、CDMA无线模块等,适用于多种领域的开发应用。典型应用包括:手持设备、汽车电子设备、车载多媒体设备、车载GPS定位导航设备、可视电话、楼宇的对讲系统、VoIP、网络监
Ubuntu 中蓝牙识别及bluepy蓝牙串口测试
在Ubuntu 系统中,经常需要进行蓝牙调试。下面介绍一种蓝牙适配器(CSR8510 )的使用方法。系统 :Ubuntu 16.04 python3 版本 : python3USB2 . 0 蓝牙适配器 :CSR8510以上就是今天要讲的内容,本文仅仅简单介绍了bluepy的使用,设定目标蓝牙 Mac 地址,可以通过执行脚本获取相关信息。
蓝牙的移植
最近两天在HHARM2410-R3上移植了USB蓝牙设备和 BlueZ 蓝牙协议栈,呵呵,蓝牙果然是个很好的东西,协议栈内容很丰富,挂上去以后可以使用很多功能。我现在就可以用它来接收 GPS 数据以及和用手机上网。我是在做车载的,所以特别有用。积累了一些关于蓝牙的知识,但是算是初步的,把我的经验发上来,各位做过蓝牙的大哥请多指导。 一切版权归blue
蓝牙网络共享linux,linux 用蓝牙和手机通信
加载模块:#modprobehci_usb#modproberfcomm#hciconfighci0up#hciconfighci0up查看状况:#hciconfig-ahci0:Type:USBBDAddress:00:10:60:A3:68:9FACLMTU:192:8SCOMTU:64:8UPRUNNINGPSCANISCANRXby...
linux 蓝牙模块,蓝牙模块在HHARM2410上的移植
最近两天在HHARM2410-R3上移植了 USB蓝牙设备和 BlueZ 蓝牙协议栈,呵呵,蓝牙果然是个很好的东西,协议栈内容很丰富,挂上去以后可以使用很多功能。我现在就可以用它来接收 GPS 数据以及和用手机上网。我是在做车载的,所以特别有用。积累了一些关于蓝牙的知识,但是算是初步的,把我的经验发上来,各位做过蓝牙的大哥请多指导。一切版权归bluez的作者---同济大学高性能计算中心 Denni...
Android蓝牙系统
第1章 Android蓝牙系统 1.1 蓝牙技术简介 蓝牙(Bleuetooth)原是十世纪统一了丹麦的一个国王的名字,现取其“统一”的含义,用来意在统一无线局域网通讯的标准的蓝牙技术。蓝牙技术是爱立信,IBM,Intel等世界5家著名大公司在1998年联合推出的一项无线通讯规范。随后成立的蓝牙技术特殊兴趣组织(SIG)来负责该技术的开发和技术协议的制定,如今全世界已有1800多家公司加盟
蓝牙的一个小应用
最近两天在HHARM2410-R3上移植了USB蓝牙设备和 BlueZ蓝牙协议栈,呵呵,蓝牙果然是个很好的东西,协议栈内容很丰富,挂上去以后可以使用很多功能。我现在就可以用它来接收 GPS数据以及和用手机上网。我是在做车载的,所以特别有用。积累了一些关于蓝牙的知识,但是算是初步的,把我的经验发上来,各位做过蓝牙的大哥请多指导。 一切版权归bluez的作者---同济大学高性能计算中心 D
蓝牙BlueZ的移植
一切版权归bluez的作者---同济大学高性能计算中心 Dennis 欢迎各位发邮件给我和我讨论 dennis.he.2005@gmail.com 先介绍一下硬件,我用的是电脑卖场里面随便买到的 USB蓝牙适配器,价格在80元左右,应该是台产的,没有牌子,像一个小一点的U盘。买之前叫卖家在windows下测试一下,带一个带蓝牙的手机过去试试看,确认能用再买。 linux上的
手机和Linux蓝牙通信,linux 用蓝牙和手机通信
加载模块:#modprobehci_usb#modproberfcomm#hciconfighci0up#hciconfighci0up查看状况:#hciconfig-ahci0:Type:USBBDAddress:00:10:60:A3:68:9FACLMTU:192:8SCOMTU:64:8UPRUNNINGPSCANISCANRXby...
bluetooth使用
转:https://wiki.archlinux.org/index.php/Bluetooth Bluetooth Related articles Bluez4Bluetooth mouseBluetooth headsetBlueman Bluetooth is a standard for the short-rang
【RV1103/RV1106】使用Buildroot构建文件系统支持Bluetooth--交叉编译Bluez5
Bluez的依赖:fill:#333;color:#333;color:#333;fill:none;BluezglibdbusreadlineBluezlibffizlibgettextlibiconvexpatncursesBuildroot源码地址:https://buildroot.org/downloads/buildroot-2023.02.6.tar.gzBuildroot仓库下载地址:http://sources.buildroot.net。
408




被折叠的 条评论
为什么被折叠?



