移植Bluez-4.1

来源:互联网 发布:日语网络考试 编辑:程序博客网 时间:2024/05/18 18:02

编译好的文件

  • 交叉编译好的Bluez-4.1文件
  • 直接将里面的文件上传到开发板就OK啦!

编译的过程

  1. 配置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烧进开发板
  2. 安装交叉编译器
    • 实质就是编译安装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可以看到版本信息
  3. 将编译Bluez-4.1所需文件都放到一个文件夹里面
    • 编译需要用到的所有文件:编译Bluez-4.1需要用到的文件
    • 这里讲所有的文件都放到/tmp
  4. 第一步:编译安装expat
    • 解压expat-2.0.1.tar
    • 进入目录,执行:CC=arm-linux-gcc ./configure --prefix=/tmp/blue --host=arm-linux 将生成的文件都放到/tmp/blue
    • make
    • make install
  5. 第二步:编译安装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
  6. 第三步:编译安装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
  7. 第四步:编译安装ncurses
    • 解压ncurses-5.9.tar
    • 进入目录,执行./configure --host=arm-linux --prefix=/tmp/blue CXX=arm-linux-g++ CC=arm-linux-gcc
    • make
    • make install
  8. 第五步:编译安装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
  9. 第六步:编译安装alsa-lib
    • 解压alsa-lib-1.0.29.tar
    • 进入目录,执行:./configure --prefix=/tmp/blue CC=arm-linux-gcc --host=arm-linux --disable-python
    • make
    • make install
  10. 第七部:编译安装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
  11. 大功告成,在/tmp/blue文件夹生成了我们想要的东西

  12. 将对应文件放到开发板就可以了

    • 将/tmp/blue/bin下所有文件,放到开发板/usr/bin
    • include所有文件,放到开发板/usr/include
    • lib所有文件,放到开发板/usr/lib
    • sbin所有文件,放到开发板/usr/sbin
    • etc所有文件,放到开发板/etc
    • var所有文件,放到开发板/var
  13. 在开发板上启动usb蓝牙功能

    • 插入usb蓝牙适配器
    • 执行hciconfig dev 查看蓝牙适配器,一般是hci0
    • 启动蓝牙:hciconfig hci0 up
    • 开始扫描:hcitool scan ,记下要连接设备的MAC地址
    • 连接对应设备:rfcomm bind /dev/rfcomm0 对应设备MAC

效果

0 0
原创粉丝点击