移植usb蓝牙适配器到arm板 usb蓝牙适配器

操作环境 win7 vmware fedora 10 usb 蓝牙适配器tq2440内核 2.6.30 交叉编译器4.3.3配置内核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编译内核烧入开发板中启动,插入蓝牙适配器usb 1-1.2: new full speed USB device using s3c2410-ohci andaddress 3usb 1-1.2: New USB device found, idVendor=0a12,idProduct=0001usb 1-1.2: New USB device strings: Mfr=0, Product=0,SerialNumber=0usb 1-1.2: configuration #1 chosen from 1choice移植蓝牙协议栈库文件bluez-libs-3.36.tar.gzdbus-1.5.12.tar.gzexpat-2.0.1.tar.gzglib-2.26.1.tar.gzbluez-utils-3.36.tar.gzlibusb-0.1.12.tar.gz编译安装bluez-libs-3.36.tar.gz没有什么依赖,直接解压,配置,编译安装#tar -zxvf /mnt/hgfs/Linux/bluez/bluez-lib-3.36.tar.gz –C./#./configure --prefix=/opt/EmbedSky/bluez/libs--host=arm-linux --target=arm-linuxCC=arm-linux-gcc在/opt/EmbedSky/bluez/目录下新建一个 libs用来保存蓝牙的库文件、头文件和其他文件。#make#make install

expat-2.0.1.tar.gz这个库是后面的 dbus 依赖的#tar -zxvf /mnt/hgfs/Linux/bluez/ expat-2.0.1.tar.gz –C./#./configure --prefix=/opt/EmbedSky/bluez/libs--host=arm-linux --target=arm-linux CC=arm-linux-gcc#make #make install


dbus-1.5.12.tar.gz#tar -zxvf /mnt/hgfs/Linux/bluez/ dbus-1.5.12.tar.gz –C ./#echoac_cv_have_abstract_sockets=yes>arm-linux.cache#./configure --prefix=/opt/EmbedSky/bluez/libs--host=arm-linux --target=arm-linux CC="arm-linux-gcc -I/opt/EmbedSky/bluez/libs/include -L/opt/EmbedSky/bluez/libs/lib"--cache-file=arm-linux.cache --with-x=no#make #make install


glib-2.26.1.tar.gz(这个的安装会遇到相当多的问题,下面有解决的方法)#tar -zxvf /mnt/hgfs/Linux/bluez/glib-2.26.1.tar.gz –C./#echoac_cv_type_long_long=yes>arm-linux.cache#echoglib_cv_stack_grows=no>>arm-linux.cache#echoglib_cv_uscore=no>>arm-linux.cache#echoc_cv_func_posix_getpwuid_r=yes>>arm-linux.cache#echo ac_cv_func_posix_getgrgid_r=yes>>arm-linux.cache注意:">"和">>"的区别#./configure --profix=/opt/EmbedSky/bluez/libs--host=arm-linux --target=arm-linux CC="arm-linux-gcc-I/opt/EmbedSky/bluez/libs /include -L/opt/EmbedSky/bluez/libs/lib"--cache-file=arm-linux.cache#make #make install
错误checking for posix getpwuid_r... configure: error: in`/opt/EmbedSky/bluez/glib-2.26.1':configure: error: cannot run test program while crosscompilingSee `config.log' for more details.

解决方法:# echo ac_cv_func_posix_getpwuid_r=yes>>arm-linux.cacheconfigure: error: Could not find a glib-genmarshal in yourPATH解决方法:yum install libglib2.0-devel,这样在/usr/bin/目录下就有一个glib-genmarshal 的应用程序。checking for posix getgrgid_r... configure: error: in`/opt/EmbedSky/bluez/glib-2.26.1':configure: error: cannot run test program while crosscompilingSee `config.log' for more details.


