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

发布时间:2021-06-07

在S3C2410上移植bluetooth(蓝牙)

动态库。只好自己动手,到bluz-libs-2.17/src/下,自己编译动态库:

# /opt/host/armv4l/bin/armv4l-unknown-linux-gcc -shared -o libbluetooth.so.1.0.17 bluetooth.o hci.o sdp.o

再做两个符号连接

# ln -s libbluetooth.so.1.0.17 libbluetooth.so

# ln -s libbluetooth.so.1.0.17 libbluetooth.so.1

好了,库交叉编译完毕,mv到/HHARM2410/application/bluezport/libs/lib文件夹下就可以了。

接着移植Bluez的工具集。与库类似,先看一下各个程序需要用到什么库,比如:

#ldd /usr/sbin/hcid

libbluetooth.so.1 => /usr/lib/libbluetooth.so.1 (0x40035000)

libc.so.6 => /lib/libc.so.6 (0x40042000)

/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

挨个试试需要用的工具,发现需要的库华恒和Bluez都提供了,应该换个编译器编译一下就可以了。编译之前我为了到板子上与我自己的手机连接方便修改了 bluez-utils-2.17/hcid/security.c文件,在init_security_data函数中的设置默认的密码,非常简单地改了两行:

strcpy(hcid.pin_code, "123");

hcid.pin_len = 3;

然后configure我想就行了,我的configure设置为:

# ./configure --prefix=/HHARM2410-R3/applications/bluezport/utils --includedir=/HHARM2410-R3/applications/bluezport/libs/include --libdir=/HHARM2410-R3/applications/bluezport/libs/lib --with-bluez=/HHARM2410-R3/applications/bluezport/libs --disable-test --disable-cups --disable-pcmia --host=armv4l CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc CPP=/opt/host/armv4l/bin/armv4l-unknown-linux-cpp AR=/opt/host/armv4l/bin/armv4l-unknown-linux-ar STRIP=/opt/host/armv4l/bin/armv4l-unknown-linux-strip RANLIB=/opt/host/armv4l/bin/armv4l-unknown-linux-ranlib LD=/opt/host/armv4l/bin/armv4l-unknown-linux-ld

# make

我在这步make的时候出现了一点小错误,好像是说PATH_MAX没有定义,这个是LINUX设置的存放路径名缓冲区的最大长度。应该是少包含了一个头文件造成的。我没有去仔细考究,就在当前文件下的config.h中添加了三行:

#ifndef PATH_MAX

#define PATH_MAX 4095/* PAGE_SIZE - 1 */

#endif

采用简单粗鲁的添加定义的方式。再make,通过。

# make install

好了,工具集都在/HHARM2410-R3/applications/bluezport/util下了。

最后,由于在PC的LINUX下的默认pin_helper /usr/bin/bluepin是用python写的代码,在2410上当然不能用了,所以要自己写一个pin_helper的程序。翻翻 /usr/bin/bluepin的代码以及hcid/security.c的代码,事实上hcid进程在验证PIN code的时候开了一个pipe指向pin_helper进程的标准输出,pin_helper进程向用户询问PIN code,如果用户输入密码XXXX就以"PIN:XXXX"的形式写到标准输出中去,如果用户reject就写个"ERR"回去。

我以一种最简单的方式实现pin_helper程序,即固定地写一个code回去,比如123,牺牲安全性。

用脚本实现就是:

#!/bin/sh

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

精彩图片

热门精选

大家正在看

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

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

支付方式:

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

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