4.12 Bluetooth
4.12.1 Bluetooth Wireless Technology Introduction
Bluetooth 기술은 저비용, 저전력, 단거리 무선 기술이다. 케이블과 IrDA 같은 기타 단거리 기술을 대체하도록 디자인되었다. Bluetooth 무선 기술은 일반적으로 최대 10미터 까지 확장되는 개인 영역 범위에서 작동한다. Bluetooth 무선 기술에 대한 자세한 내용은 www.bluetooth.com/를 참조한다.
i.MX의 경우, Bluetooth는 여러 공급업체에서 지원된다. 자세한 내용은 i.MX Linux User's Guide (IMXLUG)의 "Connectivity for Bluetooth wireless technology and Wi-Fi" 장을 참조한다.
4.12.2 Bluetooth Driver Overview
i.MX는 오픈 소스 Bluetooth 드라이버를 사용한다. Bluetooth 소프트웨어는 아래와 같이 네 부분으로 나뉜다:
- 4-wire UART와 TTY 드라이버: Bluetooth 모듈과 통신 인터페이스이다.
- Bluetooth HCI 디바이스 드라이버: UART(H4)는 Bluetooth 디바이스와 호스트 사이의 통신을 위한 시리얼 프로토콜이다. 이 프로토콜은 UART 인터페이스가 있는 대부분의 Bluetooth 디바이스에 필요하다.
- Bluetooth 커널 스택: Bluetooth 프레임워크와 프로토콜을 구현한다.
- Bluetooth 사용자 스택: 사용자 공간에 여러 유틸리티를 제공하고 사용 사례에 대한 많은 프로필을 통합한다.
4.12.3 Bluetooth Driver Files
Bluetooth 드라이버 소스 파일은 커널 소스 디렉토리에서 사용할 수 있다.
- Bluetooth HCI 디바이스 드라이버:
- drivers/bluetooth/hci_h4.c
- drivers/bluetooth/hci_ldisc.c
- Bluetooth 커널 스택:
- net/bluetooth/*
4.12.4 Bluetooth Stack
BlueZ는 공식적인 Linux 표준 Bluetooth 프로토콜 스택으로, 최신 버전이 5.x 이고 Linux 커널 기반의 운영 체제 제품군을 위한 Bluetooth 스택이다. 목표는 Linux을 위한 Bluetooth 무선 표준 사양의 구현을 프로그램하는 것이다. Linux Bluetooth 서브시스템을 사용하려면, hciconfig와 bluetoothd 같은 사용자 공간의 여러 유틸리티가 필요하다. Bluetooth 커널 모듈에 대한 이런 유틸리티와 업데이트는 BlueZ 패키지에서 제공된다. 자세한 내용은 www.bluez.org/를 참조한다.
BlueZ 소스 코드는 git://git.kernel.org/pub/scm/bluetooth/bluez.git에서 사용할 수 있다. 현재 BSP 패키지 테스트는 BlueZ 5.64를 통과한다.
4.12.5 Menu Configuration Options
이 모듈에 대해 아래 Linux 커널 구성 옵션이 제공된다:
- UART 인터페이스:
- CONFIG_SERIAL_IMX
- ONFIG_TTY
- HCI 인터페이스:
- CONFIG_BT_HCIUART
- CONFIG_BT_HCIUART_H4
- CONFIG_BT_HCIUART_BCM
- Bluetooth Stack:
- CONFIG_BT
- CONFIG_BT_RFCOMM
- CONFIG_BT_RFCOMM_TTY
- CONFIG_BT_BNEP
- CONFIG_BT_BNEP_MC_FILTER
- CONFIG_BT_BNEP_PROTO_FILTER
- CONFIG_BT_HIDP