解决方法:# echo ac_cv_func_posix_ getgrgid_r _r=yes>>arm-linux.cacheconfigure: error: Could not find a glib-compile-schemas inyour PATH
这个问题确实要把我搞吐血了,我差不多找用遍百度、谷歌、搜狗和 360搜索,英文的资料都找遍了,问题是有人问,但没一个人有解决的方案。有人说这个 glib-compile-schemas 是安装glib-2.26.1.tar.gz 才有的,但是我现在是安装这个就要啊。在/usr/bin/目录下,有一个名为 glib-genmarshal 的应用程序,但就是没有glib-compile-schemas 的应用程序。想了很久,也郁闷了好久,最后无意看到 ChangeLog文件,心里好像悟到点什么。先用 gcc编译出应用程序来,再用交叉编译器来编译行不行呢?哈哈解决方法:#./configure --prefix=/opt/EmbedSky/bluez/libs CC=" gcc-I/opt/EmbedSky/bluez/libs/include -L/opt/libs/lib"#make #make install编译安装后,在/opt/EmbedSky/bluez/libs/bin/目录下就生成了glib-compile-schemas的应用程序,把它复制到/usr/bin/目录下,然后再用交叉编译器来编译。用交叉编译器编译 make 时出现错误 glib-genmarshal : GLib-Genmarshal-WARNING **: unknown type:VARIANT

这个问题的解决也是有点灵感来的。解 决 方 法 : 前 面 说 到 在 /usr/bin/ 目 录 下 本 来 就 有 一 个glib-genmarshal , 当 我 们 用 gcc 编 译 的 时 候 ,在/opt/EmbedSky/bluez/libs/bin/目录下同样生成一个 glib-genmarshal 应用程序,在 make的时候,调用的估计是原来的/usr/bin/目录下的。由于版本不同或者其他什么的,出错了。我们在/usr/bin/目录下的glib-genmarshal 删掉,把/opt/EmbedSky/bluez/libs/bin/目录下的glib-genmarshal 应用程序复制到/usr/bin/目录下即可。libusb-0.1.12.tar.gz#tar -zxvf /mnt/hgfs/Linux/bluez/libusb-0.1.12.tar.gz –C./#./configure --profix=/opt/EmbedSky/bluez/libs--host=arm-linux --target=arm-linux CC="arm-linux-gcc-I/opt/EmbedSky/bluez/libs /include-L/opt/EmbedSky/bluez/libs/lib"#make #make installbluez-utils-3.36.tar.gz#tar -zxvf /mnt/hgfs/Linux/bluez/bluez-utils-3.36.tar.gz –C./#./configure --profix=/opt/EmbedSky/bluez/libs--host=arm-linux --target=arm-linux CC="arm-linux-gcc-I/opt/EmbedSky/bluez/libs /include -L/opt/EmbedSky/bluez/libs/lib"--disable-audio#make #make install可能出现的错误:checking for BLUEZ... configure: error: Bluetooth library isrequired
这个问题也搞了我好长时间,同样在网上几乎找不到可行的答案。网上有说解决方法为 sudo apt-getinstalllibbluetooth-dev。但是在 fedora 上输入 yum installlibbluetooth-dev,你会发现根本找不到这样的安装包的。 甚至你输入 yum installlibbluetooth*都没有安装包。网上也有说是输入 yum install pkg-config,但是根据提示,这里已经说是yes 了:
所以应该也不是这个原因。另外还有说路径不对的,但我这里我已经很明确指定了路径了,所以也应该不是这个原因。根据英文意思,是少了依赖的库,yuminstall 没有下载,那可不可以考虑去百度或者谷歌下载一个呢?于是。。。解决方法:去网上下载一个 libbluetooth-dev_4.66-3_i386.deb 的软件包,用好压工具解压,里面有两个文件control.tar.gz 和data.tar.gz,可以看到 data.tar.gz里面包含有我们需要的头文件和库文件。通过共享目录放在虚拟机上去。#tar -zxvf /mnt/hgfs/Linux/bluez/data.tar.gz –C./你会发现无论你解压到哪个目录,软件包都会固定安装在/usr/include、/usr/lib 和/usr/share目录下的,这是因为里面指定了安装目录
这样再次配置的时候就不会出现上面的错误了。通过上面的操作,库文件和蓝牙工具都已经安装好了(安装在/opt/EmbedSky/bluez/libs目录下)。下面就把这些东西放到根文件。Copy /opt/EmbedSky/bluez/libs/lib 目录下的库文件到根文件的 lib目录下,包括libbluetooth.so.2.11.2 libbluetooth.so libbluetooth.so.2 libgmodule-2.0.solibgmodule-2.0.so.0libgmodule-2.0.so.0.2600.1Copy/opt/EmbedSky/bluez/sbin 目录下的所有文件到根文件的 sbin目录下Copy/opt/EmbedSky/bluez/etc/bluetooth 目录下的所有文件到根文件的 etc目录下Copy/opt/EmbedSky/bluez/bin 目录下的 hcitool,rfcomm,sdptool文件到根文件的 bin 目录下重新烧写根文件[root@EmbedSky /]# hciconfig hci0 hci0: Type: USB BD Address: 00:15:83:3D:0A:57ACL MTU: 310:10 SCO MTU: 64:8 UP RUNNING ISCAN RX bytes:930 acl:0 sco:0events:23 errors:0 TX bytes:88 acl:0 sco:0commands:17 errors:0
[root@EmbedSky /]# hciconfig hci0 up 启用蓝牙设备[root@EmbedSky /]# hciconfig hci0 iscan 设置开发板的蓝牙属性为可查找[root@EmbedSky /]# hcitool scan 扫描蓝牙设备Scanning ... 7B:29:A1:9F:66:01我手机的蓝牙设备地址 uff 蓝牙设备名
移植usb蓝牙适配器到arm板 usb蓝牙适配器


