好文档 - 专业文书写作范文服务资料分享网站

linux下bluez的移植

天下 分享 时间: 加入收藏 我要投稿 点赞

linux下bluez的移植~

bluez的移植可以用两个字概括:麻烦!原因是它不是单纯的bluez的编译,它还需要其他很多的库的支持,下面先列举一下这些库的麻烦依赖关系吧: bluez-libs-3.36(不需要其他库)

bluez-utils-3.36:glib-2.16.5 dbus-1.0.2:libxml2-2.7.4 libsndfile-1.0.17 libusb-0.1.12

前面两个必须的,后两个看你的配置,bluez4也一样;

下面开始编译:

Bluez移植到arm s3c2410上

搞了好几天的蓝牙协议栈(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所需要的几个库,以及几个

库编译的先后顺序。

注:/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,编译安装

这个库是后面的dbus依赖的,你也可以用expat来代替libxml2,官方网站上说dbus必须依赖于他们中的一个。

#tar zxvf libxml2-2.7.4.tar.gz

#./configure --profix=/opt/libs --host=arm-linux --target=arm-linux CC=arm-linux-gcc #make

#make install

3,编译安装dbus-1.0.2.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=\file=arm-linux.cache --with-x=no #make

#make install

4,编译安装glib-2.16.5

#tar -zxjf glib-2.16.5.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=\linux-gcc -I/opt/libs/include -L/opt/libs/lib\#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=\

linux下bluez的移植

linux下bluez的移植~bluez的移植可以用两个字概括:麻烦!原因是它不是单纯的bluez的编译,它还需要其他很多的库的支持,下面先列举一下这些库的麻烦依赖关系吧:bluez-libs-3.36(不需要其他库)bluez-utils-3.36:glib-2.16.5dbus-1.0.2:libxml2-2.7.4libs
推荐度:
点击下载文档文档为doc格式
5tpo51uyvz9uewu2s0h44x67j2pwjr01ecp
领取福利

微信扫码领取福利

微信扫码分享