标题:USB 蓝牙适配器在ARM 开发板下的使用: 关键字: dbus,bluez-lib, bluez-utils, USB 蓝牙,ARM 正文: 1、我的操作环境是 主机:xp + VMware ubuntu 10.10 。 开发板:OK6410 。 文件系统: yaffs2 。 蓝牙:蓝牙适配器(适配器在PC ubuntu 下测试可用)。交叉编译器:arm-linux-gcc 4.3.2 操作环境环境提示:如果你有red hat 或者 Fedora 这两个操作环境,建议你首选这两个环境,应为Ubuntu 操作起来问题太多了。 2、配置内核支持Bluetooth, 2.1 make menuconfig
[*] Networking support
<*>
<*>
<*>
<*>
[*]
<*>
[*]
[*]
<*>
Bluetooth device drivers
<*> HCI USB driver
<M>HCI UART driver <*> HCI BlueFRITZ! USB driver <*> HCI VHCI (Virtual HCI device) driver 2.2 下载内核 检测USB 蓝牙设备信息:
[root@Mr /mnt]#usb 1-1: new full speed USB device using s3c2410-ohci and address
[root@FORLINX6410]# hciconfig检测蓝牙设备 3.1 所依赖的库文件: bluez-libs-3.36.tar.gz dbus-1.5.12.tar.gz expat-2.0.1.tar.gz glib-2.26.1.tar.gz bluez-utils-3.36.tar.gz libusb-0.1.12.tar.gz 应用的安装步骤:
3.2,编译安装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 3.3,编译安装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.4,编译安装dbus-1.5.12.tar.gz #tar zxvf dbus-1.5.12.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 3.5,编译安装glib-2.26.1.tar.gz #tar -zxjf glib-2.26.1.tar.gz #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 3.6,编译安装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 3.7,编译安装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 4、可能出现的问题和解决方案: 4.1 编译dbus 时出现: 1checking for accept4... yes 解决方案: export LDFLAGS=-Wl,-L/usr/local/lib,-lexpat 4.2 安装glib 时出现glib msgfmt.. no (这个问题极易出现在Ubuntu 上) 解决方案:apt-get install gettest 4.3 安装glib 时出现 error: Could not find a glib-genmarshal in your PATH, 4.4 bluez-utils ./configure 时出现:BLUEZ no Bluetooth library is required 解决方案:sudo apt-get install libbluetooth-dev 4.5 bluez-utils ./configure 时出现:configure: error: D-Bus library is required 解决方案:sudo apt-get install libdbus-1-dev libdbus-glib-1-dev 4.5 bluez-utils 编译 make 时出现bluez libgmodule-2.0.so could not read symbols: File in wrong 等 解决方案: 查看 glib 配置时的 arm-linux.cache 和环境变量的配置,问题极有可能出现在这里
5 bluez 测试 5.1 测试准备 在自己配置 ./configure --prefix=/opt/libs 时 说明自己的库会被安装在/opt/libs 下 copy /opt/libs/sbin/* 到你的文件系统 /sbin copy /opt/libs/bin/ 下的 hcitool,rfcomm,sdptool 到你的文件系统 /bin copy /opt/libs/etc/bluetooth/* 到你的文件系统 /etc 5.2 测试命令 [root@FORLINX6410]# hciconfig hci0 up 启用蓝牙 [root@FORLINX6410]# hciconfig hci0 iscan配置开发板蓝牙可被查找 |
|
来自: arm_embed > 《bluetooth》