总结:移植蓝牙的库确实比较无聊,依赖的库特别多。整个过程遇到不少问题,当我们遇到问题的时候,除了通过互联网找资料外,我们也要自己多动脑去分析一下。出路总是有的!另外,我们也学会是看一些英文资料,因为英文资料很多都比较简洁直接,而不像中文资料那样你抄我我抄你的!!

  

爱华网本文地址 » http://www.413yy.cn/a/25101010/36135.html

更多阅读

运行命令:3 剪贴板查看器

运行命令:[3]剪贴板查看器——简介很多使用Windows操作系统的人都会有这个疑问:什么是剪贴板?复制、黏贴的文字、文件、图片、视频等在哪里?其实,早期的操作系统中是有这个剪贴板查看器的,只是在后来的版本中被微软老东家优化掉了,如何查看

Win7怎么查看剪贴板内容 win7剪贴板查看器

Win7怎么查看剪贴板内容——简介Windows XP以前的Windows系统都有自带的“剪贴板查看器”,我们可以很方便的查看到剪贴板的内容,或者清空剪贴板。而Windows Vista以后的系统移除了剪贴板程序,如果我们需要查看剪贴板内容,就需要从别的地

如何避免“牛市纠结症”的产生 黄金牛市

去年创业板的牛市,从585点上涨到了1571点,上涨了近1000点,笔者每天呼吁投资者参与到创业板的行情中来,可是仍然有人会亏损近1半,这些人就是犯了“牛市纠结症”,也许这些人会后悔?而稳健的投资者,随便买一个股票,都能够实现1倍的利润!所谓的牛

proe5.0各版本下载 proe5.0最高版本下载

Pro/Engineer wildfire 5.0 野火版系列下载:四、PTC Pro/Engineer wildfire 5.0 M060 野火版最新版 DVD下载(多国语言)1、电骡 32 位版本下载:复制内容到剪贴板代码:

吴劲松:维持创业板领涨大盘的观点

周一创业板指数如期强势上涨,收复了上周五大跌的全部失地,成交量却出现了萎缩。创业板大跌之后的第一个交易日就能强势反弹,特别是在成交量明显萎缩的情况下向上攻击,足以说明创业板之前的下跌是为了清洗持股不坚决的投资者。近一段时间

声明:《移植usb蓝牙适配器到arm板 usb蓝牙适配器》为网友祸水分享!如侵犯到您的合法权益请联系我们删除