|
---同济大学高性能计算中心 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,放到板子上,可以运行! |
相关推荐
MarkDown简介(深度解析MarkDown用法)
欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I...
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...
CST中PEC结构涂覆吸波材料的RCS仿真与优化
本文详细介绍了在CST Studio Suite中对PEC结构涂覆吸波材料进行RCS仿真的完整流程与优化策略。通过精确的材料参数设置、涂层厚度优化和仿真技巧,有效降低目标的雷达散射截面,提升隐身性能。文章结合实战案例,为工程师提供了一套高效的RCS仿真与优化解决方案。
Ubuntu 中蓝牙识别及bluepy蓝牙串口测试
在Ubuntu 系统中,经常需要进行蓝牙调试。下面介绍一种蓝牙适配器(CSR8510 )的使用方法。系统 :Ubuntu 16.04 python3 版本 : python3USB2 . 0 蓝牙适配器 :CSR8510以上就是今天要讲的内容,本文仅仅简单介绍了bluepy的使用,设定目标蓝牙 Mac 地址,可以通过执行脚本获取相关信息。
使用这个算法我可以实现英雄联盟里英雄的走位|Java 开发实战
A算法,A(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。 基本概念 首先在大学我们遇到最多的算法Dijkstra、Floyd、广度搜索、深度搜索。关于这些算法我们以后再慢慢的研究,今天的重点在A算法上。A算法是一种启发式算法。与上述几种算法不同的是A*算法在考虑起始节点的同时还会考虑到目标节点的代价。 在A*算法中我们给每个节点都定义一些属性。最基本的就是下文提到的三基数-这里的三基数是我自己定义.
避坑指南:用pygrib处理ERA5气象数据时遇到的5个典型问题
本文总结了使用pygrib库处理ERA5气象GRIB数据时常见的五个典型问题及解决方案,涵盖数据获取、内存管理、时间处理、空间插值和性能优化。重点针对气象数据插值这一核心挑战,提供了处理不规则网格、缺失值和跨日期变更线的实用代码示例与优化策略,帮助用户高效、稳定地完成气象数据分析工作。
蓝牙的移植
最近两天在HHARM2410-R3上移植了USB蓝牙设备和 BlueZ 蓝牙协议栈,呵呵,蓝牙果然是个很好的东西,协议栈内容很丰富,挂上去以后可以使用很多功能。我现在就可以用它来接收 GPS 数据以及和用手机上网。我是在做车载的,所以特别有用。积累了一些关于蓝牙的知识,但是算是初步的,把我的经验发上来,各位做过蓝牙的大哥请多指导。 一切版权归blue
华为防火墙——本地Portal认证
配置IP地址、路由、Nat策略使得内网主机可以访问公网服务器对网段不进行认证,对网段进行portal认证。
蓝牙网络共享linux,linux 用蓝牙和手机通信
加载模块:#modprobehci_usb#modproberfcomm#hciconfighci0up#hciconfighci0up查看状况:#hciconfig-ahci0:Type:USBBDAddress:00:10:60:A3:68:9FACLMTU:192:8SCOMTU:64:8UPRUNNINGPSCANISCANRXby...
2023年全国职业院校技能大赛 网络系统管理服务模块 Linux部分讲解
网络系统管理,Linux,服务部署,Chinaskills,2023国赛
手把手教你学AutoSAR - 总目录
鉴于近期较多博友问及微信群,如下可申请好友验证,请备注“autosar”,否则可能添加不通过。验证通过后,拉入讨论群。PS:本人鉴于工作事项可能不能及时回复问题,可在交流群内部和其他博友之间相互沟通交流经验。欢迎来到桃源乐游的《AutoSAR配置与实践》,以下为学习大纲,蓝色字体点击可跳转。
linux 蓝牙模块,蓝牙模块在HHARM2410上的移植
最近两天在HHARM2410-R3上移植了 USB蓝牙设备和 BlueZ 蓝牙协议栈,呵呵,蓝牙果然是个很好的东西,协议栈内容很丰富,挂上去以后可以使用很多功能。我现在就可以用它来接收 GPS 数据以及和用手机上网。我是在做车载的,所以特别有用。积累了一些关于蓝牙的知识,但是算是初步的,把我的经验发上来,各位做过蓝牙的大哥请多指导。一切版权归bluez的作者---同济大学高性能计算中心 Denni...
LLC变压器,常见的4大问题解决方案
其中之一是当付边的绕组的匝数或层数较多的时候,层间或匝间寄生电容和付边的漏感发生一个寄生的振荡,轻载的时候,这个振铃的幅度会达到很高,导致输出电压比设计的要高许多。但当输入是低压的时候,开关频率比较低,LLC谐振回路的增益较大,因而比较容易发生变压器饱和的问题。由于LLC变压器工作在LC谐振状态,LC谐振回路有个特点就是Q值问题,在这里Q值是大于1的,因而就会有实际加在变压器上的电压要比输入电压高的问题,因而在设计变压器的时候就必须考虑到这一点,否则变压器就不是工作在你设计的磁感应强度上。
Android蓝牙系统
第1章 Android蓝牙系统 1.1 蓝牙技术简介 蓝牙(Bleuetooth)原是十世纪统一了丹麦的一个国王的名字,现取其“统一”的含义,用来意在统一无线局域网通讯的标准的蓝牙技术。蓝牙技术是爱立信,IBM,Intel等世界5家著名大公司在1998年联合推出的一项无线通讯规范。随后成立的蓝牙技术特殊兴趣组织(SIG)来负责该技术的开发和技术协议的制定,如今全世界已有1800多家公司加盟
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
蓝牙BlueZ的移植
一切版权归bluez的作者---同济大学高性能计算中心 Dennis 欢迎各位发邮件给我和我讨论 dennis.he.2005@gmail.com 先介绍一下硬件,我用的是电脑卖场里面随便买到的 USB蓝牙适配器,价格在80元左右,应该是台产的,没有牌子,像一个小一点的U盘。买之前叫卖家在windows下测试一下,带一个带蓝牙的手机过去试试看,确认能用再买。 linux上的
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
【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。
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
蓝牙的一个小应用
最近两天在HHARM2410-R3上移植了USB蓝牙设备和 BlueZ蓝牙协议栈,呵呵,蓝牙果然是个很好的东西,协议栈内容很丰富,挂上去以后可以使用很多功能。我现在就可以用它来接收 GPS数据以及和用手机上网。我是在做车载的,所以特别有用。积累了一些关于蓝牙的知识,但是算是初步的,把我的经验发上来,各位做过蓝牙的大哥请多指导。 一切版权归bluez的作者---同济大学高性能计算中心 D
bluetooth使用
转:https://wiki.archlinux.org/index.php/Bluetooth Bluetooth Related articles Bluez4Bluetooth mouseBluetooth headsetBlueman Bluetooth is a standard for the short-rang
手机和Linux蓝牙通信,linux 用蓝牙和手机通信
加载模块:#modprobehci_usb#modproberfcomm#hciconfighci0up#hciconfighci0up查看状况:#hciconfig-ahci0:Type:USBBDAddress:00:10:60:A3:68:9FACLMTU:192:8SCOMTU:64:8UPRUNNINGPSCANISCANRXby...
7341



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



