Bluez移植到mini2440

             Bluez移植到arm mini2440

 

   搞了两 天的蓝牙协议栈(bluez)的移植,现在终于有点小成就了,写下来和大家分享。以下介绍Bluez 移植的基本步骤。

   一,linux内核的配置

        Linux 2.6版本之后的内核一般都有蓝牙模块的配置,所以你不用再打补丁了。由于我也是处于摸索阶段,所以我暂时用的是开发板上自带的内核。

    #tar  zxvf   linux.2.6.*

   解压缩内核,进入内核目录。在名令行输入

# make disclean/make clean/make rmproper,

选择这三个中的任意一个 对内核进行清理,关于这三个命令的区别你可以google一下,然后自己去区分。

#make menuconfig/make config /make oldconfig /make xconfig

输入如这三个命令中的任何一个,对内核进配置,这几条命令的区别,请你自己google。推荐使用make menuconfig 。进入内核配置界面之后,根据你的自己的需要进行选择。关于内核的配置请单独查看内核配置方面的文档。

#make zImage ARCH=arm CROSS_COMPILE=arm-linux-

到此内核镜像就已经做好了。

二,编译bluez协议栈。

   移植过蓝牙协议栈的人,肯定会觉得,Bluez协议栈的编译是最麻烦的一件事情。其实,如果你能理清楚bluez-utils所依赖的一些库,你就能很快的cross-compile交叉编译出一套能在开发板上跑起来的程序。关键是如何去理清楚协议,我总结出来的方法是,倒着推,你不知道bluez-utils依赖那些库,那就先直接编译bluez-utils,根据编译显示的错误,分析错误,找出来它所依赖的库,这样一步一步的分析下去,你就可以把蓝牙协议栈交叉编译出来。如果你不会分析错误或则不想去分析,可以,那你就直接把错误粘贴到网上,让搜索引擎给你找。

由于时间的仓促,这里我只列出我已经总结出来的Bluez所需要的几个库,以及几个库编译的先后顺序。

我用到的几个库:

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

注:/opt/libs /opt/utils是我自己编译时用的路径,你可以随便的选取。

1,编译安装bluez-lib-3.36.tar.gz

   这个库不需要什么依赖,直接解压,配置,编译然后安装即可。

  #tar zxvf bluez-lib-3.36.tar.gz

  #./configure --profix=/opt/libs --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 --profix=/opt/libs --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

  #echo ac_cv_have_abstract_sockets=yes>arm-linux.cache

  #./configure --profix=/opt/libs --host=arm-linux --target=arm-linux     CC="arm-linux-gcc -I/opt/libs/include -L/opt/libs/lib" --cache-file=arm-linux.cache --with-x=no

  #make 

  #make install

4,编译安装glib-2.22.4.tar.bz2

  #tar  -zxjf  glib-2.22.4.tar.bz2

#echo ac_cv_type_long_long=yes>arm-linux.cache

#echo glib_cv_stack_grows=no>>arm-linux.cache

#echo glib_cv_uscore=no>>arm-linux.cache

#echo c_cv_func_posix_getpwuid_r=yes>>arm-linux.cache

#echo ac_cv_func_posix_getgrgid_r=yes>>

注意:">"和">>"的区别

#./configure --profix=/opt/libs --host=arm-linux --target=arm-linux     CC="arm-linux-gcc -I/opt/libs/include -L/opt/libs/lib" --cache-file=arm-linux.cache

#make 

#make install

5,编译安装libusb-0.1.12.tar.gz

   这个库不需要什么依赖,直接解压,配置,编译然后安装即可。

  #tar zxvf  libusb-0.1.12.tar.gz

  #./configure --profix=/opt/libs --host=arm-linux --target=arm-linux CC="arm-linux-gcc -I/opt/libs/include -L/opt/libs/lib"

  #make 

  #make install

6,编译安装bluez-utils-3.36.tar.gz

  #tar zxvf bluez-utils-3.36.tar.gz

  #./configure --profix=/opt/libs --host=arm-linux --target=arm-linux     CC="arm-linux-gcc -I/opt/libs/include -L/opt/libs/lib" --disable-audio

  #make 

  #make install

这样Bluez协议栈就编译好了。

三,烧写到开发板上

    将相应目录项的文件,拷贝到你开发板上相应文件系统对应相同名字的文件中,然后将文件系统做成镜像,再烧写内核和文件系统镜像到你的开发板上就可以了。这样Bluez移植就成功了,OK

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 31
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值