1. 软件环境
主机:Ubuntu 13.04
开发板:s3c6410
Gcc : arm-none-linux-gnueabi-gcc
2. 内核支持
make menuconfig
[*]Networkingsupport --->
<*> Bluetoothsubsystem support ---> //蓝牙子系统必须选择
<*> L2CAPprotocol suppor //逻辑链路控制和适配协议。
<*> SCOlinks support //蓝牙语音和耳机支持
<*> RFCOMMprotocol suppor //面向流的传输协议,支持拨号网络等
[*] RFCOMMTTY support //
<*> BNEPprotocol support //蓝牙网络封装协议,自组网支持
[*] Multicastfilter support //蓝牙多播,支持支持BNEP
[*] Protocolfilter support //蓝牙多播,支持支持支持BNEP
<*> HIDPprotocol support //基本支持协议
Bluetoothdevice drivers --->
<*>HCI USBdriver //USB蓝牙模块支持
<M>HCIUARTdriver //基于串口,CF卡或PCMCIA的蓝牙
<*>HCI BlueFRITZ! USB driver
<*>HCI VHCI (Virtual HCI device) driver
3. 移植bluez
依赖库:
bluez-libs-3.36.tar.gz
bluez-libs-2.25.tar.gz
dbus-1.5.12.tar.gz
expat-2.0.1.tar.gz
glib-2.26.1.tar.gz
bluez-utils-3.36.tar.gz
libusb-0.1.12.tar.gz
步骤:
1) 编译安装bluez-libs-3.36.tar.gz
#tar zxvfbluez-libs-3.36.tar.gz
#./configure--prefix=/opt/libs --host=arm-linux --target=arm-linux CC=arm-none-linux-gnueabi-gcc
#make
#makeinstall
2) 编译安装expat-2.0.1.tar.gz
这个库是后面的dbus依赖的,你也可以用libxml2来代替expat,官方网站上说dbus必须依赖于他们中的一个,我这里用的是expat-2.0.1.tar.gz。
#tar zxvf expat-2.0.1.tar.gz
#./configure--prefix=/opt/libs --host=arm-linux --target=arm-linux CC=arm-none-linux-gnueabi-gcc
#make
#make install
3) 编译安装dbus-1.5.12.tar.gz
#tar zxvf dbus-1.5.12.tar.gz
#echo ac_cv_have_abstract_sockets=yes>arm-linux.cache
#./configure--prefix=/opt/libs --host=arm-linux --target=arm-linux CC="arm-none-linux-gnueabi-gcc-I/opt/libs/include -L/opt/libs/lib" --cache-file=arm-linux.cache--with-x=no
#make
#make install
4) 编译安装glib-2.26.1.tar.gz
#tar -zxjf glib-2.26.1.tar.gz
echo ac_cv_header_pwd_h=yes>arm-linux.cache
echoac_cv_type_long_long=yes>arm-linux.cache
echoglib_cv_stack_grows=no>>arm-linux.cache
echo glib_cv_uscore=no>>arm-linux.cache
echoac_cv_func_posix_getgrgid_r=yes>>arm-linux.cache
echo ac_cv_func_posix_getpwuid_r=yes>>arm-linux.cache
echoglib_cv_have_qsort_r=no>>arm-linux.cache
#./configure--prefix=/opt/libs --host=arm-linux --target=arm-linux CC="arm-none-linux-gnueabi-gcc-I/opt/libs/include -L/opt/libs/lib" --cache-file=arm-linux.cache
#make
#makeinstall
5) 编译安装bluez-utils-3.36.tar.gz
#tar zxvf bluez-utils-3.36.tar.gz
#./configure--prefix=/opt/libs --host=arm-linux --target=arm-linux CC="arm-none-linux-gnueabi-gcc-I/opt/libs/include -L/opt/libs/lib" --disable-audio
#make
#makeinstall
4. bluez测试
测试说明
在自己配置 ./configure --prefix=/opt/libs 时 说明自己的库会被安装在/opt/libs 下
copy /opt/libs/sbin/* 到你的文件系统 /sbin
copy /opt/libs/bin/ 下的 hcitool,rfcomm,sdptool 到你的文件系统 /bin
copy /opt/libs/etc/bluetooth/* 到你的文件系统 /etc
5.2测试命令
[root@FORLINX6410]#hciconfig hci0 up 启用蓝牙
[root@FORLINX6410]#hciconfig hci0 iscan配置开发板蓝牙可被查找
[root@FORLINX6410]# hcitool scan 查找蓝牙
Scanning ...
00:22:A5:E2:85:AC HTC click 这个是我手机的蓝牙设备
[root@FORLINX6410]#