随着各种支持蓝牙通信技术的设备的出现, 蓝牙通信变得越来越普及和广泛. 因此在嵌入式设备上集成蓝牙模块的需求变得越来越普遍. 本文以Anycom公司的CF接口的
LSE139蓝牙模块为例, 介绍了如何配置使其在具有CF插槽的嵌入式arm-linux上工作.
1. 配置环境
操作系统: arm-linux
内核: 2.4.19
2. 内核/驱动支持
为了使内核支持蓝牙, 需要给内核打补丁: 我使用的是 http://www.holtmann.org/linux/kernel/patch-2.4.19-mh18.gz 这里需要根据你的内核版本下载不同的补丁. 设备驱动方面, 这个就要看你的运气了, 因为不同版本的内核对蓝牙设备的支持是不一样的. 低版本的内核支持的蓝牙设备要少一些. 我使用的这款蓝牙模块直到内核2.6.6-rc2才得以支持. 所以我不得不更改驱动KERNEL_SOURCE_DIR/drivers/bluetooth/bluecard_cs.c, 使得LSE139在2.4的内核上也可以正常工作. 如果你需要这个Patch, 可以给我发消息或者写信. 我的Email地址是lijinlei1@hotmail.com.
然后对内核作出以下配置:
注意CONFIG_BLUEZ_HCIBLUECARD是对"CF"接口的蓝牙设备的支持.
重新编译内核和模块, 然后安装到设备上并重新启动设备. 如果你不知道怎样编译内核和模块, 请参阅其他文献.
2. pcmcia_cs的修改
由于CF卡通过PCMCIA总线工作, 所以对pcmcia设备的配置也必须修改, 以保证cardmgr能够正确识别新设备并装载正确的Driver. 以下必须手工修改: /etc/pcmcia/config:
1. 配置环境
操作系统: arm-linux
内核: 2.4.19
2. 内核/驱动支持
为了使内核支持蓝牙, 需要给内核打补丁: 我使用的是 http://www.holtmann.org/linux/kernel/patch-2.4.19-mh18.gz 这里需要根据你的内核版本下载不同的补丁. 设备驱动方面, 这个就要看你的运气了, 因为不同版本的内核对蓝牙设备的支持是不一样的. 低版本的内核支持的蓝牙设备要少一些. 我使用的这款蓝牙模块直到内核2.6.6-rc2才得以支持. 所以我不得不更改驱动KERNEL_SOURCE_DIR/drivers/bluetooth/bluecard_cs.c, 使得LSE139在2.4的内核上也可以正常工作. 如果你需要这个Patch, 可以给我发消息或者写信. 我的Email地址是lijinlei1@hotmail.com.
然后对内核作出以下配置:
#
# Bluetooth support
#
CONFIG_BLUEZ = m
CONFIG_BLUEZ_L2CAP = y
CONFIG_BLUEZ_SCO = y
CONFIG_BLUEZ_RFCOMM = m
CONFIG_BLUEZ_RFCOMM_TTY = y
CONFIG_BLUEZ_BNEP = m
CONFIG_BLUEZ_BNEP_MC_FILTER = y
CONFIG_BLUEZ_BNEP_PROTO_FILTER = y
#
# Bluetooth device drivers
#
CONFIG_BLUEZ_HCIUSB = n
CONFIG_BLUEZ_HCIUART = n
CONFIG_BLUEZ_HCIUART_H4 = n
CONFIG_BLUEZ_HCIDTL1 = n
CONFIG_BLUEZ_HCIBT3C = n
CONFIG_BLUEZ_HCIBLUECARD = m
CONFIG_BLUEZ_HCIBTUART = n
CONFIG_BLUEZ_HCIVHCI = n
CONFIG_BLUEZ_HCIUSB_SCO = n
CONFIG_BLUEZ_HCIUART_BCSP = n
CONFIG_BLUEZ_HCIBFUSB = n
# Bluetooth support
#
CONFIG_BLUEZ = m
CONFIG_BLUEZ_L2CAP = y
CONFIG_BLUEZ_SCO = y
CONFIG_BLUEZ_RFCOMM = m
CONFIG_BLUEZ_RFCOMM_TTY = y
CONFIG_BLUEZ_BNEP = m
CONFIG_BLUEZ_BNEP_MC_FILTER = y
CONFIG_BLUEZ_BNEP_PROTO_FILTER = y
#
# Bluetooth device drivers
#
CONFIG_BLUEZ_HCIUSB = n
CONFIG_BLUEZ_HCIUART = n
CONFIG_BLUEZ_HCIUART_H4 = n
CONFIG_BLUEZ_HCIDTL1 = n
CONFIG_BLUEZ_HCIBT3C = n
CONFIG_BLUEZ_HCIBLUECARD = m
CONFIG_BLUEZ_HCIBTUART = n
CONFIG_BLUEZ_HCIVHCI = n
CONFIG_BLUEZ_HCIUSB_SCO = n
CONFIG_BLUEZ_HCIUART_BCSP = n
CONFIG_BLUEZ_HCIBFUSB = n
注意CONFIG_BLUEZ_HCIBLUECARD是对"CF"接口的蓝牙设备的支持.
重新编译内核和模块, 然后安装到设备上并重新启动设备. 如果你不知道怎样编译内核和模块, 请参阅其他文献.
2. pcmcia_cs的修改
由于CF卡通过PCMCIA总线工作, 所以对pcmcia设备的配置也必须修改, 以保证cardmgr能够正确识别新设备并装载正确的Driver. 以下必须手工修改: /etc/pcmcia/config:
--- config
.
orig
2007
-
09
-
28
16
:
18
:
54.000000000
+
0200
+++ config 2007 - 09 - 28 16 : 17 : 40.000000000 + 0200
@@ - 23 ,
+++ config 2007 - 09 - 28 16 : 17 : 40.000000000 + 0200
@@ - 23 ,