在S3C2410上移植bluetooth(蓝牙)(2)

发布时间:2021-06-07

在S3C2410上移植bluetooth(蓝牙)

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

供大家参考,Linux Unwired一书中有详细的说明,注意如果使用make menuconfig,一定要打开一下.config文件看看CONFIG_BLUEZ_RFCOMM_TTY=y,不能为n或者m。还有注意 CONFIG_USB_BLUETOOTH一定不能选(在USB support下),否则会影响到bluez的运行的。

内核编译好了就开始准备 bluez的库和工具了。到/download.html上下载最新的bluez程序包,我只下载了bluez -libs-2.20.tar.gz,bluez-utils-2.20.tar.gz,bluez-pin-0.25.tar.gz三个包,分别是库,工具集和由bluez提供的一个pin_helper。由于在pc下,安装的过程没什么好说的,解压,./configure,make,make install。

然后就是注意一下默认配置目录/etc/bluetooth/下的hcid.conf配置文件,这是用来配置后台daemon进程hcid的。如果把这台pc机器+蓝牙适配器看成是一个蓝牙设备的话,进程hcid就管理这个蓝牙设备的基本配置信息,例如名称,class,地址, feature等等。还有当设备与其他蓝牙设备Bonding/Pairing即所谓的配对时,处理PIN code的程序也是hcid,而在hcid.conf脚本中比较重要的一项就是pin_helper,默认的配置是pin_helper= /usr/bin/bluepin,这个是python写的用来读取用户输入的PIN code的程序,安装bluez-pin包的时候装在/usr/bin下的。

这里有必要了解一下配对的过程,我感觉就是两个设备互相通密码建立相互之间连接的过程。我看了hcid部分的代码,了解的大致是这样:比如两个蓝牙设备A和B,A先发送要求配对的请求给B,B由用户设置好配对的密码即 PIN code,然后回一个消息给A,说你想配对可以呀,知道我的密码吗?然后A就发送PIN code过去,B看和自己的密码相符合,就发送一个replyOK的消息给A,这样两者就建立起来了信任关系。

在pc+蓝牙适配器这个蓝牙设备A 上,如果这个设备先发送配对请求给另一个远程设备B,那么当B发送询问密码请求过来时,在A上运行的hcid后台进程就通过一个pin_helper的程序读取PIN code,并发送回给B;如果远程设备B先发送配对请求给A,hcid上用作验证的PIN code就是/etc/bluetooth/pin的内容,如果读取失败程序在启动的时候会默认地设置一个密码的,代码在bluez- utils/hcid/security.c中的init_security_data函数中,默认的是BlueZ。为了和我的手机相配,我把它改成了 123,手机只能输入数字。

关于其他hcid.conf的设置,请man hcid.conf。

设置好以后,换上新内核,启动 linux。插入USB蓝牙适配器,# dmesg | tail会发现有usb.c: USB device 2 (vend/prod 0x1131/0x1001) is not claimed by any active driver.这个问题,不管它,只要有usb.c: registered new driver hci_usb的消息就可以,然后 # lsmod 会发现hci_usb的模块被安装了,再# modprobe rfcomm,这样基本上所有的模块都安装齐了。

# hciconfig hci0 up

# hcid -f /etc/bluetooth/hcid.conf

启动hci设备和hcid精灵进程

# hciconfig -a

hci0: Type: USB

BD Address: 00:11:67:0F:BB:A1 ACL MTU: 678:8 SCO MTU: 48:10

UP RUNNING PSCAN ISCAN

RX bytes:115 acl:0 sco:0 events:15 errors:0

在S3C2410上移植bluetooth(蓝牙)(2).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219