编译好的文件
- 交叉编译好的Bluez-4.1文件
- 直接将里面的文件上传到开发板就OK啦!
编译的过程
- 配置linux内核文件,使其支持usb蓝牙
- 我的开发板是友善之臂的smart210
- 安装
apt-get install libcurses5-dev
以便打开内核配置界面 - 在内核文件目录执行
make menuconfig
等一会会弹出配置界面 - 回车进入Bluetooth subsystem support
- 勾选下面项目:
- <*>L2CAP
- <*>SCO
- <*>RFCOMM Protocol
- [*]RFCOMM TTY
- <*>BNEP
- [*]Multticast
- [*]Protocol
- <*>HIDP
- 回车进入Bluetooth device drivers
- <*>HCI USB driver
- <*>HCI Blue
- <*>HCI VHCI driver
- 执行
make
编译内核 - 将编译生成的arch/arm/boot的zImage烧进开发板
- 安装交叉编译器
- 实质就是编译安装
arm-linux-gcc
- 解压
arm-linux-gcc-4.5.1-v6-vfp-20120301
- 修改
/root/.bashrc
文件,将交叉编译器添加到环境变量 - 在最后面添加:
sudo export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin
- 设置后,终端输入
arm-linux-gcc -v
可以看到版本信息
- 实质就是编译安装
- 将编译Bluez-4.1所需文件都放到一个文件夹里面
- 编译需要用到的所有文件:编译Bluez-4.1需要用到的文件
- 这里讲所有的文件都放到
/tmp
- 第一步:编译安装expat
- 解压
expat-2.0.1.tar
- 进入目录,执行:
CC=arm-linux-gcc ./configure --prefix=/tmp/blue --host=arm-linux
将生成的文件都放到/tmp/blue - make
- make install
- 解压
- 第二步:编译安装dbus
- 解压
dbus-1.6.18.tar
- 进入目录,执行:
CC=arm-linux-gcc ./configure CFLAGS=-I/tmp/blue/include LDFLAGS=-L/tmp/blue/lib --prefix=/tmp/blue --host=arm-linux --enable-abstract-sockets --with-x=no
- make
- make install
- 解压
- 第三步:编译安装glib
- 解压
glib-2.28.6.tar
- 进入目录,执行:
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/tmp/blue PKG_CONFIG_PATH=/tmp/blue/lib/pkgconfig glib_cv_stack_grows=no glib_cv_uscore=yes ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes
- make
- make install
- 解压
- 第四步:编译安装ncurses
- 解压
ncurses-5.9.tar
- 进入目录,执行
./configure --host=arm-linux --prefix=/tmp/blue CXX=arm-linux-g++ CC=arm-linux-gcc
- make
- make install
- 解压
- 第五步:编译安装readlines
- 解压
readline-6.3.tar
- 进入目录,执行
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/tmp/blue bash_cv_wcwidth_broken=yes
make SHLIB_LIBS=-lncurses
- make install
- 解压
- 第六步:编译安装alsa-lib
- 解压
alsa-lib-1.0.29.tar
- 进入目录,执行:
./configure --prefix=/tmp/blue CC=arm-linux-gcc --host=arm-linux --disable-python
- make
- make install
- 解压
第七部:编译安装bluez-4.101
- 解压
bluez-4.101.tar
- 进入目录,执行:
CC="arm-linux-gcc -L/tmp/blue/lib -I/tmp/blue/include" ./configure --host=arm-linux --prefix=/tmp/blue PKG_CONFIG_PATH=/tmp/blue/lib/pkgconfig --disable-systemd --disable-udev --disable-cups --disable-obex --enable-library
- make
- make install
- 解压
大功告成,在/tmp/blue文件夹生成了我们想要的东西
将对应文件放到开发板就可以了
- 将/tmp/blue/bin下所有文件,放到开发板/usr/bin
- include所有文件,放到开发板/usr/include
- lib所有文件,放到开发板/usr/lib
- sbin所有文件,放到开发板/usr/sbin
- etc所有文件,放到开发板/etc
- var所有文件,放到开发板/var
在开发板上启动usb蓝牙功能
- 插入usb蓝牙适配器
- 执行
hciconfig dev
查看蓝牙适配器,一般是hci0 - 启动蓝牙:
hciconfig hci0 up
- 开始扫描:
hcitool scan
,记下要连接设备的MAC地址 - 连接对应设备:
rfcomm bind /dev/rfcomm0 对应设备MAC