蓝牙协议栈移植
目录
第一步:下载文件 (1)
第二步:配置内核支持Bluetooth (2)
第三步:交叉编译蓝牙协议栈库文件 (3)
第四步:移植到arm板 (4)
硬件平台:S3C6410开发板
Linux内核:linux-3.0.1
作者:孙怀亚
说明:这是一个6410+usb蓝牙移植过程!
在做下面的过程中,我认为你是有个有点嵌入式开发经验的人,并且交叉编译器已经安装完毕,内核源码已经可以编译通过运行等!特别要强调,usb总线驱动一定要是好的。
如有需要请联系:sunhuaiya@
第一步:下载文件
bluez-lib-3.36.tar.gz
expat-2.0.1.tar.gz
dbus-1.2.16.tar.gz
glib-2.22.4.tar.bz2
libusb-0.1.12.tar.gz
bluez-utils-3.36.tar.gz(哥花钱下载的!肯爹的官网没下载下来!)
第二步:配置内核支持Bluetooth
make menuconfig
[*] Networking support --->
<*> Bluetooth subsystem support ---> //蓝牙子系统必须选择
<*> L2CAP protocol suppor //逻辑链路控制和适配协议。
<*> SCO links support //蓝牙语音和耳机支持
<*> RFCOMM protocol suppor //面向流的传输协议,支持拨号网络等[*] RFCOMM TTY support //
<*> BNEP protocol support //蓝牙网络封装协议,自组网支持
[*] Multicast filter support //蓝牙多播,支持支持BNEP
[*] Protocol filter support //蓝牙多播,支持支持支持BNEP
<*> HIDP protocol support //基本支持协议
Bluetooth device drivers --->
<*> HCI USB driver //USB蓝牙模块支持
<*>HCI UART driver //基于串口,CF卡或PCMCIA的蓝牙
<*> HCI BlueFRITZ! USB driver
<*> HCI VHCI (Virtual HCI device) driver
第三步:交叉编译蓝牙协议栈库文件
1、编译安装bluez-lib-3.36.tar.gz
这个库不需要什么依赖,直接解压,配置,编译然后安装即可。
#tar zxvf bluez-lib-3.36.tar.gz
#./configure --prefix=/opt/blu/lib --host=arm-linux --target=arm-linux CC=arm-linux-gcc
#make
#make install
=======================================================
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/blu/lib --host=arm-linux --target=arm-linux CC= arm-linux-gcc
#make
#make install
=======================================================
3、编译安装dbus-1.2.16.tar.gz
#tar zxvf dbus-1.2.16.tar.gz
#./configure --prefix=/opt/blu/lib --host=arm-linux --target=arm-linux CC="arm-linux-gcc -I/opt/blu/lib/include -L/opt/blu/lib/lib " --cache-file=arm-linux.cache --with-x=no
#make
4、编译安装libusb-0.1.12.tar.gz
#tar zxvf libusb-0.1.12.tar.gz
#./configure --prefix=/opt/blu/lib --host=arm-linux --target=arm-linux CC=
arm-linux-gcc
#make
#make install
4、编译安装glib-2.22.4.tar.bz2
#tar -zxjf glib-2.22.4.tar.bz2
#./configure --prefix=/opt/blu/lib --target=arm-linux --host=arm-linux CC=" arm-linux-gcc -I/opt/blu/lib/include -L/opt/blu/lib/lib" glib_cv_stack_grows=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes ac_cv_lib_rt_clock_gettime=no glib_cv_monotonic_clock=yes
#make
#make install
=======================================================
5、编译安装bluez-utils-3.36.tar.gz
#tar zxvf bluez-utils-3.36.tar.gz
#./configure --prefix=/opt/blu/utl --host=arm-linux --target=arm-linux CC=" arm-linux-gcc -I/opt/blu/libs/include -L/opt/blu/libs/lib -I/opt/blu/lib/include -L/opt/blu/lib/lib " --disable-audio
#make
#make install
这样Bluez协议栈就编译好了。
第四步:移植到arm板
编译好后的库安装在/opt/blu/lib/lib下,如图所示:
将安装好的/opt/blu/lib/lib下所有文件拷贝到arm板下面的/usr/lib目录下