4.12 Bluetooth
4.12.1 Bluetooth Wireless Technology Introduction
Bluetooth 기술은 저비용, 저전력, 근거리 무선 기술이다. 케이블과 IrDA와 같은 다른 근거리 기술을 대체하기 위해 설계되었다. Bluetooth 무선 기술은 일반적으로 최대 10미터까지 확장되는 개인 영역 범위에서 작동한다. Bluetooth 무선 기술에 대한 자세한 내용은 www.bluetooth.com/을 참조한다.
i.MX의 경우, Bluetooth는 아래 나열된 여러 공급업체에서 지원된다.
Table 49. On-board chips and external solutions for Bluetooth and Wi-Fi support
SoC | On-board chip | PCIe | uSD card or uSD-to-M.2 baseboard |
8QuadXPlus/8DXL | - | Azurewave CM276 M.2 card | - |
8QuadMax | - | Azurewave CM276 M.2 card | - |
8MQuad | - | Azurewave CM276 M.2 card | - |
8M Nano | Azurewave CM358 | - | - |
8M Mini | - | - | - |
7ULP | - | - | Azurewave CM358 uSD card |
7Dual | - | - | Azurewave CM358 uSD card |
6QuadPlus/Quad/Dual/Solo | - | - | Azurewave CM358 uSD card |
6SLL/6UltraLite/6ULL/6ULZ | - | - | Azurewave CM358 uSD card |
8M Plus | - | Azurewave CM276 M.2 card | - |
4.12.2 Bluetooth Driver Overview
i.MX는 오픈 소스 Bluetooth 드라이버를 사용한다. Bluetooth 소프트웨어는 다음과 같이 네 부분으로 나뉜다.
- 4 선식 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.49를 통과한다.
4.12.5 Menu Configuration Options
이 모듈에는 아래 Linux 커널 구성 옵션이 제공된다:
- UART 인터페이스:
- CONFIG_SERIAL_IMX
- CONFIG_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